X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=rules.mk;h=1289740f2471f30d4b225310cd8b4b88bed0be65;hb=2a6ce4b2d8edc2fc858f4ca145cdfa10f6ab22e5;hp=0fe37a0f8f98c0c967d2595a7be7d54653653750;hpb=cf2bb7112d8c6c931126ea74d6e4112ecd37cc4d;p=bertos.git diff --git a/rules.mk b/rules.mk index 0fe37a0f..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 @@ -118,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 $$@"