]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - support/make/avr/avr.rules
Changed bsl.exra to search for the string between the commas and not short circuiting...
[tinyos-2.x.git] / support / make / avr / avr.rules
index 9d398109da857f1058fdb5d93fb54c49a32f2c1c..d3acf1d74491ef1014eb333768222f790721b5ce 100644 (file)
@@ -12,7 +12,7 @@ define AVR_HELP
  Programmer options:
 
    dapa         : (default) use parallel port programmer
-   mib510,<dev> : use MIB510 serial port programming board at port <dev>
+   mib510,<dev> : use MIB510/MIB520 serial port programming board at port <dev>
    eprb,<host> : use EPRB at hostname <host>
    avrisp,<dev> : use AVRISP serial programmer at port <dev>
 
@@ -23,30 +23,64 @@ 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
-PROGRAMMER = uisp
+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)
 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)
 ifdef MSG_SIZE
 PFLAGS += -DTOSH_DATA_LENGTH=$(MSG_SIZE)
 endif
+ifdef DEFAULT_LOCAL_GROUP
+PFLAGS += -DDEFINED_TOS_AM_GROUP=$(DEFAULT_LOCAL_GROUP)
+endif
+
+AVRGCCMAJOR = $(shell avr-gcc -v 2>&1 | grep "gcc version" | sed -n 's/gcc version \([2-5]\)\.\([0-9]\)\.\([0-9]\).*/\1/p')
+ifeq ($(AVRGCCMAJOR),4)
+  PFLAGS += --param max-inline-insns-single=100000
+else
+  PFLAGS += -finline-limit=100000
+endif
 
-ifndef DEFAULT_PROGRAM
-DEFAULT_PROGRAM = dapa
+ifeq ($(PROGRAMMER),avrdude)
+  AVRDUDE_CONF ?= /etc/avrdude/avrdude.conf
+  ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin)
+    AVRDUDE_CONF := $(shell cygpath -m $(AVRDUDE_CONF))
+  endif
+  PROGRAMMER_EXTRA_FLAGS += -C$(AVRDUDE_CONF)
+#  PROGRAMMER_EXTRA_FLAGS += -v -v
+endif
+
+ifdef DEFAULT_PROGRAM_AVR
+DEFAULT_PROGRAM = $(DEFAULT_PROGRAM_AVR)
 endif
+DEFAULT_PROGRAM ?= dapa
+
+
 
 BUILDLESS_DEPS += bytes 
 
@@ -63,7 +97,7 @@ ifneq ($(wildcard $(VOLUMEFILE)), )
 exe0: $(BUILDDIR)/StorageVolumes.h
 
 $(BUILDDIR)/StorageVolumes.h: $(VOLUMEFILE)
-       tos-storage-at45db $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@
+       $(VOLUME_ALLOCATOR) $(PLATFORMDIR) $(VOLUME_ALLOCATOR_FLAGS) <$(VOLUMEFILE) >$@ || rm -f $@
 
 PFLAGS += -I$(BUILDDIR)
 endif
@@ -97,7 +131,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