]> Pileus Git - ~andy/freeotp/commitdiff
Add makefiles
authorAndy Spencer <andy753421@gmail.com>
Wed, 5 Feb 2014 02:10:54 +0000 (02:10 +0000)
committerAndy Spencer <andy753421@gmail.com>
Wed, 5 Feb 2014 02:10:54 +0000 (02:10 +0000)
config.mk [new file with mode: 0644]
makefile [new file with mode: 0644]

diff --git a/config.mk b/config.mk
new file mode 100644 (file)
index 0000000..f48a87c
--- /dev/null
+++ b/config.mk
@@ -0,0 +1 @@
+default: run
diff --git a/makefile b/makefile
new file mode 100644 (file)
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: