converter=java com.sun.javacard.converter.Converter
scriptgen=java com.sun.javacard.scriptgen.Main

all: server.jar installframework.scr

server.jar: \
	classes\javacard\security\Key.class \
	classes\javacard\security\SecretKey.class \
	classes\javacard\security\DESKey.class \
	classes\javacard\security\DESKeyImpl.class \
	classes\javacard\security\CryptoException.class \
	classes\javacard\security\XORKey.class \
	classes\javacard\security\KeyBuilder.class \
	classes\javacard\security\RandomData.class	\
	classes\javacard\security\XORPrivateKey.class \
	classes\javacard\security\XORPublicKey.class \
	classes\javacard\security\Signature.class \
	classes\javacardx\crypto\XORCipher.class \
	classes\javacardx\crypto\Cipher.class \
	classes\jason\Constants.class \
	classes\jason\server\KeyStore.class \
	classes\jason\server\Session.class 
	jar cf server.jar -C classes .
	
classes\javacard\security\Key.class: src\javacard\security\Key.java
	javac -d classes -g src\javacard\security\Key.java

classes\javacard\security\SecretKey.class: src\javacard\security\SecretKey.java
	javac -d classes -g src\javacard\security\SecretKey.java

classes\javacard\security\DESKey.class: src\javacard\security\DESKey.java
	javac -d classes -g src\javacard\security\DESKey.java

classes\javacard\security\CryptoException.class: src\javacard\security\CryptoException.java
	javac -d classes -g src\javacard\security\CryptoException.java

classes\javacard\security\DESKeyImpl.class: src\javacard\security\DESKeyImpl.java
	javac -d classes -g src\javacard\security\DESKeyImpl.java

classes\javacard\security\XORKey.class: src\javacard\security\XORKey.java
	javac -d classes -g src\javacard\security\XORKey.java

classes\javacard\security\KeyBuilder.class: src\javacard\security\KeyBuilder.java
	javac -d classes -g src\javacard\security\KeyBuilder.java

classes\javacard\security\RandomData.class: src\javacard\security\RandomData.java
	javac -d classes -g src\javacard\security\RandomData.java

classes\javacard\security\XORPrivateKey.class: src\javacard\security\XORPrivateKey.java
	javac -d classes -g src\javacard\security\XORPrivateKey.java

classes\javacard\security\XORPublicKey.class: src\javacard\security\XORPublicKey.java
	javac -d classes -g src\javacard\security\XORPublicKey.java

classes\javacard\security\Signature.class: src\javacard\security\Signature.java
	javac -d classes -g src\javacard\security\Signature.java

classes\javacardx\crypto\XORCipher.class: \
	src\javacardx\crypto\XORCipher.java
	javac -d classes -g src\javacardx\crypto\XORCipher.java

classes\javacardx\crypto\Cipher.class: src\javacardx\crypto\Cipher.java
	javac -d classes -g src\javacardx\crypto\Cipher.java

classes\jason\Constants.class: src\jason\Constants.java
	javac -d classes -g src\jason\Constants.java

classes\jason\server\KeyStore.class: src\jason\server\KeyStore.java
	javac -d classes -g src\jason\server\KeyStore.java

classes\jason\server\Session.class: \
	src\jason\server\Session.java
	javac -d classes -g src\jason\server\Session.java

installframework.scr: installsecurity.scr installcrypto.scr installjason.scr install.scr
	copy /b installsecurity.scr+installcrypto.scr+installjason.scr+install.scr installframework.scr
	
installsecurity.scr: classes\javacard\security\javacard\security.cap
	${scriptgen} -o installsecurity.scr classes\javacard\security\javacard\security.cap

classes\javacard\security\javacard\security.cap: 
	cd classes
	${converter} javacard.security 0x33:0x06:0x00:0x00:0x00 1.0
	cd ..

installcrypto.scr: classes\javacardx\crypto\javacard\crypto.cap
	${scriptgen} -o installcrypto.scr classes\javacardx\crypto\javacard\crypto.cap

classes\javacardx\crypto\javacard\crypto.cap: 
	cd classes
	${converter} javacardx.crypto 0x33:0x07:0x00:0x00:0x00 1.0
	cd ..

installjason.scr: classes\jason\javacard\jason.cap
	${scriptgen} -o installjason.scr classes\jason\javacard\jason.cap

classes\jason\javacard\jason.cap:
	cd classes
	${converter} jason 0x33:0x05:0x00:0x00:0x00 1.0
	cd ..

install.scr: classes\jason\server\javacard\server.cap
	${scriptgen} -o install.scr classes\jason\server\javacard\server.cap

classes\jason\server\javacard\server.cap: 
	cd classes
	${converter} jason.server 0x33:0x08:0x00:0x00:0x00 1.0
	cd ..
	
clean:
	del classes\javacard\security\*.class
	del classes\javacard\security\javacard\security.*
	del classes\javacardx\crypto\*.class
	del classes\javacardx\crypto\javacard\crypto.*
	del classes\jason\*.class
	del classes\jason\server\*.class
	del classes\jason\server\javacard\server.*
	del server.jar
	del *.scr