4 ANDROID ?= /opt/android-sdk-update-manager/platforms/android-10/android.jar
5 PACKAGE ?= org.pileus.spades
6 OUTPUT ?= bin/Spades.apk
9 RES := $(shell find res -name '*.xml')
10 SRC := $(shell find src -name '*.java')
13 GEN := gen/$(subst .,/,$(PACKAGE))/R.java
14 OBJ := $(subst .java,.class, \
28 adb logcat Spades:D AndroidRuntime:E '*:S'
30 run: bin/install.stamp
31 adb shell am start -W -a android.intent.action.MAIN -n $(PACKAGE)/.Main
33 install bin/install.stamp: $(OUTPUT)
35 touch bin/install.stamp
38 adb uninstall $(PACKAGE)
43 git checkout graphics -- \
44 'opt/drawable/*.svg' \
45 'opt/drawable/*.xcf' \
46 'res/drawable/*.png' \
47 'res/drawable/*.jpg' \
50 'opt/drawable/*.svg' \
51 'opt/drawable/*.xcf' \
52 'res/drawable/*.png' \
53 'res/drawable/*.jpg' \
57 for svg in opt/drawable/*.svg; do \
58 png=$${svg/svg/png}; \
59 png=$${png/opt/res}; \
60 rsvg-convert -w 2048 -h 2048 \
62 convert -trim -resize '256x256!' \
67 %.apk: %.dex %.res | bin
69 @apkbuilder $@.in -f $*.dex -z $*.res
71 @zipalign -f 4 $@.in $@
75 @dx --dex --output $@ obj
77 %.res: AndroidManifest.xml $(RES) | bin
81 -M AndroidManifest.xml \
85 $(OBJ): $(SRC) $(GEN) | obj
87 @javac -g -Xlint:unchecked \
88 -bootclasspath $(ANDROID) \
96 $(GEN): AndroidManifest.xml $(RES) | gen
97 @if ! [ -d "res/drawable" ]; then \
103 @aapt package -f -m \
105 -M AndroidManifest.xml \
113 # Use parallel javac instead