X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=rules.mk;h=1289740f2471f30d4b225310cd8b4b88bed0be65;hb=70fbca7abd15ab931dc82119f5b0b8f7b3fe1596;hp=41d1e1cb9e33d948c5df814735c8f11cff2b0154;hpb=5f3952176a4e9a00ca8dd5ec4a6b994958f89e0a;p=bertos.git diff --git a/rules.mk b/rules.mk index 41d1e1cb..1289740f 100644 --- a/rules.mk +++ b/rules.mk @@ -24,6 +24,9 @@ Q := @ L := @echo endif +# Select Bourne Again SHell as default make shell +SHELL := bash + # Checker build ifeq ($(C),1) CC = $(CHECKER) @@ -40,13 +43,18 @@ TRG_HEX = $(TRG:%=$(OUTDIR)/%.hex) TRG_BIN = $(TRG:%=$(OUTDIR)/%.bin) TRG_ROM = $(TRG:%=$(OUTDIR)/%.rom) TRG_COF = $(TRG:%=$(OUTDIR)/%.cof) +TRG_EXE = $(TRG:%=$(OUTDIR)/%) 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_EXE) +endif # Generate project documentation .PHONY: docs @@ -63,6 +71,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 +126,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)" +$$(OUTDIR)/$(1).elf $$(OUTDIR)/$(1)_nostrip: bumprev $$($(1)_OBJ) $$($(1)_LDSCRIPT) + $L "$(1): Linking $$@" @$$(MKDIR_P) $$(dir $$@) - $Q $$(LD) $$($(1)_OBJ) $$(LIB) $$(LDFLAGS) $$($(1)_LDFLAGS) -o $$(OUTDIR)/$(1)_nostrip - $Q $$(STRIP) -o $$(OUTDIR)/$(1) $$(OUTDIR)/$(1)_nostrip + $Q $$(LD) $$($(1)_OBJ) $$(LIB) $$(LDFLAGS) $$($(1)_LDFLAGS) -o $$@ +# Strip debug info +$$(OUTDIR)/$(1): $$(OUTDIR)/$(1)_nostrip + $L "$(1): Generating stripped executable $$@" + $Q $$(STRIP) -o $$@ $$^ + # Compile and link (program-at-a-time) $$(OUTDIR)/$(1)_whole.elf: bumprev $$($(1)_SRC) $$($(1)_LDSCRIPT) $L "$(1): Compiling and Linking whole program $$@"