X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Frules.mk;h=ff0357eebba8e26f92d5377f492efcd3978c1eb0;hb=4a5e6831a468c3e120cb3f0f3590aff8824ed7d0;hp=ec0943ae59905af2788bc793de348bcbe6c4b593;hpb=07d919421e57b056ac8c43d970113a560af07148;p=bertos.git diff --git a/bertos/rules.mk b/bertos/rules.mk index ec0943ae..ff0357ee 100644 --- a/bertos/rules.mk +++ b/bertos/rules.mk @@ -63,11 +63,11 @@ 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 @@ -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) @@ -250,7 +276,7 @@ $(foreach t,$(TRG),$(eval $(call build_target,$(t)))) # NOTE: moc totally sucks and can generate empty files for some error conditions, # leading to puzzling linker errors. Kill 'em and abort build. %_moc.cpp: %.h - $(MOC) -o $@ $< + $(QT_MOC) -o $@ $< if [ ! -s $< ]; then \ rm -f $@; \ exit 1; \