diff options
| author | Po Lu | 2023-03-01 19:34:45 +0800 |
|---|---|---|
| committer | Po Lu | 2023-03-01 19:35:19 +0800 |
| commit | daf9c62871af8539044da15028a078905bb9ba06 (patch) | |
| tree | 3482cb2d04d137180f369644cbcaf9b858fba580 /java | |
| parent | a0c3643abde85567eaf21c0695a7c042be33af11 (diff) | |
| download | emacs-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.in | 42 |
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 @@ | |||
| 20 | top_builddir = @top_builddir@ | 20 | top_builddir = @top_builddir@ |
| 21 | top_srcdir = @top_srcdir@ | 21 | top_srcdir = @top_srcdir@ |
| 22 | srcdir = @srcdir@ | 22 | srcdir = @srcdir@ |
| 23 | builddir = @builddir@ | ||
| 23 | version = @version@ | 24 | version = @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@ | |||
| 40 | ANDROID_ABI = @ANDROID_ABI@ | 41 | ANDROID_ABI = @ANDROID_ABI@ |
| 41 | ANDROID_SDK_18_OR_EARLIER = @ANDROID_SDK_18_OR_EARLIER@ | 42 | ANDROID_SDK_18_OR_EARLIER = @ANDROID_SDK_18_OR_EARLIER@ |
| 42 | ANDROID_SDK_8_OR_EARLIER = @ANDROID_SDK_8_OR_EARLIER@ | 43 | ANDROID_SDK_8_OR_EARLIER = @ANDROID_SDK_8_OR_EARLIER@ |
| 43 | JAVAFLAGS = @JAVAFLAGS@ | 44 | WARN_JAVAFLAGS = @WARN_JAVAFLAGS@ |
| 45 | JAVAFLAGS = $(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 | |||
| 61 | AAPT_ASSET_ARGS = | 63 | AAPT_ASSET_ARGS = |
| 62 | endif | 64 | endif |
| 63 | 65 | ||
| 64 | SIGN_EMACS = -keystore emacs.keystore -storepass emacs1 $(JARSIGNER_FLAGS) | 66 | SIGN_EMACS = -keystore $(srcdir)/emacs.keystore -storepass \ |
| 65 | SIGN_EMACS_V2 = sign --v2-signing-enabled --ks emacs.keystore \ | 67 | emacs1 $(JARSIGNER_FLAGS) |
| 66 | --debuggable-apk-permitted --ks-pass pass:emacs1 | 68 | SIGN_EMACS_V2 = sign --v2-signing-enabled --ks \ |
| 69 | $(srcdir)/emacs.keystore -debuggable-apk-permitted \ | ||
| 70 | --ks-pass pass:emacs1 | ||
| 67 | 71 | ||
| 68 | JAVA_FILES := $(wildcard $(srcdir)/org/gnu/emacs/*.java) | 72 | JAVA_FILES := $(wildcard $(srcdir)/org/gnu/emacs/*.java) |
| 69 | RESOURCE_FILES := $(foreach file,$(wildcard $(srcdir)/res/*), \ | 73 | RESOURCE_FILES := $(foreach file,$(wildcard $(srcdir)/res/*), \ |
| @@ -128,7 +132,7 @@ CROSS_LIBS = $(top_builddir)/cross/src/libemacs.so | |||
| 128 | CROSS_ARCHIVES = $(top_builddir)/cross/lib/libgnu.a | 132 | CROSS_ARCHIVES = $(top_builddir)/cross/lib/libgnu.a |
| 129 | 133 | ||
| 130 | # Third party libraries to compile. | 134 | # Third party libraries to compile. |
| 131 | include $(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 $@) |
| 240 | Makefile: ../config.status $(top_builddir)/java/Makefile.in | 244 | Makefile: $(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: |
| 244 | AndroidManifest.xml: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 \ | 248 | AndroidManifest.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 | ||
| 263 | classes.dex: $(CLASS_FILES) | 268 | classes.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 |