From 00f398b90df120544c22c7f9de0bee78eb07787e Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Fri, 27 Mar 2015 20:27:09 +0000 Subject: [PATCH] Update makefile --- AndroidManifest.xml | 3 +- common.mk | 144 ++++++++++++++++++++++++++++++++++++++++++++ makefile | 140 ++---------------------------------------- 3 files changed, 151 insertions(+), 136 deletions(-) create mode 100644 common.mk diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9c19a33..e09fcda 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -7,8 +7,7 @@ + android:icon="@drawable/icon"> diff --git a/common.mk b/common.mk new file mode 100644 index 0000000..89d6c28 --- /dev/null +++ b/common.mk @@ -0,0 +1,144 @@ +# Settings +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/*.java src/$(DIR)/*.java) +GEN := gen/$(DIR)/R.java +OBJ := obj/$(DIR)/R.class +APK := java -classpath $(SDKLIB) \ + com.android.sdklib.build.ApkBuilderMain + +# Targets +debug: bin/$(PROGRAM)-dbg.apk + +release: bin/$(PROGRAM).apk + +compile: $(OBJ) + +clean: + rm -rf bin gen obj + +# ADB targets +logcat: + adb $(ADBFLAGS) logcat $(PROGRAM):D AndroidRuntime:E '*:S' + +run: bin/install.stamp + adb $(ADBFLAGS) shell am start -W \ + -a android.intent.action.MAIN \ + -n $(PACKAGE)/.$(ACTIVITY) + +install bin/install.stamp: bin/$(PROGRAM)-dbg.apk + adb $(ADBFLAGS) install -r $+ + touch bin/install.stamp + +uninstall: + adb $(ADBFLAGS) uninstall $(PACKAGE) + rm -f bin/install.stamp + +# Emulators +create-avd: + android create avd --target android-18 --name virtual + +start-avd: + emulator -avd virtual & + +run-avd: + $(MAKE) run ADBFLAGS="-s emulator-5554" + +# Graphics targets +graphics: + git checkout graphics -- \ + 'opt/drawable/*.svg' \ + 'opt/drawable/*.xcf' \ + 'res/drawable/*.png' \ + 'res/drawable/*.jpg' \ + || true + git reset HEAD -- \ + 'opt/drawable/*.svg' \ + 'opt/drawable/*.xcf' \ + 'res/drawable/*.png' \ + 'res/drawable/*.jpg' \ + || true + +convert: + for svg in opt/drawable/*.svg; do \ + png=$${svg/svg/png}; \ + png=$${png/opt/res}; \ + rsvg-convert -w 2048 -h 2048 \ + $$svg -o $$png; \ + convert -trim \ + -resize '254x254!' \ + -bordercolor '#00000000' \ + -border '1x1' \ + $$png $$png; \ + done + +# Rules +%-dbg.apk: %.dex %.res | bin + @echo "APK $@.in" + @$(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) makefile | bin + @echo "DEX $@" + @dx --dex --output $@ obj + +%.res: AndroidManifest.xml $(RES) | bin + @echo "RES $@" + @aapt package -f -m \ + -I $(ANDROID) \ + -M AndroidManifest.xml \ + -S res \ + -F $*.res + +$(OBJ): $(SRC) $(GEN) makefile | obj + @echo "JAVAC obj/*.class" + @javac -g \ + -Xlint:unchecked \ + -Xlint:deprecation \ + -bootclasspath $(ANDROID) \ + -encoding UTF-8 \ + -source 1.5 \ + -target 1.5 \ + -classpath obj \ + -d obj \ + $(filter-out makefile,$+) + +$(GEN): AndroidManifest.xml $(RES) | gen + @if ! [ -d "res/drawable" ]; then \ + echo Please run \ + \'make graphics\'; \ + exit 1; \ + fi + @echo "GEN $@" + @aapt package -f -m \ + -I $(ANDROID) \ + -M AndroidManifest.xml \ + -S res \ + -J gen + +# Directories +bin gen obj: + @mkdir -p $@ + +# Keep intermediate files +.SECONDARY: diff --git a/makefile b/makefile index 3df37e2..6a8082d 100644 --- a/makefile +++ b/makefile @@ -1,136 +1,8 @@ --include config.mk - # Settings -PROGRAM ?= Spades -PACKAGE ?= org.pileus.spades -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 -debug: bin/$(PROGRAM)-dbg.apk - -release: bin/$(PROGRAM).apk - -compile: $(OBJ) - -clean: - rm -rf bin gen obj - -# ADB targets -logcat: - adb logcat $(PROGRAM):D AndroidRuntime:E '*:S' - -run: bin/install.stamp - adb shell am start -W \ - -a android.intent.action.MAIN \ - -n $(PACKAGE)/.Main - -install bin/install.stamp: bin/$(PROGRAM)-dbg.apk - adb install -r $+ - touch bin/install.stamp - -uninstall: - adb uninstall $(PACKAGE) - rm bin/install.stamp +PROGRAM ?= Spades +ACTIVITY ?= Main +PACKAGE ?= org.pileus.spades -# Graphics targets -graphics: - git checkout graphics -- \ - 'opt/drawable/*.svg' \ - 'opt/drawable/*.xcf' \ - 'res/drawable/*.png' \ - 'res/drawable/*.jpg' \ - || true - git reset HEAD -- \ - 'opt/drawable/*.svg' \ - 'opt/drawable/*.xcf' \ - 'res/drawable/*.png' \ - 'res/drawable/*.jpg' \ - || true - -convert: - for svg in opt/drawable/*.svg; do \ - png=$${svg/svg/png}; \ - png=$${png/opt/res}; \ - rsvg-convert -w 2048 -h 2048 \ - $$svg -o $$png; \ - convert -trim \ - -resize '254x254!' \ - -bordercolor '#00000000' \ - -border '1x1' \ - $$png $$png; \ - done - -# Rules -%-dbg.apk: %.dex %.res | bin - @echo "APK $@.in" - @$(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 - @echo "DEX $@ " - @dx --dex --output $@ obj - -%.res: AndroidManifest.xml $(RES) | bin - @echo "RES $@" - @aapt package -f -m \ - -I $(ANDROID) \ - -M AndroidManifest.xml \ - -S res \ - -F $*.res - -$(OBJ): $(SRC) $(GEN) | obj - @echo "JAVAC obj/*.class" - @javac -g -Xlint:unchecked \ - -bootclasspath $(ANDROID) \ - -encoding UTF-8 \ - -source 1.5 \ - -target 1.5 \ - -classpath obj \ - -d obj \ - $+ - -$(GEN): AndroidManifest.xml $(RES) | gen - @if ! [ -d "res/drawable" ]; then \ - echo Please run \ - \'make graphics\'; \ - exit 1; \ - fi - @echo "GEN $@" - @aapt package -f -m \ - -I $(ANDROID) \ - -M AndroidManifest.xml \ - -S res \ - -J gen - -# Directories -bin gen obj: - @mkdir -p $@ - -# Keep intermediate files -.SECONDARY: +# Include common files +-include config.mk +-include common.mk -- 2.43.2