blob: 982e7686ee8e0869ca82f910af6d928e0ea0be4e [file] [log] [blame]
Neels Hofmeyrc916b972020-02-24 22:51:21 +01001BUILD_DIR = ./build
2BUILD_CLASSES_DIR = $(BUILD_DIR)/classes
3BUILD_JAVACARD_DIR = $(BUILD_DIR)/javacard
4JAVACARD_SDK_DIR ?= $(SIMTOOLS_DIR)/javacard
5JAVACARD_EXPORT_DIR ?= $(JAVACARD_SDK_DIR)/api21_export_files
6ifdef COMSPEC
7 CLASSPATH = $(JAVACARD_SDK_DIR)/lib/api21.jar;$(JAVACARD_SDK_DIR)/lib/sim.jar
8else
9 CLASSPATH = $(JAVACARD_SDK_DIR)/lib/api21.jar:$(JAVACARD_SDK_DIR)/lib/sim.jar
10endif
Neels Hofmeyrfaeef432020-02-24 22:51:56 +010011JFLAGS = -target 1.1 -source 1.3 -g -d $(BUILD_CLASSES_DIR) -classpath "$(BUILD_CLASSES_DIR):$(CLASSPATH)"
Neels Hofmeyrc916b972020-02-24 22:51:21 +010012JAVA ?= java
13JC ?= javac
14
15.SUFFIXES: .java .class
16.java.class:
Neels Hofmeyrfaeef432020-02-24 22:51:56 +010017 @mkdir -p $(BUILD_CLASSES_DIR)
18 @mkdir -p $(BUILD_JAVACARD_DIR)
Neels Hofmeyrc916b972020-02-24 22:51:21 +010019 $(JC) $(JFLAGS) $*.java
20
Neels Hofmeyrfaeef432020-02-24 22:51:56 +010021.PHONY: jar
22jar: classes
Neels Hofmeyrc916b972020-02-24 22:51:21 +010023 $(JAVA) -jar $(JAVACARD_SDK_DIR)/bin/converter.jar \
24 -d $(BUILD_JAVACARD_DIR) \
25 -classdir $(BUILD_CLASSES_DIR) \
26 -exportpath $(JAVACARD_EXPORT_DIR) \
27 -applet $(APPLET_AID) $(APPLET_NAME) \
28 $(PACKAGE_NAME) $(PACKAGE_AID) $(PACKAGE_VERSION)
29
Neels Hofmeyrfaeef432020-02-24 22:51:56 +010030default: jar
Neels Hofmeyrc916b972020-02-24 22:51:21 +010031
32classes: $(SOURCES:.java=.class)
33
34clean:
35 $(RM) -rf $(BUILD_DIR)
36
37install:
38 $(eval CAP_FILE := $(shell find $(BUILD_JAVACARD_DIR) -name *.cap))
39 $(eval MODULE_AID := $(shell echo $(APPLET_AID) | sed 's/0x//g' | sed 's/\://g'))
40 $(eval INSTANCE_AID := $(shell echo $(APPLET_AID) | sed 's/0x//g' | sed 's/\://g'))
41 $(SIMTOOLS_DIR)/bin/shadysim \
42 $(SHADYSIM_OPTIONS) \
43 -l $(CAP_FILE) \
44 -i $(CAP_FILE) \
45 --enable-sim-toolkit \
46 --module-aid $(MODULE_AID) \
47 --instance-aid $(INSTANCE_AID) \
48 --nonvolatile-memory-required 0100 \
49 --volatile-memory-for-install 0100 \
50 --max-menu-entry-text 10 \
51 --max-menu-entries 01