5 PACKAGE ?= edu.ucla.iBeaconNav
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 MAPLIB ?= /opt/android-sdk-update-manager/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
12 TOOLS ?= /opt/android-sdk-update-manager/build-tools/19.0.1
15 PATH := $(PATH):$(TOOLS)
16 DIR := $(subst .,/,$(PACKAGE))
17 RES := $(wildcard res/*/*.*)
18 SRC := $(wildcard src/$(DIR)/*.java)
19 GEN := gen/$(DIR)/R.java
20 OBJ := obj/$(DIR)/R.class
21 APK := java -classpath $(SDKLIB) \
22 com.android.sdklib.build.ApkBuilderMain
25 debug: bin/$(PROGRAM).dbg
27 release: bin/$(PROGRAM).apk
36 adb logcat $(PROGRAM):D AndroidRuntime:E '*:S'
38 run: bin/install.stamp
39 adb shell am start -W \
40 -a android.intent.action.MAIN \
43 install bin/install.stamp: bin/$(PROGRAM).dbg
45 touch bin/install.stamp
48 adb uninstall $(PACKAGE)
49 rm -f bin/install.stamp
52 %.dbg: %.dex %.res | bin
54 @$(APK) $@.in -f $*.dex -z $*.res
56 @zipalign -f 4 $@.in $@
58 %.apk: %.dex %.res | bin
60 @$(APK) $@.in -u -f $*.dex -z $*.res
62 @jarsigner -storetype $(KEYTYPE) \
63 -keystore $(KEYFILE) \
66 @zipalign -f 4 $@.in $@
68 %.dex: $(OBJ) makefile | bin
69 @echo "DEX $@ obj $(notdir $(MAPLIB))"
70 @dx --dex --output $@ obj $(MAPLIB)
72 %.res: AndroidManifest.xml $(RES) | bin
77 -M AndroidManifest.xml \
79 -S /opt/android-sdk-update-manager/extras/google/google_play_services/libproject/google-play-services_lib/res \
82 $(OBJ): $(SRC) $(GEN) makefile | obj
83 @echo "JAVAC obj/*.class $+"
84 @JARS=$(ANDROID):$(MAPLIB); \
88 -bootclasspath $$JARS \
94 $(filter-out makefile,$+) gen/com/google/android/gms/R.java
96 $(GEN): AndroidManifest.xml $(RES) | gen
100 -M /opt/android-sdk-update-manager/extras/google/google_play_services/libproject/google-play-services_lib/AndroidManifest.xml \
101 -S /opt/android-sdk-update-manager/extras/google/google_play_services/libproject/google-play-services_lib/res \
103 @aapt package -f -m \
106 -M AndroidManifest.xml \
108 -S /opt/android-sdk-update-manager/extras/google/google_play_services/libproject/google-play-services_lib/res \
115 # Keep intermediate files