Add EMBEDDED_TARGET flag to choose beetween different target policies.
[bertos.git] / rules.mk
index 41d1e1cb9e33d948c5df814735c8f11cff2b0154..6870cfab7c63a6e5f0afc7f38cd42259a2451f34 100644 (file)
--- 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
@@ -63,6 +67,14 @@ $(1)_ASFLAGS   += -mmcu=$$($(1)_MCU)
 $(1)_CPPAFLAGS += -mmcu=$$($(1)_MCU)
 $(1)_LDFLAGS   += -mmcu=$$($(1)_MCU)
 endif
+ifneq ($$(strip $$($(1)_CPU)),)
+# Define all project specific object files
+$(1)_CFLAGS    += -mcpu=$$($(1)_CPU)
+$(1)_CXXFLAGS  += -mcpu=$$($(1)_CPU)
+$(1)_ASFLAGS   += -mcpu=$$($(1)_CPU)
+$(1)_CPPAFLAGS += -mcpu=$$($(1)_CPU)
+$(1)_LDFLAGS   += -mcpu=$$($(1)_CPU)
+endif
 ifneq ($$(strip $$($(1)_LDSCRIPT)),)
 $(1)_LDFLAGS += -Wl,-T$$($(1)_LDSCRIPT)
 endif
@@ -110,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 $$@"