diff options
author | Po Lu <luangruo@yahoo.com> | 2024-04-22 16:27:30 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-04-22 16:30:15 +0800 |
commit | 3bcdf010a9f2576bac0d7f23af70fa9dff81ef95 (patch) | |
tree | 600a98286f5469579cf87dac7c920590b5af4082 /m4/ndk-build.m4 | |
parent | 4d9629b087fe6df941b553c6931b2f8996901e21 (diff) | |
download | emacs-3bcdf010a9f2576bac0d7f23af70fa9dff81ef95.tar.gz |
Generate Android shared library list automatically
* .gitignore: Ignore new generated files.
* cross/Makefile.in (src/Makefile): Remove leftover
specification of the source Gnulib directory.
* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_READELF): New
variable.
* java/Makefile.in (CONFIG_FILE, ALL_DEPENDENCIES, READELF)
(cf-stamp-1, cf-stamp): New variables and rules; compute the set
of library files in the order of loading and generate a file
with this information.
(ALL_CLASS_FILES): New variable; if builddir is not srcdir,
$($(CONFIG_FILE), $(CLASS_FILES)): Depend on EmacsConfig.java.
add generated files in the build directory.
(classes.dex): Adjust to match.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
<static initializer>: Load shared libraries from
EMACS_SHARED_LIBRARIES rather than a hard-coded list.
* m4/ndk-build.m4 (ndk_INIT): Search for readelf...
(ndk_CHECK_MODULES): ...and substitute its path as
NDK_BUILD_READELF.
Diffstat (limited to 'm4/ndk-build.m4')
-rw-r--r-- | m4/ndk-build.m4 | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/m4/ndk-build.m4 b/m4/ndk-build.m4 index abe06063ab0..2689ee34287 100644 --- a/m4/ndk-build.m4 +++ b/m4/ndk-build.m4 @@ -339,6 +339,16 @@ NDK_BUILD_NASM= AS_IF([test "$ndk_ARCH" = "x86" || test "$ndk_ARCH" = "x86_64"], [AC_CHECK_PROGS([NDK_BUILD_NASM], [nasm])]) +# Search for a suitable readelf binary, which is required to generate +# the shared library list loaded on old Android systems. +AC_PATH_PROGS([READELF], [readelf llvm-readelf $host_alias-readelf], + [], [$ndk_ranlib_search_path:$PATH]) +AS_IF([test -z "$READELF"], + [AC_MSG_ERROR([A suitable `readelf' utility cannot be located. +Please verify that the Android NDK has been installed correctly, +or install a functioning `readelf' yourself.])]) +NDK_BUILD_READELF="$READELF" + # Search for a C++ compiler. Upon failure, pretend the C compiler is a # C++ compiler and use that instead. @@ -644,6 +654,7 @@ AC_DEFUN_ONCE([ndk_CONFIG_FILES], AC_SUBST([NDK_BUILD_CXX_LDFLAGS]) AC_SUBST([NDK_BUILD_ANY_CXX_MODULE]) AC_SUBST([NDK_BUILD_CFLAGS]) + AC_SUBST([NDK_BUILD_READELF]) AC_CONFIG_FILES([$ndk_DIR/Makefile]) AC_CONFIG_FILES([$ndk_DIR/ndk-build.mk]) |