From 3cdb62a44a020f44c071244da65447f3318f6e01 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Wed, 5 Feb 2014 02:10:54 +0000 Subject: [PATCH] Add makefiles --- config.mk | 1 + makefile | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 config.mk create mode 100644 makefile diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..f48a87c --- /dev/null +++ b/config.mk @@ -0,0 +1 @@ +default: run diff --git a/makefile b/makefile new file mode 100644 index 0000000..e60fe2d --- /dev/null +++ b/makefile @@ -0,0 +1,108 @@ +-include config.mk + +# Settings +PROGRAM ?= FreeOTP +PACKAGE ?= org.fedorahosted.freeotp +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/19.0.1 + +# Variables +PATH := $(PATH):$(TOOLS) +DIR := $(subst .,/,$(PACKAGE)) +RES := $(wildcard res/*/*.*) +SRC := $(shell find src -name '*.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 + +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)/.MainActivity + +install bin/install.stamp: bin/$(PROGRAM).dbg + adb install -r $+ + touch bin/install.stamp + +uninstall: + adb uninstall $(PACKAGE) + rm bin/install.stamp + +# Rules +%.dbg: %.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: -- 2.43.2