aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2023-03-01 19:34:45 +0800
committerPo Lu2023-03-01 19:35:19 +0800
commitdaf9c62871af8539044da15028a078905bb9ba06 (patch)
tree3482cb2d04d137180f369644cbcaf9b858fba580 /java
parenta0c3643abde85567eaf21c0695a7c042be33af11 (diff)
downloademacs-daf9c62871af8539044da15028a078905bb9ba06.tar.gz
emacs-daf9c62871af8539044da15028a078905bb9ba06.zip
Fix out-of-tree Android builds
* configure.ac (JAVA_PUSH_LINT): Push to WARN_JAVAFLAGS instead of JAVAFLAGS. (cross/lib): Always AS_MKDIR_P. * cross/Makefile.in (srcdir): New variable. (LIB_SRCDIR): Take realpath relative to srcdir, not .:(src/verbose.mk): Depend on verbose.mk.android in srcdir. (lib/Makefile): Edit srcdir and VPATH to LIB_SRCDIR. (src/Makefile): Edit -I$$(top_srcdir) to -I../$(srcdir)/lib, instead of ommitting it. (clean): Allow ndk-build clean to fail. * java/Makefile.in (builddir): New variable. (WARN_JAVAFLAGS): Likewise. (JAVAFLAGS): Define in terms of WARN_JAVAFLAGS. (SIGN_EMACS, SIGN_EMACS_V2): Use emacs.keystore relative to srcdir. Allow inclusion of ndk-build.mk to fail. (install_temp, emacs.apk-in) (../config.status): Depend relative to top_srcdir. (AndroidManifest.xml, $(APK_NAME)): Likewise. (RESOURCE_FILE, CLASS_FILES, classes.dex): Output class files to $(srcdir); these are arch independents, so this is okay.
Diffstat (limited to 'java')
-rw-r--r--java/Makefile.in42
1 files changed, 24 insertions, 18 deletions
diff --git a/java/Makefile.in b/java/Makefile.in
index bff021752c7..994ffdd0828 100644
--- a/java/Makefile.in
+++ b/java/Makefile.in
@@ -20,6 +20,7 @@
20top_builddir = @top_builddir@ 20top_builddir = @top_builddir@
21top_srcdir = @top_srcdir@ 21top_srcdir = @top_srcdir@
22srcdir = @srcdir@ 22srcdir = @srcdir@
23builddir = @builddir@
23version = @version@ 24version = @version@
24 25
25# This is the host lib-src and lib, not the cross compiler's lib-src. 26# This is the host lib-src and lib, not the cross compiler's lib-src.
@@ -40,7 +41,8 @@ ANDROID_JAR = @ANDROID_JAR@
40ANDROID_ABI = @ANDROID_ABI@ 41ANDROID_ABI = @ANDROID_ABI@
41ANDROID_SDK_18_OR_EARLIER = @ANDROID_SDK_18_OR_EARLIER@ 42ANDROID_SDK_18_OR_EARLIER = @ANDROID_SDK_18_OR_EARLIER@
42ANDROID_SDK_8_OR_EARLIER = @ANDROID_SDK_8_OR_EARLIER@ 43ANDROID_SDK_8_OR_EARLIER = @ANDROID_SDK_8_OR_EARLIER@
43JAVAFLAGS = @JAVAFLAGS@ 44WARN_JAVAFLAGS = @WARN_JAVAFLAGS@
45JAVAFLAGS = $(WARN_JAVAFLAGS) -classpath "$(ANDROID_JAR):$(srcdir)"
44 46
45# Android 4.3 and earlier require Emacs to be signed with a different 47# Android 4.3 and earlier require Emacs to be signed with a different
46# digital signature algorithm. 48# digital signature algorithm.
@@ -61,9 +63,11 @@ else
61AAPT_ASSET_ARGS = 63AAPT_ASSET_ARGS =
62endif 64endif
63 65
64SIGN_EMACS = -keystore emacs.keystore -storepass emacs1 $(JARSIGNER_FLAGS) 66SIGN_EMACS = -keystore $(srcdir)/emacs.keystore -storepass \
65SIGN_EMACS_V2 = sign --v2-signing-enabled --ks emacs.keystore \ 67 emacs1 $(JARSIGNER_FLAGS)
66 --debuggable-apk-permitted --ks-pass pass:emacs1 68SIGN_EMACS_V2 = sign --v2-signing-enabled --ks \
69 $(srcdir)/emacs.keystore -debuggable-apk-permitted \
70 --ks-pass pass:emacs1
67 71
68JAVA_FILES := $(wildcard $(srcdir)/org/gnu/emacs/*.java) 72JAVA_FILES := $(wildcard $(srcdir)/org/gnu/emacs/*.java)
69RESOURCE_FILES := $(foreach file,$(wildcard $(srcdir)/res/*), \ 73RESOURCE_FILES := $(foreach file,$(wildcard $(srcdir)/res/*), \
@@ -128,7 +132,7 @@ CROSS_LIBS = $(top_builddir)/cross/src/libemacs.so
128CROSS_ARCHIVES = $(top_builddir)/cross/lib/libgnu.a 132CROSS_ARCHIVES = $(top_builddir)/cross/lib/libgnu.a
129 133
130# Third party libraries to compile. 134# Third party libraries to compile.
131include $(top_builddir)/cross/ndk-build/ndk-build.mk 135-include $(top_builddir)/cross/ndk-build/ndk-build.mk
132 136
133.PHONY: $(CROSS_BINS) $(CROSS_LIBS) $(CROSS_ARCHIVES) 137.PHONY: $(CROSS_BINS) $(CROSS_LIBS) $(CROSS_ARCHIVES)
134 138
@@ -169,9 +173,9 @@ install_temp: $(CROSS_BINS) $(CROSS_LIBS) $(RESOURCE_FILES)
169 $(AM_V_SILENT) mkdir -p install_temp/assets/lisp 173 $(AM_V_SILENT) mkdir -p install_temp/assets/lisp
170 $(AM_V_SILENT) mkdir -p install_temp/assets/info 174 $(AM_V_SILENT) mkdir -p install_temp/assets/info
171# Install architecture independents to assets/etc and assets/lisp 175# Install architecture independents to assets/etc and assets/lisp
172 $(AM_V_SILENT) cp -r $(top_builddir)/lisp install_temp/assets 176 $(AM_V_SILENT) cp -r $(top_srcdir)/lisp install_temp/assets
173 $(AM_V_SILENT) cp -r $(top_builddir)/etc install_temp/assets 177 $(AM_V_SILENT) cp -r $(top_srcdir)/etc install_temp/assets
174 $(AM_V_SILENT) cp -r $(top_builddir)/info install_temp/assets 178 $(AM_V_SILENT) cp -r $(top_srcdir)/info install_temp/assets
175# Remove undesirable files from those directories. 179# Remove undesirable files from those directories.
176 $(AM_V_SILENT) \ 180 $(AM_V_SILENT) \
177 for subdir in `find install_temp -type d -print`; do \ 181 for subdir in `find install_temp -type d -print`; do \
@@ -227,28 +231,29 @@ emacs.apk-in: install_temp install_temp/assets/directory-tree \
227 $(AM_V_AAPT) $(AAPT) p -I "$(ANDROID_JAR)" -F $@ \ 231 $(AM_V_AAPT) $(AAPT) p -I "$(ANDROID_JAR)" -F $@ \
228 -f -M AndroidManifest.xml $(AAPT_ASSET_ARGS) \ 232 -f -M AndroidManifest.xml $(AAPT_ASSET_ARGS) \
229 -A install_temp/assets \ 233 -A install_temp/assets \
230 -S res -J install_temp 234 -S $(top_srcdir)/java/res -J install_temp
231 $(AM_V_SILENT) pushd install_temp &> /dev/null; \ 235 $(AM_V_SILENT) pushd install_temp &> /dev/null; \
232 $(AAPT) add ../$@ `find lib -type f`; \ 236 $(AAPT) add ../$@ `find lib -type f`; \
233 popd &> /dev/null 237 popd &> /dev/null
234 $(AM_V_SILENT) rm -rf install_temp 238 $(AM_V_SILENT) rm -rf install_temp
235 239
236# Makefile itself. 240# Makefile itself.
237.PRECIOUS: ../config.status Makefile 241.PRECIOUS: $(top_srcdir)/config.status Makefile
238../config.status: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 242$(top_srcdir)/config.status: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4
239 $(MAKE) -C $(dir $@) $(notdir $@) 243 $(MAKE) -C $(dir $@) $(notdir $@)
240Makefile: ../config.status $(top_builddir)/java/Makefile.in 244Makefile: $(top_srcdir)/config.status $(top_srcdir)/java/Makefile.in
241 $(MAKE) -C .. java/$@ 245 $(MAKE) -C .. java/$@
242 246
243# AndroidManifest.xml: 247# AndroidManifest.xml:
244AndroidManifest.xml: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 \ 248AndroidManifest.xml: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 \
245 AndroidManifest.xml.in 249 $(srcdir)/AndroidManifest.xml.in
246 pushd ..; ./config.status java/AndroidManifest.xml; popd 250 pushd ..; ./config.status java/AndroidManifest.xml; popd
247 251
248# R.java: 252# R.java:
249$(RESOURCE_FILE): $(RESOURCE_FILES) 253$(RESOURCE_FILE): $(RESOURCE_FILES)
250 $(AM_V_GEN) $(AAPT) p -I "$(ANDROID_JAR)" -f \ 254 $(AM_V_GEN) $(AAPT) p -I "$(ANDROID_JAR)" -f \
251 -J $(dir $@) -M AndroidManifest.xml -S res 255 -J $(dir $@) -M AndroidManifest.xml \
256 -S $(top_srcdir)/java/res
252 257
253# Make all class files depend on R.java being built. 258# Make all class files depend on R.java being built.
254$(CLASS_FILES): $(RESOURCE_FILE) 259$(CLASS_FILES): $(RESOURCE_FILE)
@@ -261,8 +266,9 @@ $(CLASS_FILES) &: $(JAVA_FILES)
261# nested classes. 266# nested classes.
262 267
263classes.dex: $(CLASS_FILES) 268classes.dex: $(CLASS_FILES)
264 $(AM_V_D8) $(D8) --classpath $(ANDROID_JAR) \ 269 $(AM_V_D8) $(D8) --classpath $(ANDROID_JAR) \
265 $(subst $$,\$$,$(shell find . -type f -name *.class)) 270 $(subst $$,\$$,$(shell find $(srcdir) -type f \
271 -name *.class)) --output $(builddir)
266 272
267# When emacs.keystore expires, regenerate it with: 273# When emacs.keystore expires, regenerate it with:
268# 274#
@@ -271,7 +277,7 @@ classes.dex: $(CLASS_FILES)
271 277
272.PHONY: clean maintainer-clean 278.PHONY: clean maintainer-clean
273 279
274$(APK_NAME): classes.dex emacs.apk-in emacs.keystore 280$(APK_NAME): classes.dex emacs.apk-in $(srcdir)/emacs.keystore
275 $(AM_V_GEN) 281 $(AM_V_GEN)
276 $(AM_V_SILENT) cp -f emacs.apk-in $@.unaligned 282 $(AM_V_SILENT) cp -f emacs.apk-in $@.unaligned
277 $(AM_V_SILENT) $(AAPT) add $@.unaligned classes.dex 283 $(AM_V_SILENT) $(AAPT) add $@.unaligned classes.dex