diff options
author | Po Lu <luangruo@yahoo.com> | 2024-03-17 19:32:15 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-03-17 19:34:09 +0800 |
commit | 7a0f4de3c18cab43b5bff47fdab4944e006c68e4 (patch) | |
tree | 4890695c9df02465a5ca16dab0b74750b44f7ae8 /configure.ac | |
parent | 445e2499baa1b8ef21e8edcc13692b5d78912922 (diff) | |
download | emacs-7a0f4de3c18cab43b5bff47fdab4944e006c68e4.tar.gz |
Improve C++ standard library detection on Android
* configure.ac: Stop relaying --with-ndk-cxx-shared to the
nested invocation of configure.
* build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES):
* build-aux/ndk-build-helper-2.mk (SYSTEM_LIBRARIES): Insert all
of the C++ libraries available on Android.
* configure.ac: Call ndk_LATE and ndk_LATE_EARLY within if
statement at toplevel, averting needless calls to AC_PROG_CXX.
* cross/ndk-build/Makefile.in (NDK_BUILD_CXX_STL)
(NDK_BUILD_CXX_LDFLAGS):
* cross/ndk-build/ndk-build.mk.in (NDK_BUILD_CXX_STL)
(NDK_BUILD_CXX_LDFLAGS): New variables.
* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
Introduce several other C++ libraries sometimes present on
Android.
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Insert NDK_BUILD_CXX_STL
when any of these new C++ libraries are requested.
* m4/ndk-build.m4: Completely rewrite C++ compiler and library
detection.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Attempt to
load more libraries from static initializer.
* java/INSTALL: Remove obsolete information.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 452aa0838f1..bd678ea52a3 100644 --- a/configure.ac +++ b/configure.ac @@ -171,7 +171,6 @@ AS_IF([test "$XCONFIGURE" = "android"],[ # Make sure to pass through the CFLAGS, as older versions of the # NDK require them to be able to find system includes. with_ndk_path="$android_ndk_path" - with_ndk_cxx_shared="$android_ndk_cxx_shared" with_ndk_cxx="$android_ndk_cxx" ndk_INIT([$android_abi], [$ANDROID_SDK], [cross/ndk-build], [$ANDROID_CFLAGS]) @@ -1233,7 +1232,7 @@ package will likely install on older systems but crash on startup.]) passthrough="$passthrough --with-harfbuzz=$with_harfbuzz" passthrough="$passthrough --with-threads=$with_threads" - # Now pass through some checking options. + # Now pass through some checking-related options. emacs_val="--enable-check-lisp-object-type=$enable_check_lisp_object_type" passthrough="$passthrough $emacs_val" @@ -1243,7 +1242,6 @@ package will likely install on older systems but crash on startup.]) AS_IF([XCONFIGURE=android ANDROID_CC="$ANDROID_CC" \ ANDROID_SDK="$android_sdk" android_abi=$android_abi \ android_ndk_path="$with_ndk_path" \ - android_ndk_cxx_shared="$with_ndk_cxx_shared" \ android_ndk_cxx="$android_ndk_cxx" \ $CONFIG_SHELL $0 $passthrough], [], [AC_MSG_ERROR([Failed to cross-configure Emacs for android.])]) @@ -1570,7 +1568,13 @@ AC_DEFUN_ONCE([gl_STDLIB_H], # Initialize gnulib right after choosing the compiler. dnl Amongst other things, this sets AR and ARFLAGS. gl_EARLY -ndk_LATE + +# ndk_LATE must be enclosed in this conditional to prevent the +# AC_PROG_CXX it indirectly requires from being expanded at top level. +if test "$ndk_INITIALIZED" = "yes"; then + ndk_LATE_EARLY + ndk_LATE +fi if test "$ac_test_CFLAGS" != set; then # It's helpful to have C macros available to GDB, so prefer -g3 to -g |