summaryrefslogtreecommitdiff
path: root/config/android-common.mk
diff options
context:
space:
mode:
Diffstat (limited to 'config/android-common.mk')
-rw-r--r--config/android-common.mk51
1 files changed, 51 insertions, 0 deletions
diff --git a/config/android-common.mk b/config/android-common.mk
new file mode 100644
index 0000000000..a54f20b88e
--- /dev/null
+++ b/config/android-common.mk
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Ensure ANDROID_SDK is defined before including this file.
+# We use common android defaults for boot class path and java version.
+ifndef ANDROID_SDK
+ $(error ANDROID_SDK must be defined before including android-common.mk)
+endif
+
+# DEBUG_JARSIGNER always debug signs.
+DEBUG_JARSIGNER=$(PYTHON) $(abspath $(topsrcdir)/mobile/android/debug_sign_tool.py) \
+ --keytool=$(KEYTOOL) \
+ --jarsigner=$(JARSIGNER) \
+ $(NULL)
+
+# RELEASE_JARSIGNER release signs if possible.
+ifdef MOZ_SIGN_CMD
+RELEASE_JARSIGNER := $(MOZ_SIGN_CMD) -f jar
+else
+RELEASE_JARSIGNER := $(DEBUG_JARSIGNER)
+endif
+
+# $(1) is the full path to input: foo-debug-unsigned-unaligned.apk.
+# $(2) is the full path to output: foo.apk.
+# Use this like: $(call RELEASE_SIGN_ANDROID_APK,foo-debug-unsigned-unaligned.apk,foo.apk)
+#
+# The |zip -d| there to handle re-signing previously signed APKs. Gradle
+# produces signed, unaligned APK files, but this expects unsigned, unaligned
+# APK files. The |zip -d| discards any existing signature, turning a signed,
+# unaligned APK into an unsigned, unaligned APK. Sadly |zip -q| doesn't
+# silence a warning about "nothing to do" so we pipe to /dev/null.
+RELEASE_SIGN_ANDROID_APK = \
+ cp $(1) $(2)-unaligned.apk && \
+ ($(ZIP) -d $(2)-unaligned.apk 'META-INF/*' > /dev/null || true) && \
+ $(RELEASE_JARSIGNER) $(2)-unaligned.apk && \
+ $(ZIPALIGN) -f -v 4 $(2)-unaligned.apk $(2) && \
+ $(RM) $(2)-unaligned.apk
+
+# For Android, we default to 1.7
+ifndef JAVA_VERSION
+ JAVA_VERSION = 1.7
+endif
+
+JAVAC_FLAGS = \
+ -target $(JAVA_VERSION) \
+ -source $(JAVA_VERSION) \
+ -encoding UTF8 \
+ -g:source,lines \
+ -Werror \
+ $(NULL)