Neels Hofmeyr | c916b97 | 2020-02-24 22:51:21 +0100 | [diff] [blame] | 1 | BUILD_DIR = ./build |
| 2 | BUILD_CLASSES_DIR = $(BUILD_DIR)/classes |
| 3 | BUILD_JAVACARD_DIR = $(BUILD_DIR)/javacard |
| 4 | JAVACARD_SDK_DIR ?= $(SIMTOOLS_DIR)/javacard |
| 5 | JAVACARD_EXPORT_DIR ?= $(JAVACARD_SDK_DIR)/api21_export_files |
| 6 | ifdef COMSPEC |
| 7 | CLASSPATH = $(JAVACARD_SDK_DIR)/lib/api21.jar;$(JAVACARD_SDK_DIR)/lib/sim.jar |
| 8 | else |
| 9 | CLASSPATH = $(JAVACARD_SDK_DIR)/lib/api21.jar:$(JAVACARD_SDK_DIR)/lib/sim.jar |
| 10 | endif |
Neels Hofmeyr | faeef43 | 2020-02-24 22:51:56 +0100 | [diff] [blame] | 11 | JFLAGS = -target 1.1 -source 1.3 -g -d $(BUILD_CLASSES_DIR) -classpath "$(BUILD_CLASSES_DIR):$(CLASSPATH)" |
Neels Hofmeyr | c916b97 | 2020-02-24 22:51:21 +0100 | [diff] [blame] | 12 | JAVA ?= java |
| 13 | JC ?= javac |
| 14 | |
| 15 | .SUFFIXES: .java .class |
| 16 | .java.class: |
Neels Hofmeyr | faeef43 | 2020-02-24 22:51:56 +0100 | [diff] [blame] | 17 | @mkdir -p $(BUILD_CLASSES_DIR) |
| 18 | @mkdir -p $(BUILD_JAVACARD_DIR) |
Neels Hofmeyr | c916b97 | 2020-02-24 22:51:21 +0100 | [diff] [blame] | 19 | $(JC) $(JFLAGS) $*.java |
| 20 | |
Neels Hofmeyr | faeef43 | 2020-02-24 22:51:56 +0100 | [diff] [blame] | 21 | .PHONY: jar |
| 22 | jar: classes |
Neels Hofmeyr | c916b97 | 2020-02-24 22:51:21 +0100 | [diff] [blame] | 23 | $(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 Hofmeyr | faeef43 | 2020-02-24 22:51:56 +0100 | [diff] [blame] | 30 | default: jar |
Neels Hofmeyr | c916b97 | 2020-02-24 22:51:21 +0100 | [diff] [blame] | 31 | |
| 32 | classes: $(SOURCES:.java=.class) |
| 33 | |
| 34 | clean: |
| 35 | $(RM) -rf $(BUILD_DIR) |
| 36 | |
| 37 | install: |
| 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 |