X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Frules.mk;h=f898fcd94940f32e55456cec3970acfc2861908b;hb=8cfe12e5b95974d75b98ec964fc7edaf37919f0e;hp=eea2625f733e376a707e5a65fbe4d378d64b66e1;hpb=4cb1d1cb184dacf99b229f9412b81fd7c72e77b5;p=bertos.git diff --git a/bertos/rules.mk b/bertos/rules.mk index eea2625f..f898fcd9 100644 --- a/bertos/rules.mk +++ b/bertos/rules.mk @@ -63,21 +63,21 @@ tags: .PHONY: check check: $L "Running testsuite" - $Q ./run_tests.sh + $Q bertos/run_tests.sh define build_target -ifeq ($$($(1)_EMBEDDED_TGT),1) +ifneq ($$($(1)_CROSS),) #use embedded specific map flags $(1)_MAP_FLAGS = $$(MAP_FLAGS_EMB) #In embedded we need s19, hex and bin $$(OUTDIR)/$(1).tgt : $$(OUTDIR)/$(1).s19 $$(OUTDIR)/$(1).hex $$(OUTDIR)/$(1).bin else -#On Darwin architecture the assembly doesn't link correctly if this flag is setted. +#On Darwin architecture the assembly doesn't link correctly if this flag is set. ifeq ($(shell uname | grep -c "Darwin"),1) -LIST_FLAGS = "" -MAP_FLAGS = "" -LDFLAGS = "" +LIST_FLAGS := "" +MAP_FLAGS := "" +LDFLAGS := "" endif #use hosted specific map flags $(1)_MAP_FLAGS = $$(MAP_FLAGS_HOST) @@ -87,26 +87,52 @@ endif $(1)_LDFLAGS += $$($(1)_MAP_FLAGS) +# In embedded systems the target CPU is needed, +# but there are different options on how pass +# it to the compiler. ifneq ($$(strip $$($(1)_MCU)),) -# Define all project specific object files -$(1)_CFLAGS += -mmcu=$$($(1)_MCU) -$(1)_CXXFLAGS += -mmcu=$$($(1)_MCU) -$(1)_ASFLAGS += -mmcu=$$($(1)_MCU) -$(1)_CPPAFLAGS += -mmcu=$$($(1)_MCU) -$(1)_LDFLAGS += -mmcu=$$($(1)_MCU) +$(1)_MCPU = -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) +$(1)_MCPU = -mcpu=$$($(1)_CPU) endif + +# If a CPU is specified add to +# project specific flags. +ifneq ($$($(1)_MCPU),) +$(1)_CFLAGS += $$($(1)_MCPU) +$(1)_CXXFLAGS += $$($(1)_MCPU) +$(1)_ASFLAGS += $$($(1)_MCPU) +$(1)_CPPAFLAGS += $$($(1)_MCPU) +$(1)_LDFLAGS += $$($(1)_MCPU) +endif + ifneq ($$(strip $$($(1)_LDSCRIPT)),) $(1)_LDFLAGS += -Wl,-T$$($(1)_LDSCRIPT) endif +# Debug stuff +ifeq ($$($(1)_DEBUG),1) + # AVR is an harvard processor + # and needs debug module + # to be compiled in program memory + ifeq ($$(findstring avr, $$($(1)_CROSS)),avr) + $(1)_DEBUGSRC = $(1)_PCSRC + else + $(1)_DEBUGSRC = $(1)_CSRC + endif + + $$($(1)_DEBUGSRC) += bertos/drv/kdebug.c + + # Also add formatwr.c (printf) if not already present + ifneq ($$(findstring formatwr.c, $$($$($(1)_DEBUGSRC))),formatwr.c) + $$($(1)_DEBUGSRC) += bertos/mware/formatwr.c + endif + + $(1)_CFLAGS += -D_DEBUG + $(1)_CXXFLAGS += -D_DEBUG +endif + $(1)_CC = $$($(1)_CROSS)$$(CC) $(1)_CXX = $$($(1)_CROSS)$$(CXX) $(1)_AS = $$($(1)_CROSS)$$(AS)