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