Installing TinyOS-2.x on Mac OS X (Snow Leopard)

From TinyOS Wiki
Jump to: navigation, search
  • Install gcc44 from MacPorts and softlink /opt/local/bin/gcc-mp-4.4 to gcc, and /opt/local/bin/g++-mp-4.4 to g++, in the directory /usr/bin.
 Note: gcc43 works too.
 Note: the apple-gcc* compiler does not work because it will complain that "-c" is not a valid option to the preprocessor.
  • Put "CFLAGS+=-D_FORTIFY_SOURCE=0" in your Makefile.
  • For simulations that involve opening a lot of files, e.g. simulations involving Flash memories, in the shell, type "ulimit -n <number>" where <number> is a high-enough value.


  • If Java complains about not finding the JNI libraries (getenv, toscomm), try running it using sudo.
  • If you encounter the error can't open config file "/etc/avrdude/avrdude.conf", either softlink /opt/local/etc/avrdude.conf to /etc/avrdude/avrdude/conf, or put the following code in the file $TOSROOT/support/make/avr/avr.rules after the line AVRDUDE_CONF ?= /etc/avrdude/avrdude.conf:
 ifeq ($(findstring Darwin, $(shell uname)), Darwin)
   AVRDUDE_CONF := /opt/local/etc/avrdude.conf
  • If tools don't compile because of the following error "jni.h: No such file or directory", it may be because the Java for Mac OS X 10.6 Update 3 moved the Headers directory from /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK to /System/Library/Frameworks/JavaVM.framework/Versions/Current. If you don't have the Headers directory in /System/Library/Frameworks/JavaVM.framework/Versions/Current, download the Java Developer Package from Then, change the line "jhome=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK" to "jhome=/System/Library/Frameworks/JavaVM.framework" in tools/tinyos/misc/tos-locate-jre.