]> Pileus Git - ~andy/spades/blob - makefile
Split out uninstall to save settings
[~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
33 install bin/install.stamp: $(OUTPUT)
34         adb install -r $+
35         touch bin/install.stamp
36
37 uninstall:
38         adb uninstall $(PACKAGE)
39         rm bin/install.stamp
40
41 # Rules
42 %.apk: %.dex %.res | bin
43         @echo "APK    $@.in"
44         @apkbuilder $@.in -f $*.dex -z $*.res
45         @echo ALIGN $@
46         @zipalign -f 4 $@.in $@
47
48 %.dex: $(OBJ) | bin
49         @echo "DEX    $@ "
50         @dx --dex --output $@ obj
51
52 %.res: AndroidManifest.xml $(RES) | bin
53         @echo "RES    $@"
54         @aapt package -f -m               \
55                 -I $(ANDROID)             \
56                 -M AndroidManifest.xml    \
57                 -S res                    \
58                 -F $*.res
59
60 $(OBJ): $(SRC) $(GEN) | obj
61         @echo "JAVAC  $@"
62         @javac -g                         \
63                 -bootclasspath $(ANDROID) \
64                 -encoding      UTF-8      \
65                 -source        1.5        \
66                 -target        1.5        \
67                 -classpath     obj        \
68                 -d             obj        \
69                 $+
70
71 $(GEN): AndroidManifest.xml $(RES) | gen
72         @echo "GEN    $@"
73         @aapt package -f -m               \
74                 -I $(ANDROID)             \
75                 -M AndroidManifest.xml    \
76                 -S res                    \
77                 -J gen
78
79 # Directories
80 bin gen obj:
81         @mkdir -p $@