Refactor to not have toolchain in path; Now a specific flash project_HOSTED is needed...
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Apr 2009 13:07:04 +0000 (13:07 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Apr 2009 13:07:04 +0000 (13:07 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2479 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/rules.mk
examples/at91sam7s/at91sam7s.mk
examples/demo/demo.mk
examples/lm3s1968/lm3s1968.mk
examples/randpool/randpool_demo.mk
examples/test/armtest.mk
examples/test/avrtest.mk
examples/triface/triface.mk

index e25d7359e2e7f44284a438b35a4b258670e05cb6..fcf62f27fa5f9a7acdd543ec59e8c9d53854e18f 100644 (file)
@@ -62,18 +62,13 @@ tags:
 
 # Run testsuite
 .PHONY: check
-check: 
+check:
        $L "Running testsuite"
        $Q test/run_tests.sh
 
 define build_target
 
-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
+ifeq ($$($(1)_HOSTED),1)
         #On Darwin architecture the assembly doesn't link correctly if these flags are set.
         ifeq ($(shell uname | grep -c "Darwin"),1)
                 LIST_FLAGS := ""
@@ -90,12 +85,17 @@ else
                 #Otherwise in  hosted application we need only executable file.
                 $$(OUTDIR)/$(1).tgt : $$(OUTDIR)/$(1)
         endif
+else
+        #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
 endif
 
 $(1)_LDFLAGS += $$($(1)_MAP_FLAGS)
 
 # In embedded systems the target CPU is needed,
-# but there are different options on how pass
+# but there are different options on how to pass
 # it to the compiler.
 ifneq ($$(strip $$($(1)_MCU)),)
         $(1)_MCPU = -mmcu=$$($(1)_MCU)
@@ -104,7 +104,7 @@ ifneq ($$(strip $$($(1)_CPU)),)
         $(1)_MCPU = -mcpu=$$($(1)_CPU)
 endif
 
-# If a CPU is specified add to 
+# If a CPU is specified add to
 # project specific flags.
 ifneq ($$($(1)_MCPU),)
         $(1)_CFLAGS    += $$($(1)_MCPU)
@@ -118,12 +118,30 @@ ifneq ($$(strip $$($(1)_LDSCRIPT)),)
         $(1)_LDFLAGS += -Wl,-T$$($(1)_LDSCRIPT)
 endif
 
+ifneq ($$($(1)_CROSS),)
+       #deprecated: use PREFIX, SUFFIX and HOSTED mechanism instead
+       $(1)_PREFIX = $$($(1)_CROSS)
+       $(1)_SUFFIX = ""
+endif
+
+$(1)_CC      ?= $$($(1)_PREFIX)$$(CC)$$($(1)_SUFFIX)
+$(1)_CXX     ?= $$($(1)_PREFIX)$$(CXX)$$($(1)_SUFFIX)
+$(1)_AS      ?= $$($(1)_PREFIX)$$(AS)$$($(1)_SUFFIX)
+$(1)_AR      ?= $$($(1)_PREFIX)$$(AR)$$($(1)_SUFFIX)
+$(1)_OBJCOPY ?= $$($(1)_PREFIX)$$(OBJCOPY)$$($(1)_SUFFIX)
+$(1)_STRIP   ?= $$($(1)_PREFIX)$$(STRIP)$$($(1)_SUFFIX)
+ifneq ($$(strip $$($(1)_CXXSRC)),)
+       $(1)_LD = $$($(1)_PREFIX)$$(LDXX)$$($(1)_SUFFIX)
+else
+       $(1)_LD = $$($(1)_PREFIX)$$(LD)$$($(1)_SUFFIX)
+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)
+        ifeq ($$(findstring avr, $$($(1)_PREFIX)),avr)
                 $(1)_DEBUGSRC = $(1)_PCSRC
         else
                 $(1)_DEBUGSRC = $(1)_CSRC
@@ -136,17 +154,15 @@ ifeq ($$($(1)_DEBUG),1)
                 $$($(1)_DEBUGSRC) += bertos/mware/formatwr.c
         endif
 
-        $(1)_CFLAGS += -D_DEBUG        
+        # Also add hex.c (for printf) if not already present
+        ifneq ($$(findstring hex.c, $$($$($(1)_CSRC))),hex.c)
+                $$($(1)_CSRC) += bertos/mware/hex.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)
-$(1)_AR      ?= $$($(1)_CROSS)$$(AR)
-$(1)_OBJCOPY ?= $$($(1)_CROSS)$$(OBJCOPY)
-$(1)_STRIP   ?= $$($(1)_CROSS)$$(STRIP)
-
 $(1)_COBJ    = $$(foreach file,$$($(1)_CSRC:%.c=%.o),$$(OBJDIR)/$(1)/$$(file))
 $(1)_CXXOBJ  = $$(foreach file,$$($(1)_CXXSRC:%.cpp=%.o),$$(OBJDIR)/$(1)/$$(file))
 $(1)_PCOBJ   = $$(foreach file,$$($(1)_PCSRC:%.c=%_P.o),$$(OBJDIR)/$(1)/$$(file))
@@ -156,12 +172,6 @@ $(1)_OBJ    := $$($(1)_COBJ) $$($(1)_CXXOBJ) $$($(1)_PCOBJ) $$($(1)_AOBJ) $$($(1
 $(1)_SRC    := $$($(1)_CSRC) $$($(1)_CXXSRC) $$($(1)_PCSRC) $$($(1)_ASRC) $$($(1)_CPPASRC)
 OBJ         += $$($(1)_OBJ)
 
-ifneq ($$(strip $$($(1)_CXXSRC)),)
-$(1)_LD = $$($(1)_CROSS)$$(LDXX)
-else
-$(1)_LD = $$($(1)_CROSS)$$(LD)
-endif
-
 # Sometimes $(CC) is actually set to a C++ compiler in disguise, and it
 # would whine if we passed it C-only flags.  Checking for the presence of
 # "++" in the name is a kludge that seems to work mostly.
index f7d2a9d92a2ec1c5661a481213e85cc3f6e7e3f7..86c3180ada640a232b321cb4257f4c76611c77d0 100644 (file)
@@ -35,7 +35,7 @@ at91sam7s_CPPASRC = \
        bertos/cpu/arm/hw/crtat91sam7_rom.S \
        bertos/cpu/arm/hw/switch_arm.S
 
-at91sam7s_CROSS = arm-none-eabi-
+at91sam7s_PREFIX = arm-none-eabi-
 
 at91sam7s_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug
 at91sam7s_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_AT91SAM7S256__ -g3 -gdwarf-2 -fverbose-asm -Iexamples/at91sam7s/hw -Iexamples/at91sam7s -Ibertos/cpu/arm
index cec05508b007dee30fef91314279b024f02df644..d2588fd4f7a08be48ede86cc7ea0580ae1693b08 100644 (file)
@@ -14,6 +14,9 @@ include bertos/emul/emul.mk
 # Set to 1 for debug builds
 demo_DEBUG = 1
 
+# This is an hosted application
+demo_HOSTED = 1
+
 # Our target application
 TRG += demo
 
index bf5161257ea412ef89b15d2353eaba1dcee8fbdc..10025e2cf9a6c50aaade450f22a24ab62eca69a9 100644 (file)
@@ -20,8 +20,8 @@ lm3s1968_CSRC = \
        examples/lm3s1968/lm3s1968.c \
        #bertos/cpu/cortex-m3/startup_lm3s.c
 
-
-lm3s1968_CROSS = arm-none-eabi-
+# This is an hosted application
+lm3s1968_PREFIX = arm-none-eabi-
 
 lm3s1968_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug -mthumb
 lm3s1968_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_LM3S1968__ -g3 -gdwarf-2 -fverbose-asm -mthumb  -Iexamples/lm3s1968 -Ibertos/cpu/cortex-m3
index 680f3cff3c4760d0f750598211a0a8ef11054f5a..4c0d738d9599c2be8700c51b32cb5e7155802681 100644 (file)
@@ -17,6 +17,8 @@
 # Set to 1 for debug builds
 randpool_demo_DEBUG = 0
 
+randpool_demo_HOSTED = 1
+
 # Our target application
 TRG += randpool_demo
 
@@ -25,7 +27,7 @@ randpool_demo_CSRC = \
        algos/randpool.c \
        algos/md2.c \
        drv/timer.c \
-       os/hptime.c 
+       os/hptime.c
 
 randpool_demo_CFLAGS = -O0 -D'ARCH=0' -Iexamples/randpool/ -Iexamples/randpool/hw
 
index 06a643ccd045b8bba3aa7886ae2eb6d8de2c2e0c..9d2bc1aa8cdfce589bd55848d0b89fd6bb703585 100644 (file)
@@ -22,7 +22,7 @@ armtest_CSRC = $(arm_CSRC) examples/test/empty_main.c
 
 armtest_CPPASRC = $(arm_ASRC)
 
-armtest_CROSS = arm-none-eabi-
+armtest_PREFIX = arm-none-eabi-
 
 armtest_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug
 armtest_CPPFLAGS = -O0 -D'ARCH=ARCH_NIGHTTEST' -D__ARM_AT91SAM7S256__ -g3 -gdwarf-2 -fverbose-asm -Iexamples/test -Ibertos/cpu/arm
index dc72d83ebe7be3ff7f6ff645f69c9fc6905e3396..c2d3adb375de56a8f4fcf12ea3b87e8444c77174 100644 (file)
@@ -27,6 +27,6 @@ avrtest_CPPASRC = $(avr_ASRC)
 
 avrtest_PCSRC += bertos/mware/formatwr.c
 
-avrtest_CROSS = avr-
-avrtest_CPPFLAGS = -D'ARCH=ARCH_NIGHTTEST' -Iexamples/test -Ibertos/cpu/avr 
+avrtest_PREFIX = avr-
+avrtest_CPPFLAGS = -D'ARCH=ARCH_NIGHTTEST' -Iexamples/test -Ibertos/cpu/avr
 avrtest_CFLAGS = -Os -mcall-prologues -fno-strict-aliasing
index 85cb1edd496391c0282509c8c4fecfcd71fc3f90..1ee8f4c8945ba81e24794095767de52f12020e25 100644 (file)
@@ -17,7 +17,7 @@ TRG += triface
 CPU = atmega1281
 BOOT_ADDR_START = 0x1E000
 
-triface_CROSS = avr-
+triface_PREFIX = avr-
 
 ifeq ($(CPU), atmega1281)
 triface_hfuse = 0x98
@@ -77,7 +77,7 @@ boot_CSRC = \
        bertos/mware/hex.c \
        bertos/kern/kfile.c \
        #
-boot_CROSS = avr-
+boot_PREFIX = avr-
 boot_CPPFLAGS = -D'ARCH=(ARCH_TRIFACE|ARCH_BOOT)' -Iexamples/triface/boot -Ibertos/cpu/avr
 boot_CFLAGS = -Os -mcall-prologues
 boot_LDFLAGS = -Wl,--relax -Wl,--section-start=.text=$(BOOT_ADDR_START)