]> Pileus Git - ~andy/spades/blob - makefile
Add rules for card images
[~andy/spades] / makefile
1 # Settings
2 ANDROID := /opt/android-sdk-update-manager/platforms/android-10/android.jar
3 PACKAGE := org.pileus.spades
4 OUTPUT  := bin/Spades.apk
5
6 # Sources
7 RES     := $(shell find res -name '*.xml')
8 SRC     := $(shell find src -name '*.java')
9
10 # Objects
11 GEN     := gen/$(subst .,/,$(PACKAGE))/R.java
12 OBJ     := $(subst .java,.class,   \
13                 $(SRC:src/%=obj/%) \
14                 $(GEN:gen/%=obj/%))
15
16 # Targets
17 default: run
18
19 compile: $(OBJ)
20
21 debug: $(OUTPUT)
22
23 clean:
24         rm -rf bin gen obj
25
26 logcat:
27         adb logcat Spades:D AndroidRuntime:E '*:S'
28
29 run: bin/install.stamp
30         adb shell am start -W -a android.intent.action.MAIN -n $(PACKAGE)/.Main
31
32 install bin/install.stamp: $(OUTPUT)
33         adb install -r $+
34         touch bin/install.stamp
35
36 uninstall:
37         adb uninstall $(PACKAGE)
38         rm bin/install.stamp
39
40 png-cards:
41         git checkout cards-png -- 'res/drawable/card_*.png'
42         git reset    HEAD      -- 'res/drawable/card_*.png'
43
44 svg-cards:
45         git checkout cards-svg -- 'opt/drawable/card_*.svg'
46         git reset    HEAD      -- 'opt/drawable/card_*.svg'
47
48 convert:
49         for svg in opt/drawable/*.svg; do        \
50                 png=$${svg/svg/png};             \
51                 png=$${png/opt/res};             \
52                 rsvg-convert -w 2048 -h 2048     \
53                         $$svg -o $$png;          \
54                 convert -trim -resize '256x256!' \
55                         $$png $$png;             \
56         done
57
58 # Rules
59 %.apk: %.dex %.res | bin
60         @echo "APK    $@.in"
61         @apkbuilder $@.in -f $*.dex -z $*.res
62         @echo ALIGN $@
63         @zipalign -f 4 $@.in $@
64
65 %.dex: $(OBJ) | bin
66         @echo "DEX    $@ "
67         @dx --dex --output $@ obj
68
69 %.res: AndroidManifest.xml $(RES) | bin
70         @echo "RES    $@"
71         @aapt package -f -m               \
72                 -I $(ANDROID)             \
73                 -M AndroidManifest.xml    \
74                 -S res                    \
75                 -F $*.res
76
77 $(OBJ): $(SRC) $(GEN) | obj
78         @echo "JAVAC  $@"
79         @javac -g                         \
80                 -bootclasspath $(ANDROID) \
81                 -encoding      UTF-8      \
82                 -source        1.5        \
83                 -target        1.5        \
84                 -classpath     obj        \
85                 -d             obj        \
86                 $+
87
88 $(GEN): AndroidManifest.xml $(RES) | gen
89         @echo "GEN    $@"
90         @aapt package -f -m               \
91                 -I $(ANDROID)             \
92                 -M AndroidManifest.xml    \
93                 -S res                    \
94                 -J gen
95
96 # Directories
97 bin gen obj:
98         @mkdir -p $@