summaryrefslogtreecommitdiff
path: root/Makefile
blob: ac076615abb232640da00046173789fa495e80a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
SDK=/home/keithp/src/android/android-sdk-linux

DX=$(SDK)/platform-tools/dx
ADB=$(SDK)/platform-tools/adb
AAPT=$(SDK)/platform-tools/aapt
APKBUILDER=$(SDK)/tools/apkbuilder
ZIPALIGN=$(SDK)/tools/zipalign

PLATFORM=$(SDK)/platforms/android-10
PLATFORM_JAR=$(PLATFORM)/android.jar
ADDONS=$(SDK)/add-ons/addon-google_apis-google_inc_-10/libs
TOOLS_LIB=$(SDK)/tools/lib
CLASSPATH=".:$(PLATFORM)/*:$(TOOLS_LIB)/*"
CLASSES=classes
SRC_DIR=src/org/altusmetrum/AltosDroid
GEN_DIR=gen/org/altusmetrum/AltosDroid
JAVAC=javac
BOOTCLASSPATH=$(PLATFORM_JAR):$(ADDONS)/usb.jar:$(ADDONS)/maps.jar

JAVACFLAGS=\
	-d $(CLASSES) \
	-classpath $(CLASSES):. \
	-sourcepath src:gen \
	-target 1.5 \
	-bootclasspath $(BOOTCLASSPATH) \
	-encoding UTF-8 \
	-g \
	-source 1.5

SRC=\
	$(SRC_DIR)/AltosDroid.java \
	$(SRC_DIR)/BluetoothChatService.java \
	$(SRC_DIR)/DeviceListActivity.java \
	$(GEN_DIR)/R.java

all: class.stamp AltosDroid.apk

class.stamp: $(SRC)
	$(JAVAC) $(JAVACFLAGS) $(SRC) && touch $@

AltosDroid.dex: class.stamp
	$(DX) --dex --verbose --output=$@ $(CLASSES)

AltosDroid.apk: AltosDroid.dex
	$(APKBUILDER) "$@" -u -f AltosDroid.dex

install: AltosDroid.apk
	$(ADB) -e install -r AltosDroid.apk

$(GEN_DIR)/R.java: resources.stamp

resources.stamp: Makefile
	mkdir -p bin/res
	$(AAPT) package -f -m -M AndroidManifest.xml -S bin/res -S res -I $(PLATFORM_JAR) -J gen --generate-dependencies && touch $@

dex.stamp: Makefile class.stamp
	$(DX) --dex --output bin/classes.dex bin/classes && touch $@

crunch.stamp: Makefile dex.stamp
	$(AAPT) crunch -v -S res -C bin/res

package.stamp: Makefile crunch.stamp
	$(AAPT) package --no-crunch -f --debug-mode -M AndroidManifest.xml -S bin/res -S res -A assets -I $(PLATFORM_JAR) -F bin/activity.ap_ --generate-dependencies && touch $@

align.stamp: Makefile package.stamp
	$(ZIPALIGN) -f 4 bin/activity-debug-unaligned.apk bin/activity-debug.apk