@@ -16,96 +16,62 @@ NDK_NAME=$(shell echo $(NDK_ROOT) | grep -Eo "android-ndk-r[0-9]{2}")
16
16
NDK_VERSION=$(shell echo $(NDK_NAME) | grep -Eo "[0-9]{2}")
17
17
$(info NDK_NAME: $(NDK_NAME))
18
18
$(info NDK_VERSION: $(NDK_VERSION))
19
- ifeq ($(shell expr $(NDK_VERSION) \<= 17), 1)
19
+
20
+ ifeq ($(SYSTEM), Linux)
21
+ HOST_NAME = linux
22
+ HOST_TARGET = linux-x86_64
23
+ else
24
+ HOST_NAME = darwin
25
+ HOST_TARGET = darwin-x86_64
26
+ endif
27
+
28
+ $(info HOST_NAME: $(HOST_NAME))
29
+ $(info HOST_TARGET: $(HOST_TARGET))
30
+
31
+ ifeq ($(shell expr $(NDK_VERSION) \<= 18), 1)
20
32
ifeq ($(ARM_ABI), arm8)
21
- ifeq ($(SYSTEM), Linux)
22
- CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++
23
- else
24
- CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-g++
25
- endif
26
- CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
27
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
33
+ CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/$(HOST_TARGET)/bin/aarch64-linux-android-g++
28
34
SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm64
29
- # when use ndk r16 or other older version, please use the followed SYSROOT_LINK setting.
30
- # SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-26/arch-arm64
31
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
32
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
33
- $(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
34
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
35
35
else
36
- ifeq ($(SYSTEM), Linux)
37
- CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++
38
- else
39
- CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++
40
- endif
41
- CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
42
- -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
43
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
36
+ CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(HOST_TARGET)/bin/arm-linux-androideabi-g++
44
37
SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm
45
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
46
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
47
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
48
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
49
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
50
38
endif
51
- else ifeq ($(NDK_VERSION), 21)
39
+ else
52
40
ifeq ($(ARM_ABI), arm8)
53
- ifeq ($(SYSTEM), Linux)
54
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++
55
- else
56
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++
57
- endif
58
- CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -static-openmp -O3 -DNDEBUG -fPIE
59
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
60
- #SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm64
61
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
62
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
63
- $(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
64
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
41
+ CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TARGET)/bin/aarch64-linux-android21-clang++
65
42
else
66
- ifeq ($(SYSTEM), Linux)
67
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi16-clang++
68
- else
69
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang++
70
- endif
71
- CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
72
- -D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -fopenmp -static-openmp -O3 -DNDEBUG -fPIE
73
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
74
- #SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-16/arch-arm
75
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
76
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
77
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
78
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
79
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
43
+ CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TARGET)/bin/armv7a-linux-androideabi16-clang++
80
44
endif
81
- else
45
+ endif
46
+
47
+ ifeq ($(NDK_VERSION), 18)
82
48
ifeq ($(ARM_ABI), arm8)
83
- ifeq ($(SYSTEM), Linux)
84
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++
85
- else
86
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++
87
- endif
88
- CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
89
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
90
- #SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-24/arch-arm64
91
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
92
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
93
- $(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
94
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
49
+ LDFLAGS += -gcc-toolchain $(NDK_ROOT)/toolchains/aarch64-$(HOST_NAME)-android-4.9/prebuilt/linux-x86_64
95
50
else
96
- ifeq ($(SYSTEM), Linux)
97
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi16-clang++
98
- else
99
- CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang++
100
- endif
101
- CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
102
- -D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
103
- CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
104
- #SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-16/arch-arm
105
- SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
106
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
107
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
108
- $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
109
- INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
51
+ LDFLAGS += -gcc-toolchain $(NDK_ROOT)/toolchains/arm-$(HOST_NAME)-androideabi-4.9/prebuilt/linux-x86_64
110
52
endif
111
53
endif
54
+
55
+ ifeq ($(ARM_ABI), arm8)
56
+ CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -O3 -DNDEBUG -fPIE
57
+ CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
58
+ SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
59
+ $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
60
+ $(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
61
+ INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
62
+ else
63
+ CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
64
+ -D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -O3 -DNDEBUG -fPIE
65
+ CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
66
+ SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
67
+ $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
68
+ $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
69
+ $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
70
+ INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
71
+ endif
72
+
73
+ ifeq ($(shell expr $(NDK_VERSION) \>= 21), 1)
74
+ CXX_FLAGS += -fopenmp -static-openmp
75
+ else
76
+ CXX_FLAGS += -fopenmp
77
+ endif
0 commit comments