aboutsummaryrefslogtreecommitdiffstats
path: root/sim-applet/applet-project.mk
blob: bfb20cd29bfe8fa6b3f683be5d69705d1c11babe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
BUILD_DIR           = ./build
BUILD_CLASSES_DIR   = $(BUILD_DIR)/classes
BUILD_JAVACARD_DIR  = $(BUILD_DIR)/javacard
JAVACARD_SDK_DIR    ?= $(SIMTOOLS_DIR)/javacard
JAVACARD_EXPORT_DIR ?= $(JAVACARD_SDK_DIR)/api21_export_files
ifdef COMSPEC
	CLASSPATH	    = $(JAVACARD_SDK_DIR)/lib/api21.jar;$(JAVACARD_SDK_DIR)/lib/sim.jar
else
	CLASSPATH           = $(JAVACARD_SDK_DIR)/lib/api21.jar:$(JAVACARD_SDK_DIR)/lib/sim.jar
endif
JFLAGS              = -target 1.1 -source 1.3 -g -d $(BUILD_CLASSES_DIR) -classpath "$(CLASSPATH)"
JAVA                ?= java
JC                  ?= javac

.SUFFIXES: .java .class
.java.class:
	mkdir -p $(BUILD_CLASSES_DIR)
	mkdir -p $(BUILD_JAVACARD_DIR)

	$(JC) $(JFLAGS) $*.java

	$(JAVA) -jar $(JAVACARD_SDK_DIR)/bin/converter.jar  \
		-d $(BUILD_JAVACARD_DIR)                    \
		-classdir $(BUILD_CLASSES_DIR)              \
		-exportpath $(JAVACARD_EXPORT_DIR)          \
		-applet $(APPLET_AID) $(APPLET_NAME)        \
		$(PACKAGE_NAME) $(PACKAGE_AID) $(PACKAGE_VERSION)

default: classes

classes: $(SOURCES:.java=.class)

clean:
	$(RM) -rf $(BUILD_DIR)

install:
	$(eval CAP_FILE     := $(shell find $(BUILD_JAVACARD_DIR) -name *.cap))
	$(eval MODULE_AID   := $(shell echo $(APPLET_AID) | sed 's/0x//g' | sed 's/\://g'))
	$(eval INSTANCE_AID := $(shell echo $(APPLET_AID) | sed 's/0x//g' | sed 's/\://g'))
	$(SIMTOOLS_DIR)/bin/shadysim                  \
		$(SHADYSIM_OPTIONS)                \
		-l $(CAP_FILE)                     \
		-i $(CAP_FILE)                     \
		--enable-sim-toolkit               \
		--module-aid $(MODULE_AID)         \
		--instance-aid $(INSTANCE_AID)     \
		--nonvolatile-memory-required 0100 \
		--volatile-memory-for-install 0100 \
		--max-menu-entry-text 10           \
		--max-menu-entries 01