5 PACKAGE ?= org.pileus.spades
6 KEYFILE ?= ~/.android/android.p12
9 ANDROID ?= /opt/android-sdk-update-manager/platforms/android-18/android.jar
10 SDKLIB ?= /opt/android-sdk-update-manager/tools/lib/sdklib.jar
11 TOOLS ?= /opt/android-sdk-update-manager/build-tools/19.0.1
14 PATH := $(PATH):$(TOOLS)
15 DIR := $(subst .,/,$(PACKAGE))
16 RES := $(wildcard res/*/*.*)
17 SRC := $(wildcard src/$(DIR)/*.java)
18 GEN := gen/$(DIR)/R.java
19 OBJ := obj/$(DIR)/R.class
20 APK := java -classpath $(SDKLIB) \
21 com.android.sdklib.build.ApkBuilderMain
24 debug: bin/$(PROGRAM).dbg
26 release: bin/$(PROGRAM).apk
35 adb logcat $(PROGRAM):D AndroidRuntime:E '*:S'
37 run: bin/install.stamp
38 adb shell am start -W \
39 -a android.intent.action.MAIN \
42 install bin/install.stamp: bin/$(PROGRAM).dbg
44 touch bin/install.stamp
47 adb uninstall $(PACKAGE)
52 git checkout graphics -- \
53 'opt/drawable/*.svg' \
54 'opt/drawable/*.xcf' \
55 'res/drawable/*.png' \
56 'res/drawable/*.jpg' \
59 'opt/drawable/*.svg' \
60 'opt/drawable/*.xcf' \
61 'res/drawable/*.png' \
62 'res/drawable/*.jpg' \
66 for svg in opt/drawable/*.svg; do \
67 png=$${svg/svg/png}; \
68 png=$${png/opt/res}; \
69 rsvg-convert -w 2048 -h 2048 \
73 -bordercolor '#00000000' \
79 %.dbg: %.dex %.res | bin
81 @$(APK) $@.in -f $*.dex -z $*.res
83 @zipalign -f 4 $@.in $@
85 %.apk: %.dex %.res | bin
87 @$(APK) $@.in -u -f $*.dex -z $*.res
89 @jarsigner -storetype $(KEYTYPE) \
90 -keystore $(KEYFILE) \
93 @zipalign -f 4 $@.in $@
97 @dx --dex --output $@ obj
99 %.res: AndroidManifest.xml $(RES) | bin
101 @aapt package -f -m \
103 -M AndroidManifest.xml \
107 $(OBJ): $(SRC) $(GEN) | obj
108 @echo "JAVAC obj/*.class"
109 @javac -g -Xlint:unchecked \
110 -bootclasspath $(ANDROID) \
118 $(GEN): AndroidManifest.xml $(RES) | gen
119 @if ! [ -d "res/drawable" ]; then \
125 @aapt package -f -m \
127 -M AndroidManifest.xml \
135 # Keep intermediate files