]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - support/make/avr/avr.rules
added one more level of redirection for building the StorageVolume.h file. This...
[tinyos-2.x.git] / support / make / avr / avr.rules
index b0671d5214470710255a0ab584f0bfe410192114..f00e0ff8b40d1ddaa26144e5eb12fdb083b73857 100644 (file)
@@ -23,6 +23,12 @@ define AVR_HELP
 endef
 HELP += $(AVR_HELP)
 
+ifdef MAKE_DEPUTY_FLAG
+        NCC_SAFE_TINYOS_FLAG = -safe
+else
+        NCC_SAFE_TINYOS_FLAG =
+endif
+
 OBJCOPY = avr-objcopy
 OBJDUMP = avr-objdump
 SET_ID = tos-set-symbols
@@ -30,18 +36,19 @@ PROGRAMMER ?= uisp
 NCC = ncc
 LIBS = -lm
 
-
 AMADDR = ActiveMessageAddressC\$$addr
 # Uncomment the next two lines if you have a toolchain without the dollar sign
 # patch. This needs nesc 1.2.8 or newer (1.2.9 is recommended).
 #PFLAGS += -fnesc-separator=__
 #AMADDR = ActiveMessageAddressC__addr
-BUILDDIR = build/$(PLATFORM)
+BUILDDIR ?= build/$(PLATFORM)
 MAIN_EXE = $(BUILDDIR)/main.exe
 MAIN_SREC = $(BUILDDIR)/main.srec
 MAIN_IHEX = $(BUILDDIR)/main.ihex
 INSTALL_SREC = $(MAIN_SREC).out$(if $(NODEID),-$(NODEID),)
 VOLUMEFILE = volumes-at45db.xml
+VOLUME_ALLOCATOR ?= tos-storage-at45db
+VOLUME_ALLOCATOR_FLAGS ?=
 
 PFLAGS += -Wall -Wshadow $(NESC_FLAGS)
 PFLAGS += -target=$(PLATFORM) -fnesc-cfile=$(BUILDDIR)/app.c -board=$(SENSORBOARD)
@@ -87,12 +94,19 @@ $(if $(PROGRAM),,$(call TOSMake_include,avr/$(DEFAULT_PROGRAM).extra))
 
 # Build storage file if volumes.xml present
 ifneq ($(wildcard $(VOLUMEFILE)), )
-exe0: $(BUILDDIR)/StorageVolumes.h
+build_storage: $(BUILDDIR)/StorageVolumes.h
 
+exe0: build_storage
+
+VOLUME_ALLOCATOR_FLAGS ?= 
 $(BUILDDIR)/StorageVolumes.h: $(VOLUMEFILE)
-       tos-storage-at45db $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@
+       $(VOLUME_ALLOCATOR) $(VOLUME_ALLOCATOR_FLAGS) $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@
 
 PFLAGS += -I$(BUILDDIR)
+else
+
+build_storage:
+
 endif
 
 ifndef BUILD_DEPS
@@ -124,7 +138,7 @@ exe: exe0 bytes FORCE
 
 exe0: builddir $(BUILD_EXTRA_DEPS) FORCE
        @echo "    compiling $(COMPONENT) to a $(PLATFORM) binary"
-       $(NCC) -o $(MAIN_EXE) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
+       $(NCC) -o $(MAIN_EXE) $(NCC_SAFE_TINYOS_FLAG) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
 ifdef WIRING_CHECK_FILE
        @nescc-wiring $(WIRING_CHECK_FILE)
 endif