SUBDIRS = event plugins packet lossy script
ROOT = ../../..

PLUGINS_SRC = $(wildcard plugins/*.java)
PLUGINS = $(PLUGINS_SRC:.java=.class)
INITIAL_TARGETS = msgs jython ../sf/old/nido/NidoSerialDataSource.class 
OTHER_CLEAN = msgs-clean plugins-list-clean jarclean

# Uncomment this line to make jarfile mandatory
FINAL_TARGETS = jarfile 

include $(ROOT)/Makefile.include

../sf/nido/NidoSerialDataSource.class: ../sf/old/nido/NidoSerialDataSource.java
	(cd ../sf/nido; $(MAKE))

msgs:
	(cd msg; $(MAKE))
msgs-clean:
	(cd msg; $(MAKE) clean)

# Make sure that jython gets built
jython: $(ROOT)/org/python/core/parser.class
$(ROOT)/org/python/core/parser.class:
	(cd $(ROOT)/org/python && $(MAKE))
	(cd $(ROOT)/org/apache && $(MAKE))

# Create a list of default plugins
plugins/plugins.list: $(PLUGINS)
	echo $(PLUGINS) > plugins/plugins.list

plugins-list-clean:
	rm -f plugins/plugins.list

# This is ugly. The only way to embed a jar file inside another is to
# unpack it and repack them together into a single flat file.
jarfile: plugins/plugins.list 
	@echo "Creating simdriver.jar..."
	(cd $(ROOT); \
		jar cmf net/tinyos/sim/simdriver.manifest \
		net/tinyos/sim/simdriver-tmp.jar \
		net/tinyos/sim/*.class                  \
		net/tinyos/sim/event/*.class            \
		net/tinyos/sim/lossy/*.class            \
		net/tinyos/sim/msg/*.class              \
		net/tinyos/sim/packet/*.class           \
		net/tinyos/sim/plugins/*.class          \
		net/tinyos/sim/script/*.class           \
                net/tinyos/sim/script/reflect/*.class   \
                net/tinyos/sim/ui                       \
                net/tinyos/sim/plugins/plugins.list     \
                net/tinyos/sf/*.class                   \
                net/tinyos/util/*.class                 \
                net/tinyos/packet/*.class               \
                net/tinyos/message/*.class              \
                org/apache/oro/text/regex/*.class       \
                org/python/compiler/*.class             \
                org/python/core/*.class                 \
                org/python/modules/*.class              \
                org/python/parser/*.class               \
                org/python/parser/ast/*.class           \
                org/python/rmi/*.class                  \
                org/python/util/*.class)                
	rm -rf jarbuild-tmp
	mkdir jarbuild-tmp
	(cd jarbuild-tmp; jar xf ../simdriver-tmp.jar; jar xf ../$(ROOT)/jars/oalnf.jar; rm -rf META-INF; jar cmf ../simdriver.manifest ../simdriver.jar .)
	rm -rf simdriver-tmp.jar jarbuild-tmp

jarclean:
	rm -f simdriver.jar
