.SUFFIXES: .java .class

# should really be one directory per application; ok for now
ROOT = /home/aklmiu/research/project/Cricket
COMM = $(ROOT)/lib/comm.jar

# do not put a space between ;# or :#
#SEP = ;# Win32
SEP = :# Linux

CLASSPATH = "$(ROOT)/src$(SEP)$(ROOT)/src/app$(SEP)$(ROOT)/lib/gnu.getopt.jar$(SEP)$(ROOT)/lib/Jama-1.0.1.jar$(SEP)$(COMM)"
PACKAGE = cricketdaemon
#JAVAC = javac -g -nowarn
JAVAC = javac
JAR = jar

VPATH = ../../bin

TARGETS = CricketDaemon.class \
	ServiceTime.class \
	UnitConv.class \
	Util.class \
	beaconstat/BeaconDistStat.class \
	beaconstat/BeaconStatData.class \
	beaconstat/BeaconStatModule.class \
	beaconstat/Stat.class \
	beacontable/BeaconTableModule.class \
	clientlib/Broker.class \
	clientlib/Callback.class \
	clientlib/Associable.class \
	clientlib/ServerBroker.class \
	clientlib/data/BeaconRecord.class\
	clientlib/data/CricketData.class \
	clientlib/data/DistanceStat.class \
	clientlib/data/Position.class \
	clientlib/data/Sample.class \
	clientlib/parse/DevicePosParseHandlerMap.class \
	clientlib/parse/DistanceEstimateArrayParseHandlerMap.class \
	clientlib/parse/DistanceEstimateParseHandlerMap.class \
	clientlib/parse/Field.class \
	clientlib/parse/PacketParseHandlerMap.class \
	clientlib/parse/ParseHandlerMap.class \
	clientlib/parse/PosParseHandlerMap.class \
	clientlib/parse/SampleArrayParseHandlerMap.class \
	clientlib/parse/StatParseHandlerMap.class \
	clientlib/sim/Coord.class \
	clientlib/sim/SimBroker.class \
	clientlib/sim/SimControl.class \
	evaluate/Algorithm.class \
	evaluate/BeaconFilter.class \
	evaluate/DataCapsule.class \
	evaluate/PositionFilter.class \
	evaluate/TestAlgor.class \
	logging/GUI.class \
	logging/LoggingModule.class \
	module/Data.class \
	module/DebugModule.class \
	module/ModuleThread.class \
	module/PeriodicModuleThread.class \
	orient/OrientModule.class \
	orient/OrientData.class \
	position/EKFSolver.class \
	position/PositionData.class \
	position/PositionModule.class \
	position/PositionSolver.class \
	reader/Beacon.class \
	reader/CartesianCoord.class \
	reader/GPSDReader.class \
	reader/GPSDReaderV2.class \
	reader/OldSerialPortReader.class \
	reader/PhaseArrayRecord.class \
	reader/PlaybackBeacon.class \
	reader/PlaybackReader.class \
	reader/SerialPortReader.class \
	reader/parse/FieldParser.class \
	reader/parse/FieldParser_ASCII.class \
	reader/parse/FieldParser_CartesianCoord.class \
	reader/parse/FieldParser_Float.class \
	reader/parse/FieldParser_Integer.class \
	reader/parse/FieldParser_Long.class \
	reader/parse/FieldParser_PhaseArray.class \
	reader/parse/ParseMap.class \
	reader/serial/PortReaderCreator.class \
	reader/serial/PortReaderFactory.class \
	reader/serial/PortTester.class \
	reader/sim/Controls.class \
	reader/sim/CustomFrame.class \
	reader/sim/GUI.class \
	reader/sim/MapGUI.class \
	reader/sim/SimMapReader.class \
	reader/sim/SimReader.class \
	server/ClientRecord.class \
	server/ServerConnListener.class \
	server/ServerModule.class \
	server/ServerThread.class \
	space/BeaconDistanceEstimator.class \
	space/DistanceEstimate.class \
	space/SpaceData.class \
	space/SpaceModule.class \
	space2/Space2Module.class \
	space2/SpaceBeaconTuple.class

ALLCLASSES = $(PACKAGE)/*.class \
	$(PACKAGE)/beaconstat/*.class \
	$(PACKAGE)/beacontable/*.class \
	$(PACKAGE)/clientlib/*.class \
	$(PACKAGE)/clientlib/data/*.class \
	$(PACKAGE)/clientlib/parse/*.class \
	$(PACKAGE)/clientlib/sim/*.class \
	$(PACKAGE)/evaluate/*.class \
	$(PACKAGE)/logging/*.class \
	$(PACKAGE)/module/*.class \
	$(PACKAGE)/orient/*.class \
	$(PACKAGE)/position/*.class \
	$(PACKAGE)/reader/*.class \
	$(PACKAGE)/reader/parse/*.class \
	$(PACKAGE)/reader/serial/*.class \
	$(PACKAGE)/reader/sim/*.class \
	$(PACKAGE)/server/*.class \
	$(PACKAGE)/space/*.class \
	$(PACKAGE)/space2/*.class

JARFILE = $(PACKAGE).jar
JOPTS = -classpath $(CLASSPATH)

all: $(TARGETS) $(JARFILE)

$(JARFILE): $(TARGETS)
	cd ..; $(JAR) cf $@ $(ALLCLASSES); mv $@ ../bin

%.class: %.java
	$(JAVAC) $(JOPTS) $^

clean:
	cd ..; rm $(ALLCLASSES); cd ..; rm bin/$(JARFILE)
