]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - support/make/avr/avr.rules
Merge TinyOS 2.1.1 into master.
[tinyos-2.x.git] / support / make / avr / avr.rules
index ce0f17ba4a6e619ba2a46eef5b9baf2ec5933eb2..a8c5d025884e010d877fcdd857d93649df303bba 100644 (file)
@@ -7,13 +7,12 @@ define AVR_HELP
 
    debug    : compile with minimal optimization and debug symbols
    debugopt : compile with debug symbols
-   xnp      : compile for network programming
 
  Programmer options:
 
    dapa         : (default) use parallel port programmer
    mib510,<dev> : use MIB510/MIB520 serial port programming board at port <dev>
-   eprb,<host> : use EPRB at hostname <host>
+   eprb,<host> : use EPRB (MIB600) at hostname <host>
    avrisp,<dev> : use AVRISP serial programmer at port <dev>
 
    The dev or host parameter for the programmer option need not be specified,
@@ -24,9 +23,9 @@ endef
 HELP += $(AVR_HELP)
 
 ifdef MAKE_DEPUTY_FLAG
-        NCC_SAFE_TINYOS_FLAG = -safe
+        NCC_SAFE_TINYOS_FLAGS = -DSAFE_TINYOS -I$(TOSDIR)/lib/safe -fnesc-deputy -fnesc-deputy-args='-I$(TOSDIR)/lib/safe/include --FLIDs=build/$(PLATFORM)/flids.txt --envmachine -DSAFE_TINYOS --nolib '
 else
-        NCC_SAFE_TINYOS_FLAG =
+        NCC_SAFE_TINYOS_FLAGS =
 endif
 
 OBJCOPY = avr-objcopy
@@ -36,18 +35,20 @@ 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)
+# Use __ as the separator - requires nesC 1.2.9 or later
+ifneq ($(filter sim,$(GOALS)),sim)
+ifneq ($(filter sim-sf,$(GOALS)),sim-sf)
+       PFLAGS += -fnesc-separator=__
+endif
+endif
+AMADDR = ActiveMessageAddressC__addr
+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 ?= tos-storage-at45db
 VOLUME_ALLOCATOR_FLAGS ?=
 
 PFLAGS += -Wall -Wshadow $(NESC_FLAGS)
@@ -67,6 +68,9 @@ else
 endif
 
 ifeq ($(PROGRAMMER),avrdude)
+  ifeq ($(findstring Darwin, $(shell uname)), Darwin)
+    AVRDUDE_CONF ?= /opt/local/etc/avrdude.conf
+  endif
   AVRDUDE_CONF ?= /etc/avrdude/avrdude.conf
   ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin)
     AVRDUDE_CONF := $(shell cygpath -m $(AVRDUDE_CONF))
@@ -94,12 +98,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)
-       $(VOLUME_ALLOCATOR) $(PLATFORMDIR) $(VOLUME_ALLOCATOR_FLAGS) <$(VOLUMEFILE) >$@ || rm -f $@
+       $(VOLUME_ALLOCATOR) $(VOLUME_ALLOCATOR_FLAGS) $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@
 
 PFLAGS += -I$(BUILDDIR)
+else
+
+build_storage:
+
 endif
 
 ifndef BUILD_DEPS
@@ -131,9 +142,14 @@ exe: exe0 bytes FORCE
 
 exe0: builddir $(BUILD_EXTRA_DEPS) FORCE
        @echo "    compiling $(COMPONENT) to a $(PLATFORM) binary"
-       $(NCC) -o $(MAIN_EXE) $(NCC_SAFE_TINYOS_FLAG) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
+       $(NCC) -o $(MAIN_EXE) $(NCC_SAFE_TINYOS_FLAGS) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
 ifdef WIRING_CHECK_FILE
        @nescc-wiring $(WIRING_CHECK_FILE)
+endif
+ifdef STACK_CHECK
+       @echo
+       @-tos-ramsize $(PLATFORM) $(MAIN_EXE)
+       @echo
 endif
        @echo "    compiled $(COMPONENT) to $(MAIN_EXE)"