diff --git a/build.mk b/build.mk index 2912d04..9cb2ae1 100644 --- a/build.mk +++ b/build.mk @@ -14,14 +14,14 @@ CD = cd CP = cp CPIO = cpio +ECHO = echo MV = mv RM = rm LS = ls SED = sed MKDIR = mkdir CHMOD = chmod -IHEX2BIN = ihex2bin -BIN2IHEX = bin2ihex +SREC_CAT = srec_cat BIN2C = bin2c INSTALL = install @@ -61,6 +61,7 @@ CXXFLAGS += -D_BUILD_VERSION_=\""v$(BUILD_VERSION)"\" CFLAGS += -D_BUILD_VERSION_BCD_=$(BUILD_VERSION_BCD) CXXFLAGS += -D_BUILD_VERSION_BCD_=$(BUILD_VERSION_BCD) + TARGET_VER = $(addsuffix _v$(BUILD_VERSION), $(TARGET)) endif @@ -68,7 +69,7 @@ ifeq ($(VERBOSE), yes) PREFIX := - EMPTY_LINE := @echo; + EMPTY_LINE := @$(ECHO); else PREFIX := @ EMPTY_LINE := @@ -80,7 +81,7 @@ #(3) = extra flags define COMPILE_ASM_SOURCE $(1): $(MAKEFILE_LIST) $(2) | $(dir $(1)) - @echo Compiling $(2) ...; + @$(ECHO) Compiling $(2) ...; $(PREFIX)$(CC) -c $(3) -o $(1) $(2); $(EMPTY_LINE) endef @@ -92,7 +93,7 @@ #(3) = extra flags define COMPILE_C_SOURCE $(1): $(MAKEFILE_LIST) $(2) | $(dir $(1)) - @echo Compiling $(2) ...; + @$(ECHO) Compiling $(2) ...; $(PREFIX)$(CC) -c $(3) -MD -pipe -o $(1) $(2); $(EMPTY_LINE) @$(CP) -R $(patsubst %.o, %.d, $(1)) $(patsubst %.o, %.dtemp, $(1)); @@ -106,7 +107,7 @@ #(3) = extra flags define COMPILE_CXX_SOURCE $(1): $(MAKEFILE_LIST) $(2) | $(dir $(1)) - @echo Compiling $(2) ...; + @$(ECHO) Compiling $(2) ...; $(PREFIX)$(CC) -c $(3) -MD -pipe -o $(1) $(2); $(EMPTY_LINE) @$(CP) -R $(patsubst %.o, %.d, $(1)) $(patsubst %.o, %.dtemp, $(1)); @@ -117,35 +118,59 @@ define CREATE_DIRECTORY $(1)/: - @echo Creating directory $(1) ... + @$(ECHO) Creating directory $(1) ... @$(MKDIR) -p $(1) endef -.PHONY: all clean user_final_target user_clean_target config_final_target config_clean_target +.PHONY: all clean user_target user_clean_target -all: user_final_target config_final_target +all: user_target -.SUFFIXES: +clean: user_clean_target + @$(ECHO) Cleaning application files ... + -$(RM) -rf $(BINDIR) $(OBJDIR) -ifdef LINK_TARGET -$(BINDIR)/$(LINK_TARGET): $(MAKEFILE_LIST) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) $(LINKER_SCRIPT) | $(BINDIR)/ - @echo "Linking ..." + +$(BINDIR)/$(TARGET_VER).elf: $(MAKEFILE_LIST) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) $(LINKER_SCRIPT) | $(BINDIR)/ + @$(ECHO) "Linking ..." ifdef LINKER_SCRIPT - $(CC) -o $(BINDIR)/$(LINK_TARGET) -T$(LINKER_SCRIPT) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) $(LDFLAGS) + $(CC) -o $(BINDIR)/$(TARGET_VER).elf -T$(LINKER_SCRIPT) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) $(LDFLAGS) else - $(CC) -o $(BINDIR)/$(LINK_TARGET) $(ALLOBJS) $(LIBS) $(LDFLAGS) + $(CC) -o $(BINDIR)/$(TARGET_VER).elf $(ALLOBJS) $(LIBS) $(LDFLAGS) endif + $(NM) -t d -S --size-sort $(BINDIR)/$(TARGET_VER).elf > $(BINDIR)/$(TARGET_VER).sym + $(OBJDUMP) -xds -S -l $(BINDIR)/$(TARGET_VER).elf > $(BINDIR)/$(TARGET_VER).lst ifeq ($(RELEASE), yes) - $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(LINK_TARGET) + $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(TARGET_VER).elf endif + @$(SIZE) -A -d $(BINDIR)/$(TARGET_VER).elf $(EMPTY_LINE) -endif $(BINDIR)/$(TARGET_VER).a: $(MAKEFILE_LIST) $(ALLOBJS) | $(BINDIR)/ - @echo "Creating static library ..." + @$(ECHO) "Creating static library ..." $(AR) rcs $(BINDIR)/$(TARGET_VER).a $(ALLOBJS) - @echo + $(NM) -t d -S --size-sort $(BINDIR)/$(TARGET_VER).a > $(BINDIR)/$(TARGET_VER)_a.sym + $(OBJDUMP) -xds -S -l $(BINDIR)/$(TARGET_VER).a > $(BINDIR)/$(TARGET_VER)_a.lst +ifeq ($(RELEASE), yes) + $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(TARGET_VER).a +endif + @$(ECHO) + + +$(BINDIR)/$(TARGET_VER).so: $(MAKEFILE_LIST) $(ALLOBJS) | $(BINDIR)/ + @$(ECHO) "Creating shared library ..." +ifdef LINKER_SCRIPT + $(CC) -o $(BINDIR)/$(TARGET_VER).so -T$(LINKER_SCRIPT) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) $(LDFLAGS) -rdynamic -shared -Wl,-soname,$(TARGET).so +else + $(CC) -o $(BINDIR)/$(TARGET_VER).so $(ALLOBJS) $(LIBS) $(LDFLAGS) -rdynamic -shared -Wl,-soname,$(TARGET).so +endif + $(NM) -t d -S --size-sort $(BINDIR)/$(TARGET_VER).so > $(BINDIR)/$(TARGET_VER)_so.sym + $(OBJDUMP) -xds -S -l $(BINDIR)/$(TARGET_VER).so > $(BINDIR)/$(TARGET_VER)_so.lst +ifeq ($(RELEASE), yes) + $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(TARGET_VER).so +endif + @$(ECHO) $(foreach dir, $(OBJDIR), $(eval $(call CREATE_DIRECTORY, $(dir)))) @@ -155,12 +180,6 @@ $(foreach source, $(CSRCS), $(eval $(call COMPILE_C_SOURCE, $(OBJDIR)/$(notdir $(source:%.c=%.o)), $(source), $(CFLAGS)))) $(foreach source, $(CXXSRCS), $(eval $(call COMPILE_CXX_SOURCE, $(OBJDIR)/$(notdir $(source:%.cpp=%.o)), $(source), $(CXXFLAGS)))) - -clean: user_clean_target - @echo Cleaning application files ... - -$(RM) -rf $(BINDIR) $(OBJDIR) - - $(eval $(call CONFIG_TARGETS)) $(eval $(call USER_TARGETS)) diff --git a/config_cortex_m0.mk b/config_cortex_m0.mk index a3f5407..3ef0ecb 100644 --- a/config_cortex_m0.mk +++ b/config_cortex_m0.mk @@ -24,34 +24,10 @@ define CONFIG_TARGETS -ifdef LINK_TARGET - -.PHONY: link_target_size - -config_final_target: $(BINDIR)/$(TARGET_VER).hex link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep - -$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(TARGET_VER).elf | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(TARGET_VER).elf $(BINDIR)/$(TARGET_VER).hex @echo - -$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst - @echo - - -link_target_size: $(BINDIR)/$(LINK_TARGET) - @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) - @echo - - -$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex - @echo - -endif - - endef include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m3.mk b/config_cortex_m3.mk index 0f7b52c..7ae4d2b 100644 --- a/config_cortex_m3.mk +++ b/config_cortex_m3.mk @@ -24,33 +24,9 @@ define CONFIG_TARGETS -ifdef LINK_TARGET - -.PHONY: link_target_size - -config_final_target: $(BINDIR)/$(TARGET_VER).hex link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep - -$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(TARGET_VER).elf | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(TARGET_VER).elf $(BINDIR)/$(TARGET_VER).hex @echo - - -$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst - @echo - - -link_target_size: $(BINDIR)/$(LINK_TARGET) - @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) - @echo - - -$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex - @echo - -endif - endef diff --git a/config_cortex_m4.mk b/config_cortex_m4.mk index fe2bf4e..c56d3d8 100644 --- a/config_cortex_m4.mk +++ b/config_cortex_m4.mk @@ -23,34 +23,10 @@ define CONFIG_TARGETS -ifdef LINK_TARGET - -.PHONY: link_target_size - -config_final_target: $(BINDIR)/$(TARGET_VER).hex link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep - -$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep - @echo - - -$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst - @echo - - -link_target_size: $(BINDIR)/$(LINK_TARGET) - @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(TARGET_VER).elf | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(TARGET_VER).elf $(BINDIR)/$(TARGET_VER).hex @echo - -$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex - @echo - -endif - - endef include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m4f.mk b/config_cortex_m4f.mk index 583b7ff..5048b3b 100644 --- a/config_cortex_m4f.mk +++ b/config_cortex_m4f.mk @@ -24,34 +24,10 @@ define CONFIG_TARGETS -ifdef LINK_TARGET - -.PHONY: link_target_size - -config_final_target: $(BINDIR)/$(TARGET_VER).hex link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep - -$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep - @echo - - -$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst - @echo - - -link_target_size: $(BINDIR)/$(LINK_TARGET) - @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(TARGET_VER).elf | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(TARGET_VER).elf $(BINDIR)/$(TARGET_VER).hex @echo - -$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex - @echo - -endif - - endef include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m7.mk b/config_cortex_m7.mk index c17964d..ee671bd 100644 --- a/config_cortex_m7.mk +++ b/config_cortex_m7.mk @@ -24,36 +24,10 @@ define CONFIG_TARGETS -ifdef LINK_TARGET - -.PHONY: link_target_size - -config_final_target: $(BINDIR)/$(TARGET_VER).hex link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep - -$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep - @echo - - -$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst - @echo - - -link_target_size: $(BINDIR)/$(LINK_TARGET) - @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(TARGET_VER).elf | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(TARGET_VER).elf $(BINDIR)/$(TARGET_VER).hex @echo - -$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ - $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex - @echo - -endif - - endef -CMSIS_MATH_LIB = m7lfsp - include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_linux.mk b/config_linux.mk index 1541a54..b84bbfa 100644 --- a/config_linux.mk +++ b/config_linux.mk @@ -20,17 +20,7 @@ PLATFORM_LDFLAGS = - -LINK_TARGET = $(TARGET) - - define CONFIG_TARGETS - -config_final_target: $(BINDIR)/$(LINK_TARGET) - - -config_clean_target: - endef diff --git a/config_linux_lib.mk b/config_linux_lib.mk deleted file mode 100644 index 1210a72..0000000 --- a/config_linux_lib.mk +++ /dev/null @@ -1,35 +0,0 @@ -TOOLCHAIN_PREFIX = -TOOLCHAIN_SUFFIX = - -CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) -GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) -SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) -OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) -OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) -STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) -READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) -NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) - -#environment variables -ARCH_CFLAGS = -OPT_CFLAGS = - -PLATFORM_CFLAGS = -fsigned-char -PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) - -PLATFORM_LDFLAGS = - - -define CONFIG_TARGETS - -config_final_target: $(BINDIR)/$(TARGET).a -ifeq ($(RELEASE), yes) - $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(TARGET).a -endif - -config_clean_target: - -endef - - -include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_linux_solib.mk b/config_linux_solib.mk deleted file mode 100644 index 516ead2..0000000 --- a/config_linux_solib.mk +++ /dev/null @@ -1,38 +0,0 @@ -TOOLCHAIN_PREFIX = -TOOLCHAIN_SUFFIX = - -CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) -GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) -SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) -OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) -OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) -STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) -READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) -NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) - -#environment variables -ARCH_CFLAGS = -OPT_CFLAGS = - -PLATFORM_CFLAGS = -fsigned-char -fPIC -PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) - -PLATFORM_LDFLAGS = -rdynamic -shared -Wl,-soname,$(TARGET).so - - -LINK_TARGET = $(TARGET).so - - -define CONFIG_TARGETS - -config_final_target: $(BINDIR)/$(LINK_TARGET) -ifeq ($(RELEASE), yes) - $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(LINK_TARGET) -endif - -config_clean_target: - -endef - - -include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk