X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=makefile;h=3df37e276f8b31ed922e44254548ac8d91cd72ac;hb=8b58568246d3f42299b68246b40c35bf04488dc5;hp=80dbcdac21897702062577ebc06bdd5a4d7a3977;hpb=b0d2383410fe0b981c4943ec073eb44ec7b64f51;p=~andy%2Fspades diff --git a/makefile b/makefile index 80dbcda..3df37e2 100644 --- a/makefile +++ b/makefile @@ -1,22 +1,29 @@ -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') - -# Objects -GEN := gen/$(subst .,/,$(PACKAGE))/R.java -OBJ := $(subst .java,.class, \ - $(SRC:src/%=obj/%) \ - $(GEN:gen/%=obj/%)) +KEYFILE ?= ~/.android/android.p12 +KEYTYPE ?= pkcs12 +KEYNAME ?= android +ANDROID ?= /opt/android-sdk-update-manager/platforms/android-18/android.jar +SDKLIB ?= /opt/android-sdk-update-manager/tools/lib/sdklib.jar +TOOLS ?= /opt/android-sdk-update-manager/build-tools/20.0.0 + +# Variables +PATH := $(PATH):$(TOOLS) +DIR := $(subst .,/,$(PACKAGE)) +RES := $(wildcard res/*/*.*) +SRC := $(wildcard src/$(DIR)/*.java) +GEN := gen/$(DIR)/R.java +OBJ := obj/$(DIR)/R.class +APK := java -classpath $(SDKLIB) \ + com.android.sdklib.build.ApkBuilderMain # Targets -all: $(OUTPUT) +debug: bin/$(PROGRAM)-dbg.apk + +release: bin/$(PROGRAM).apk compile: $(OBJ) @@ -25,12 +32,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.apk adb install -r $+ touch bin/install.stamp @@ -59,15 +68,28 @@ convert: png=$${png/opt/res}; \ rsvg-convert -w 2048 -h 2048 \ $$svg -o $$png; \ - convert -trim -resize '256x256!' \ + convert -trim \ + -resize '254x254!' \ + -bordercolor '#00000000' \ + -border '1x1' \ $$png $$png; \ done # Rules -%.apk: %.dex %.res | bin +%-dbg.apk: %.dex %.res | bin @echo "APK $@.in" - @apkbuilder $@.in -f $*.dex -z $*.res - @echo ALIGN $@ + @$(APK) $@.in -f $*.dex -z $*.res + @echo "ALIGN $@" + @zipalign -f 4 $@.in $@ + +%.apk: %.dex %.res | bin + @echo "APKU $@.in" + @$(APK) $@.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 +105,7 @@ convert: -F $*.res $(OBJ): $(SRC) $(GEN) | obj - @echo "JAVAC $@" + @echo "JAVAC obj/*.class" @javac -g -Xlint:unchecked \ -bootclasspath $(ANDROID) \ -encoding UTF-8 \ @@ -110,5 +132,5 @@ $(GEN): AndroidManifest.xml $(RES) | gen bin gen obj: @mkdir -p $@ -# Use parallel javac instead -.NOTPARALLEL: +# Keep intermediate files +.SECONDARY: