converter=java com.sun.javacard.converter.Converter
apdutool=java com.sun.javacard.apdutool.Main
scriptgen=java com.sun.javacard.scriptgen.Main
java1.4=c:\progra~1\j2sdk1.4.0\bin\java

all: eeprom.dat example.jar

example.jar: \
	classes\example\purse\PurseImpl_Stub.class \
	classes\example\client\Personalize.class \
	classes\example\client\Client.class
	jar cf example.jar -C classes .

classes\example\purse\Purse.class: src\example\purse\Purse.java
	javac -d classes src\example\purse\Purse.java

classes\example\purse\PurseImpl.class: src\example\purse\PurseImpl.java
	javac -d classes src\example\purse\PurseImpl.java

classes\example\purse\Purse_Skel.class: src\example\purse\Purse_Skel.java
	javac -d classes src\example\purse\Purse_Skel.java

classes\example\purse\PurseImpl_Stub.class: src\example\purse\PurseImpl_Stub.java
	javac -d classes src\example\purse\PurseImpl_Stub.java

classes\example\client\Personalize.class: src\example\client\Personalize.java
	javac -d classes src\example\client\Personalize.java

classes\example\client\Client.class: src\example\client\Client.java
	javac -d classes src\example\client\Client.java

src\example\purse\Purse.java src\example\purse\PurseImpl_Stub.java: \
	src\example\purse\Purse.jason
	cd ..\compiler
	make
	cd ..\example
	java jason.compiler.Main src\example\purse\Purse.jason

eeprom.dat: download.scr
	if exist keystore.dat del keystore.dat
	start cref -o eeprom.dat -z
	${apdutool} download.scr

download.scr: header.scr installpurse.scr instantiate.scr footer.scr
	cd ..\server
	make
	cd ..\example
	copy /b header.scr+..\server\installframework.scr+installpurse.scr+instantiate.scr+footer.scr download.scr

installpurse.scr: classes\example\purse\javacard\purse.cap
	${scriptgen} -o installpurse.scr classes\example\purse\javacard\purse.cap

classes\example\purse\javacard\purse.cap: \
	classes\example\purse\Purse.class \
	classes\example\purse\PurseImpl.class \
	classes\example\purse\Purse_Skel.class
	cd classes
	if exist example\purse\PurseImpl_Stub.class del example\purse\PurseImpl_Stub.class
	${converter} -applet 0x33:0x04:0x00:0x00:0x00:0x00 example.purse.Purse_Skel example.purse 0x33:0x04:0x00:0x00:0x00 1.0
	cd ..

runrmiregistry:
	start rmiregistry 8080

runserver: eeprom.dat
	start cref -i eeprom.dat -o eeprom.dat -z

runterminal:
	cd ..\terminal
	make
	cd ..\example
	start command /c java jason.terminal.Main

runclient: all
	cd ..\client
	make
	cd ..\example
	if not exist keystore.dat ${java1.4} example.client.Personalize
	${java1.4} example.client.Client

clean:
	del src\example\purse\Purse.java
	del src\example\purse\Purse_Skel.java
	del src\example\purse\Purse_Stub.java
	del classes\example\purse\*.class
	del classes\example\purse\javacard\purse.*
	del classes\example\client\*.class
	del eeprom.dat
	del download.scr
	del installpurse.scr
	del example.jar