From: batt Date: Thu, 18 Oct 2007 10:24:53 +0000 (+0000) Subject: Add EMBEDDED_TARGET flag to choose beetween different target policies. X-Git-Tag: 1.0.0~344 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=c41eed7d175c38a0e247544d505be0ef7c3f0a4b;p=bertos.git Add EMBEDDED_TARGET flag to choose beetween different target policies. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@897 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/config.mk b/config.mk index 604cd639..c0473a15 100644 --- a/config.mk +++ b/config.mk @@ -65,6 +65,11 @@ DPROG ?= -V -c stk500 -P /dev/ttyS0 # PonyProg serial programmer #DPROG = -c dasa2 +# Set to 1 to build for embedded devices. +# e.g. produce target.elf instead of target and target_nostrip +EMBEDDED_TARGET = 1 +#EMBEDDED_TARGET = 0 + OPTCFLAGS = -ffunction-sections -fdata-sections #OPTCFLAGS = -funsafe-loop-optimizations @@ -119,8 +124,11 @@ DEP_FLAGS = -MMD -MP LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst) # Linker flags for generating map files -#bernie: bogus binutils from Fedora 6 can't cope with this -#MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref +ifeq ($(EMBEDDED_TARGET), 1) +MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref +else +MAP_FLAGS = +endif # Compiler warning flags for both C and C++ WARNFLAGS = \ diff --git a/rules.mk b/rules.mk index 0fe37a0f..6870cfab 100644 --- a/rules.mk +++ b/rules.mk @@ -46,7 +46,11 @@ RECURSIVE_TARGETS = all-recursive install-recursive clean-recursive # The default target .PHONY: all -all:: all-recursive $(TRG_S19) $(TRG_HEX) +ifeq ($(EMBEDDED_TARGET),1) +all:: all-recursive $(TRG_S19) $(TRG_HEX) $(TRG_BIN) +else +all:: all-recursive $(TRG_ELF) +endif # Generate project documentation .PHONY: docs @@ -118,14 +122,19 @@ $$($(1)_CPPAOBJ): $$(OBJDIR)/$(1)/%.o : %.S $L "$(1): Assembling with CPP $$<" @$$(MKDIR_P) $$(dir $$@) $Q $$(CC) -c $$(CPPAFLAGS) $$($(1)_CPPAFLAGS) $$($(1)_CPPFLAGS) $$(CPPFLAGS) $$< -o $$@ + # Link: instructions to create elf output file from object files $$(OUTDIR)/$(1).elf: bumprev $$($(1)_OBJ) $$($(1)_LDSCRIPT) $L "$(1): Linking $$(OUTDIR)/$(1)" @$$(MKDIR_P) $$(dir $$@) +ifeq ($(EMBEDDED_TARGET), 1) + $Q $$(LD) $$($(1)_OBJ) $$(LIB) $$(LDFLAGS) $$($(1)_LDFLAGS) -o $$@ +else $Q $$(LD) $$($(1)_OBJ) $$(LIB) $$(LDFLAGS) $$($(1)_LDFLAGS) -o $$(OUTDIR)/$(1)_nostrip $Q $$(STRIP) -o $$(OUTDIR)/$(1) $$(OUTDIR)/$(1)_nostrip - +endif + # Compile and link (program-at-a-time) $$(OUTDIR)/$(1)_whole.elf: bumprev $$($(1)_SRC) $$($(1)_LDSCRIPT) $L "$(1): Compiling and Linking whole program $$@"