GPP=g++
OPTFLAGS = -g -O3
LIBS = -lm -lstdc++
-PFLAGS += -tossim -fnesc-nido-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -DTOSSIM_NO_DEBUG
+PFLAGS += -tossim -fnesc-nido-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -DTOSSIM_NO_DEBUG
WFLAGS = -Wno-nesc-data-race
PYTHON_VERSION=2.3
XML = app.xml
DUMPTYPES = -fnesc-dump=components -fnesc-dump=variables -fnesc-dump=constants -fnesc-dump=typedefs -fnesc-dump=interfacedefs -fnesc-dump=tags
-ifeq ($(OSTYPE), cygwin)
+ifeq ($(findstring cygwin, $(OSTYPE)),cygwin)
PLATFORM_FLAGS=-DUSE_DL_IMPORT -fpic
SHARED_OBJECT=_TOSSIM.dll
PLATFORM_BUILD_FLAGS= -fpic -W1,--enabled-auto-image-base
- PLATFORM_LIB_FLAGS = -L/$(PYDIR)/config -lstdc++ -lpython$(PYTHON_VERSION)
+ PLATFORM_LIB_FLAGS = -L/usr/lib/python$(PYTHON_VERSION)/config -L/$(PYDIR)/config -lstdc++ -lpython$(PYTHON_VERSION)
else
-ifeq ($(OSTYPE), darwin)
+ifeq ($(OS),Windows_NT) # Some TinyOS installs are like this
+ PLATFORM_FLAGS=-DUSE_DL_IMPORT -fpic
+ SHARED_OBJECT=_TOSSIM.dll
+ PLATFORM_BUILD_FLAGS= -fpic -W1,--enabled-auto-image-base
+ PLATFORM_LIB_FLAGS = -L/usr/lib/python$(PYTHON_VERSION)/config -L/$(PYDIR)/config -lstdc++ -lpython$(PYTHON_VERSION)
+else
+ifeq ($(findstring darwin, $(OSTYPE)), darwin)
PLATFORM_FLAGS=-fPIC
PLATFORM_CC_FLAGS=-bundle
SHARED_OBJECT=_TOSSIMmodule.so
PLATFORM_BUILD_FLAGS= -shared -fPIC
endif
endif
+endif
BUILD_DEPS = sim-exe
@echo " writing XML schema to $(XML)"
@echo " compiling $(COMPONENT) to object file sim.o"
$(NCC) -c $(PLATFORM_FLAGS) -o $(OBJFILE) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WFLAGS) $(COMPONENT).nc $(LDFLAGS) $(DUMPTYPES) -fnesc-dumpfile=$(XML)
+
@echo " compiling Python support and C libraries into pytossim.o, tossim.o, and c-support.o"
$(GPP) -c $(PLATFORM_CC_FLAGS) $(PLATFORM_FLAGS) -o $(PYOBJFILE) $(OPTFLAGS) $(CFLAGS) $(PYFILE) -I$(PYDIR) -I$(SIMDIR) -DHAVE_CONFIG_H
$(GPP) -c $(PLATFORM_CC_FLAGS) $(PLATFORM_FLAGS) -o $(CXXOBJFILE) $(OPTFLAGS) $(CFLAGS) $(CXXFILE) -I$(PYDIR) -I$(SIMDIR)