X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=makefile;h=6fcf87aabd625f0bf4006df0dff49a1886aa95f2;hb=c51ceae68e5d3aa84e262a0dbdd054a5fab64945;hp=80dbcdac21897702062577ebc06bdd5a4d7a3977;hpb=b0d2383410fe0b981c4943ec073eb44ec7b64f51;p=~andy%2Fspades diff --git a/makefile b/makefile index 80dbcda..6fcf87a 100644 --- a/makefile +++ b/makefile @@ -1,22 +1,24 @@ -include config.mk # Settings -ANDROID ?= /opt/android-sdk-update-manager/platforms/android-10/android.jar +PROGRAM ?= Spades PACKAGE ?= org.pileus.spades -OUTPUT ?= bin/Spades.apk - -# Sources -RES := $(shell find res -name '*.xml') -SRC := $(shell find src -name '*.java') +KEYFILE ?= ~/.android/android.p12 +KEYTYPE ?= pkcs12 +KEYNAME ?= android +ANDROID ?= /opt/android-sdk-update-manager/platforms/android-10/android.jar -# Objects -GEN := gen/$(subst .,/,$(PACKAGE))/R.java -OBJ := $(subst .java,.class, \ - $(SRC:src/%=obj/%) \ - $(GEN:gen/%=obj/%)) +# Variables +DIR := $(subst .,/,$(PACKAGE)) +RES := $(wildcard res/*/*.*) +SRC := $(wildcard src/$(DIR)/*.java) +GEN := gen/$(DIR)/R.java +OBJ := obj/$(DIR)/R.class # Targets -all: $(OUTPUT) +debug: bin/$(PROGRAM).dbg + +release: bin/$(PROGRAM).apk compile: $(OBJ) @@ -25,12 +27,14 @@ clean: # ADB targets logcat: - adb logcat Spades:D AndroidRuntime:E '*:S' + adb logcat $(PROGRAM):D AndroidRuntime:E '*:S' run: bin/install.stamp - adb shell am start -W -a android.intent.action.MAIN -n $(PACKAGE)/.Main + adb shell am start -W \ + -a android.intent.action.MAIN \ + -n $(PACKAGE)/.Main -install bin/install.stamp: $(OUTPUT) +install bin/install.stamp: bin/$(PROGRAM).dbg adb install -r $+ touch bin/install.stamp @@ -64,10 +68,20 @@ convert: done # Rules -%.apk: %.dex %.res | bin +%.dbg: %.dex %.res | bin @echo "APK $@.in" @apkbuilder $@.in -f $*.dex -z $*.res - @echo ALIGN $@ + @echo "ALIGN $@" + @zipalign -f 4 $@.in $@ + +%.apk: %.dex %.res | bin + @echo "APKU $@.in" + @apkbuilder $@.in -u -f $*.dex -z $*.res + @echo "SIGN $@.in" + @jarsigner -storetype $(KEYTYPE) \ + -keystore $(KEYFILE) \ + $@.in $(KEYNAME) + @echo "ALIGN $@" @zipalign -f 4 $@.in $@ %.dex: $(OBJ) | bin @@ -83,7 +97,7 @@ convert: -F $*.res $(OBJ): $(SRC) $(GEN) | obj - @echo "JAVAC $@" + @echo "JAVAC *.class" @javac -g -Xlint:unchecked \ -bootclasspath $(ANDROID) \ -encoding UTF-8 \ @@ -110,5 +124,5 @@ $(GEN): AndroidManifest.xml $(RES) | gen bin gen obj: @mkdir -p $@ -# Use parallel javac instead -.NOTPARALLEL: +# Keep intermediate files +.SECONDARY: