]> git.eshelyaron.com Git - emacs.git/commitdiff
Adjust ndk-build implementation for old NDK versions
authorPo Lu <luangruo@yahoo.com>
Mon, 6 Feb 2023 14:26:45 +0000 (22:26 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 6 Feb 2023 14:26:45 +0000 (22:26 +0800)
* configure.ac: Pass ANDROID_CFLAGS to ndk_INIT.
* cross/ndk-build/Makefile.in (NDK_BUILD_CFLAGS):
* cross/ndk-build/ndk-build-shared-library.mk
($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
($$(error Unsupported suffix):
* cross/ndk-build/ndk-build-static-library.mk
($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
($$(error Unsupported suffix): Use NDK_BUILD_CFLAGS.
* m4/ndk-build.m4 (ndk_INIT): Accept cflags.
(ndk_CONFIG_FILES): Export NDK_BUILD_CFLAGS.

configure.ac
cross/ndk-build/Makefile.in
cross/ndk-build/ndk-build-shared-library.mk
cross/ndk-build/ndk-build-static-library.mk
m4/ndk-build.m4

index b8ce7840797f2f94a0c18c1190ecf10ca16ac354..09ff1a845be85e8e235f3b0453d61f65d93db15a 100644 (file)
@@ -169,8 +169,11 @@ AC_CANONICAL_BUILD
 if test "$XCONFIGURE" = "android"; then
   # Initialize the Android NDK build system.  Make sure to use the
   # passed through NDK path.
+  # 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"
-  ndk_INIT([$android_abi], [$ANDROID_SDK], [cross/ndk-build])
+  ndk_INIT([$android_abi], [$ANDROID_SDK], [cross/ndk-build],\
+           [$ANDROID_CFLAGS])
 fi
 
 case $host in
index 774858697b44fb86faaaa5ba197fdf33d63ccc39..738a70a2f287d756e7d99d8af59f94ea797b5d21 100644 (file)
@@ -31,6 +31,7 @@ NDK_BUILD_ANDROID_MK = @NDK_BUILD_ANDROID_MK@
         NDK_BUILD_CC = @NDK_BUILD_CC@
         NDK_BUILD_AR = @NDK_BUILD_AR@
       NDK_BUILD_NASM = @NDK_BUILD_NASM@
+    NDK_BUILD_CFLAGS = @NDK_BUILD_CFLAGS@
 
 # This is a list of targets to build.
    NDK_BUILD_MODULES = @NDK_BUILD_MODULES@
index be4d16cb4edc1fbe40af6fe640f14977aad127a3..44d5bbb19912098f77f5a9dd8a849d0788527092 100644 (file)
@@ -35,13 +35,13 @@ define single-object-target
 ifeq (x$(suffix $(1)),x.c)
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(call LOCAL_C_ADDITIONAL_FLAGS,$(1))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_BUILD_CFLAGS) $(call LOCAL_C_ADDITIONAL_FLAGS,$(1))
 
 else
 ifeq (x$(suffix $(1)),x.$(or $(LOCAL_CPP_EXTENSION),cpp))
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_BUILD_CFLAGS) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
 
 else
 ifneq ($(or $(call eq,x$(suffix $(1)),x.s),$(call eq,x$(suffix $(1)),x.S)),)
@@ -54,7 +54,7 @@ ifneq (x$(suffix $(1)),x.asm)
 ifeq (x$(suffix $(1)),x.cc)
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_BUILD_CFLAGS) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
 
 else
 $$(error Unsupported suffix: $(suffix $(1)))
index ebcc3cd531d3f148c72e4952ee402d07f23b781d..c1584e789a75c683171007c8514579873e433572 100644 (file)
@@ -27,13 +27,13 @@ define single-object-target
 ifeq (x$(suffix $(1)),x.c)
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(call LOCAL_C_ADDITIONAL_FLAGS,$(1))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_BUILD_CFLAGS) $(NDK_CFLAGS_$(LOCAL_MODULE)) $(call LOCAL_C_ADDITIONAL_FLAGS,$(1))
 
 else
 ifeq (x$(suffix $(1)),x.$(or $(LOCAL_CPP_EXTENSION),cpp))
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_BUILD_CFLAGS) $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
 
 else
 ifneq ($(or $(call eq,x$(suffix $(1)),x.s),$(call eq,x$(suffix $(1)),x.S)),)
@@ -46,7 +46,7 @@ ifneq (x$(suffix $(1)),x.asm)
 ifeq (x$(suffix $(1)),x.cc)
 
 $(call objname,$(LOCAL_MODULE),$(basename $(1))): $(LOCAL_PATH)/$(1)
-       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
+       $(NDK_BUILD_CC) -c $$< -o $$@ $(NDK_BUILD_CFLAGS) $(NDK_CFLAGS_$(LOCAL_MODULE)) $(NDK_CXXFLAGS_$(LOCAL_MODULE))
 
 else
 $$(error Unsupported suffix: $(suffix $(1)))
index 888b587af02d1bb88a4d72454e53b46f72bbc10c..876c980ebb5a89870471311b61654832d624c12f 100644 (file)
@@ -25,10 +25,11 @@ AC_ARG_WITH([ndk_cxx_shared],
   [AS_HELP_STRING([--with-ndk-cxx-shared],
     [name of the C++ standard library included with the NDK])])
 
-# ndk_INIT(ABI, API, DIR)
-# --------
+# ndk_INIT(ABI, API, DIR, CFLAGS)
+# -------------------------------
 # Initialize the Android NDK.  ABI is the ABI being built for.
 # API is the API version being built for.
+# CFLAGS is a list of compiler flags.
 # As a side effect, set the variable ndk_INITIALIZED to true.
 # DIR should be a directory containing the Makefile.in actually
 # implementing the Android NDK build system.
@@ -50,6 +51,7 @@ ndk_INITIALIZED=yes
 ndk_API=$2
 ndk_DIR=$3
 ndk_ANY_CXX=
+ndk_BUILD_CFLAGS="$4"
 
 case "$ndk_ABI" in
  *arm64* )
@@ -370,6 +372,7 @@ AC_DEFUN_ONCE([ndk_CONFIG_FILES],
     NDK_BUILD_MODULES="$ndk_MODULES"
     NDK_BUILD_CXX_SHARED="$ndk_CXX_SHARED"
     NDK_BUILD_ANY_CXX_MODULE=$ndk_ANY_CXX
+    NDK_BUILD_CFLAGS="$ndk_BUILD_CFLAGS"
 
     AC_SUBST([NDK_BUILD_ANDROID_MK])
     AC_SUBST([NDK_BUILD_ARCH])
@@ -381,6 +384,7 @@ AC_DEFUN_ONCE([ndk_CONFIG_FILES],
     AC_SUBST([NDK_BUILD_MODULES])
     AC_SUBST([NDK_BUILD_CXX_SHARED])
     AC_SUBST([NDK_BUILD_ANY_CXX_MODULE])
+    AC_SUBST([NDK_BUILD_CFLAGS])
 
     AC_CONFIG_FILES([$ndk_DIR/Makefile])
     AC_CONFIG_FILES([$ndk_DIR/ndk-build.mk])