#
# Makefile for logViewer & viewerServer
#
#    Copyright (C) 2000-2002 by Yoshitaka Kuwata
#	kuwatay@nttdata.co.jp
#    Copyright (C) 2000-2002 by NTT DATA CORP.
#    All rights reserved
#

.SUFFIXES: .class .java

.java.class:
	javac -classpath `pwd` $(COMPILE_OPTIONS) $<

TERMINAL = rxvt -sl 1000
#TERMINAL = kterm -sl 1000
LOGPLAYER = ~/RESCUE/rescue-0_39-unix/logplayer/logplayer -file config.txt

# TERMINAL = kterm

# COMPILE_OPTIONS = -deprecation
COMPILE_OPTIONS =

VIEWERCLASS = viewer/CookedDataInputStream.class viewer/DoubleFormat.class \
	viewer/building.class viewer/buildingMap.class viewer/configFrame.class \
	viewer/coordinates.class viewer/displayObject.class viewer/logPool.class \
	viewer/mapCanvas.class viewer/node.class viewer/road.class viewer/statCanvas.class \
	viewer/statFrame.class viewer/userModel.class viewer/viewerFrame.class \
	viewer/demoFrame.class viewer/Map.class viewer/windowGeometry.class \
	viewer/VStackLayout.class viewer/cursor.class viewer/drawing.class \
	viewer/agentListFrame.class
SERVERCLASS = viewerServer/logController.class \
	viewerServer/mainFrame.class \
	viewerServer/viewerServer.class \
	viewerServer/logReceiver.class
RESCUECLASS = rescue/LongUDPSocket.class  rescue/Pool.class
CLASS = $(VIEWERCLASS) $(SERVERCLASS) $(RESCUECLASS)

logViewer.jar : $(CLASS)
	rm -rf logViwer.jar
	jar cf logViewer.jar rescue/*.class viewer/*.class viewer/sound/ viewer/icon/ viewer/data/ viewerServer/*.class etc/*


clean :
	rm -rf rescue/*.class viewer/*.class viewerServer/*.class logViewer.jar core

tarfile :
	tar cvf - * | gzip > ../logViewerNew.tgz

dist-src :
	rm -rf logViewerSrc.jar
	jar cf logViewerSrc.jar Makefile rescue/*.java viewer/*.java viewerServer/*.java viewer/sound/ viewer/icon/ viewer/data/ etc/*

# test parameters

# USE_ARCHIVE = -Djava.class.path=logViewer.jar
USE_ARCHIVE =
VERBOSE = -v
SOUND = -s
TIMELIMIT = -l 300
MEMORY_ALLOCATION = -Xmx128m

# VIEWER_PARAM =  $(MEMORY_ALLOCATION) $(USE_ARCHIVE) viewer.Map $(VERBOSE) $(SOUND) $(TIMELIMIT)
VIEWER_PARAM =  $(MEMORY_ALLOCATION) $(USE_ARCHIVE) viewer.Map $(VERBOSE) $(TIMELIMIT)


SERVER_PARAM = $(USE_ARCHIVE) viewerServer.logController

#REMOTE_EXEC = -h 192.168.0.111 -p 6060

#
# test run
#

# test with log file

#test : test10-0
test : city2

# city2 test
DATAFILECITY1 = -d data/city2_1/
DATAFILECITY4 = -d data/city2_4/
TESTFILECITY2 = data/city2/city2.log

city2 : logViewer.jar
#	java $(VIEWER_PARAM) $(DATAFILECITY1) -f $(TESTFILECITY2) -geometry 1280x1024+0+0 -demo -demogeometry 800x800+0+0
	java $(VIEWER_PARAM) $(DATAFILECITY1) -f $(TESTFILECITY2) -demo
city2_4 : logViewer.jar
	java $(VIEWER_PARAM) $(DATAFILECITY4) -f $(TESTFILECITY2)

# 1/10 model, sound, log-mode
DATAFILE1 = -d data/1/
DATAFILE10 = -d data/10/
DATAFILE100 = -d data/100/

TESTFILE0 = data/NIT/rescueISI_gentle_300.log
TESTFILE1 = JapanOpenLog/YabAI_log/0430-100332-rsv3-YabAI-1-final.txt.log
TESTFILE2 = JapanOpenLog/ISIRescue_log/0429-135224-rsv3-ISI-Rescue-NITRescue-R-1.log

test10-0 : logViewer.jar
	java $(VIEWER_PARAM) $(DATAFILE10) -f $(TESTFILE0)

test10-1 : logViewer.jar
	java $(VIEWER_PARAM) $(DATAFILE10) -f $(TESTFILE1)

test10-2 : logViewer.jar
	java $(VIEWER_PARAM) $(DATAFILE10) -f $(TESTFILE2)

# open full size data in full screen
GEOMETRY = -geometry 1280x1024
GEOMETRY2 = -geometry 1024x768

test1-0 : logViewer.jar
	java $(VIEWER_PARAM) $(GEOMETRY) $(DATAFILE1) -f $(TESTFILE0)

test1-1 : logViewer.jar
	java $(VIEWER_PARAM) $(GEOMETRY) $(DATAFILE1) -f $(TESTFILE1)

test1-2 : logViewer.jar
	java $(VIEWER_PARAM) $(GEOMETRY) $(DATAFILE1) -f $(TESTFILE2)

# remoe mode (connect local kernel)
CONNECT = -h localhost -p 6000
local : logViewer.jar
	java $(VIEWER_PARAM) $(CONNECT) $(GEOMETRY2)

# remote mode (connect local viewerServer)
NORMAL_CONNECT = -h localhost -p 6060
EXTEND_CONNECT = -h localhost -p 6060 -e

extend : logViewer.jar
	java $(VIEWER_PARAM) $(EXTEND_CONNECT)

# start viewerServer
server : logViewer.jar
	java $(SERVER_PARAM) -f $(TESTFILE1)

#
v : city2
	echo done

# execute 1 viewerServer and 1 remote server
sv : logViewer.jar
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -f $(TESTFILECITY2) &
	sleep 5
#	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT)

# execute 1 viewerServer and 2 remote mode viewers at one localhost with nagata map
svv : logViewer.jar
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -f $(TESTFILE1) &
	sleep 5
	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILE10) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer2" -exec java $(VIEWER_PARAM) $(DATAFILE10) $(EXTEND_CONNECT) &

# execute 1 logPlayer and 1 viewerServer in remote mode
rs : logViewer.jar
	$(TERMINAL) -title "logPlayer" -exec $(LOGPLAYER) &
	sleep 2
	java $(SERVER_PARAM) -h localhost

# execute 1 logPlayer, 1 viewerServer in remote mode, and one remote mode viewer at one localhost
rsv : logViewer.jar
	$(TERMINAL) -title "logPlayer" -exec $(LOGPLAYER) &
	sleep 2
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -h localhost &
	sleep 6
	java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT)

# execute 1 logPlayer, 1 viewerServer in remote mode, and two remote mode viewers at one localhost
rsvv : logViewer.jar
	$(TERMINAL) -title "logPlayer" -exec $(LOGPLAYER) &
	sleep 2
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -v -h localhost &
	sleep 6
	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 6
	$(TERMINAL) -title "Viewer2" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
# java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT)

# execute 1 viewerServer and 3 remote mode viewers at one localhost with city2 map
svvv : logViewer.jar
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -f $(TESTFILECITY2) &
	sleep 5
	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer2" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer3" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(NORMAL_CONNECT) &

# execute 1 viewerServer and 4 remote mode viewers at one localhost with city2 map
# KIDS, NEVER TRY TO RUN AT HOME
sv4 : logViewer.jar
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -f $(TESTFILECITY2) &
	sleep 5
	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer2" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer3" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer4" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &

# execute 1 viewerServer and 8 remote mode viewers at one localhost with city2 map
# KIDS, NEVER TRY TO RUN AT HOME
sv8 : logViewer.jar
	$(TERMINAL) -title "viewerServer" -exec java $(SERVER_PARAM) -f $(TESTFILECITY2) &
	sleep 5
	$(TERMINAL) -title "Viewer1" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer2" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer3" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer4" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer5" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer6" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer7" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &
	sleep 5
	$(TERMINAL) -title "Viewer8" -exec java $(VIEWER_PARAM) $(DATAFILECITY1) $(EXTEND_CONNECT) &


remote1 : logViewer.jar
	java -Xmx128m viewer.Map $(REMOTE_EXEC) $(DATAFILE1)


#
#
# EOF
