From fe37302a5d37a20c241ec02143f13f5d54ffb06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sun, 6 Dec 2015 21:08:32 +0100 Subject: [PATCH] Attempt to make iot compile to a lib --- Makefile | 69 +++++++++++++++++++-------- example.c | 2 +- errorgen.php => helpers/errorgen.php | 0 {source => include}/scpi_builtins.h | 0 {source => include}/scpi_errors.h | 0 {source => include}/scpi_parser.h | 0 {source => include}/scpi_regs.h | 0 lib/.gitkeep | 0 scpi | Bin 55480 -> 0 bytes 9 files changed, 49 insertions(+), 22 deletions(-) rename errorgen.php => helpers/errorgen.php (100%) rename {source => include}/scpi_builtins.h (100%) rename {source => include}/scpi_errors.h (100%) rename {source => include}/scpi_parser.h (100%) rename {source => include}/scpi_regs.h (100%) create mode 100644 lib/.gitkeep delete mode 100755 scpi diff --git a/Makefile b/Makefile index ac454c8..89dce15 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,54 @@ -SRC = example.c -SRC+= source/scpi_parser.c -SRC+= source/scpi_regs.c -SRC+= source/scpi_builtins.c -SRC+= source/scpi_errors.c - -HDRS= source/scpi_parser.h -HDRS+= source/scpi_regs.h -HDRS+= source/scpi_builtins.h -HDRS+= source/scpi_errors.h - -CFLAGS += -std=gnu99 +############################################################################### + +# Makefile to build a library for ARM CortexM3 + +FP_FLAGS = -mfloat-abi=hard -mfpu=fpv4-sp-d16 +ARCH_FLAGS = -mthumb -mcpu=cortex-m4 $(FP_FLAGS) + +INCL_DIR = include +SRC_DIR = source + +LIBNAME = arm_cortexM4_scpi + +#OBJS += $(SRC_DIR)/opamp.o +OBJS = $(SRC_DIR)/scpi_parser.o +OBJS += $(SRC_DIR)/scpi_regs.o +OBJS += $(SRC_DIR)/scpi_errors.o +OBJS += $(SRC_DIR)/scpi_builtins.o + +JUNK = *.o *.d *.elf *.bin *.hex *.srec *.list *.map *.dis *.disasm *.a + +############################################################################### + +PREFIX ?= arm-none-eabi + +CC := $(PREFIX)-gcc +AR := $(PREFIX)-ar + +############################################################################### + +CFLAGS += -Os -ggdb -std=gnu99 -Wfatal-errors CFLAGS += -Wall -Wextra -Wshadow -CFLAGS += -Wwrite-strings -Wold-style-definition -Winline -CFLAGS += -Wredundant-decls -Wfloat-equal -Wsign-compare -Wunused-function +CFLAGS += -Wwrite-strings -Wold-style-definition -Winline -Wmissing-noreturn -Wstrict-prototypes +CFLAGS += -Wredundant-decls -Wfloat-equal -Wsign-compare +CFLAGS += -fno-common -ffunction-sections -fdata-sections -Wunused-function +CFLAGS += -I$(INCL_DIR) +############################################################################### -all: $(SRC) $(HDRS) - gcc $(CFLAGS) $(SRC) -o example.elf +all: lib -run: all - ./example.elf +%.o: %.c + $(Q)$(CC) $(CFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).c + +lib: lib/lib$(LIBNAME).a + +lib/lib$(LIBNAME).a: $(OBJS) + $(Q)$(AR) rcs $< $(OBJS) clean: - rm -f *.o *.d *.so *.elf *.bin *.hex - cd source - rm -f *.o *.d *.so *.elf *.bin *.hex + $(Q)$(RM) $(JUNK) + $(Q)cd source && $(RM) $(JUNK) + $(Q)cd lib && $(RM) $(JUNK) + +.PHONY: clean all lib diff --git a/example.c b/example.c index 6d8409a..d34cd0d 100644 --- a/example.c +++ b/example.c @@ -2,7 +2,7 @@ #include #include -#include "source/scpi_parser.h" +#include "scpi_parser.h" // ------- TESTING ---------- diff --git a/errorgen.php b/helpers/errorgen.php similarity index 100% rename from errorgen.php rename to helpers/errorgen.php diff --git a/source/scpi_builtins.h b/include/scpi_builtins.h similarity index 100% rename from source/scpi_builtins.h rename to include/scpi_builtins.h diff --git a/source/scpi_errors.h b/include/scpi_errors.h similarity index 100% rename from source/scpi_errors.h rename to include/scpi_errors.h diff --git a/source/scpi_parser.h b/include/scpi_parser.h similarity index 100% rename from source/scpi_parser.h rename to include/scpi_parser.h diff --git a/source/scpi_regs.h b/include/scpi_regs.h similarity index 100% rename from source/scpi_regs.h rename to include/scpi_regs.h diff --git a/lib/.gitkeep b/lib/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scpi b/scpi deleted file mode 100755 index 939e6053a267d27153489058e2901a387f255f65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55480 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