16
16
#
17
17
set -eu
18
18
19
- FFMPEG_MODULE_PATH=$1
20
- NDK_PATH=$2
21
- HOST_PLATFORM=$3
22
- ENABLED_DECODERS=(" ${@: 4} " )
23
- JOBS=$( nproc 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 4)
19
+ FFMPEG_MODULE_PATH=" $1 "
20
+ echo " FFMPEG_MODULE_PATH is ${FFMPEG_MODULE_PATH} "
21
+ NDK_PATH=" $2 "
22
+ echo " NDK path is ${NDK_PATH} "
23
+ HOST_PLATFORM=" $3 "
24
+ echo " Host platform is ${HOST_PLATFORM} "
25
+ ANDROID_ABI=" $4 "
26
+ echo " ANDROID_ABI is ${ANDROID_ABI} "
27
+ ENABLED_DECODERS=(" ${@: 5} " )
28
+ echo " Enabled decoders are ${ENABLED_DECODERS[@]} "
29
+ JOBS=" $( nproc 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 4) "
24
30
echo " Using $JOBS jobs for make"
25
31
COMMON_OPTIONS="
26
32
--target-os=android
@@ -45,12 +51,28 @@ for decoder in "${ENABLED_DECODERS[@]}"
45
51
do
46
52
COMMON_OPTIONS=" ${COMMON_OPTIONS} --enable-decoder=${decoder} "
47
53
done
54
+
55
+ ARMV7_CLANG=" ${TOOLCHAIN_PREFIX} /armv7a-linux-androideabi${ANDROID_ABI} -clang"
56
+ if [[ -e " ${TOOLCHAIN_PREFIX} " && ! -e " $ARMV7_CLANG " ]]
57
+ then
58
+ echo " AVMv7 Clang compiler with path $ARMV7_CLANG does not exist"
59
+ echo " It's likely your NDK version doesn't support ANDROID_ABI $ANDROID_ABI "
60
+ echo " Either use older version of NDK or raise ANDROID_ABI (be aware that ANDROID_ABI must not be greater than your application's minSdk)"
61
+ exit 1
62
+ fi
63
+ ANDROID_ABI_64BIT=" $ANDROID_ABI "
64
+ if [[ " $ANDROID_ABI_64BIT " -lt 21 ]]
65
+ then
66
+ echo " Using ANDROID_ABI 21 for 64-bit architectures"
67
+ ANDROID_ABI_64BIT=21
68
+ fi
69
+
48
70
cd " ${FFMPEG_MODULE_PATH} /jni/ffmpeg"
49
71
./configure \
50
72
--libdir=android-libs/armeabi-v7a \
51
73
--arch=arm \
52
74
--cpu=armv7-a \
53
- --cross-prefix=" ${TOOLCHAIN_PREFIX} /armv7a-linux-androideabi16 -" \
75
+ --cross-prefix=" ${TOOLCHAIN_PREFIX} /armv7a-linux-androideabi ${ANDROID_ABI} -" \
54
76
--nm=" ${TOOLCHAIN_PREFIX} /llvm-nm" \
55
77
--ar=" ${TOOLCHAIN_PREFIX} /llvm-ar" \
56
78
--ranlib=" ${TOOLCHAIN_PREFIX} /llvm-ranlib" \
@@ -65,7 +87,7 @@ make clean
65
87
--libdir=android-libs/arm64-v8a \
66
88
--arch=aarch64 \
67
89
--cpu=armv8-a \
68
- --cross-prefix=" ${TOOLCHAIN_PREFIX} /aarch64-linux-android21 -" \
90
+ --cross-prefix=" ${TOOLCHAIN_PREFIX} /aarch64-linux-android ${ANDROID_ABI_64BIT} -" \
69
91
--nm=" ${TOOLCHAIN_PREFIX} /llvm-nm" \
70
92
--ar=" ${TOOLCHAIN_PREFIX} /llvm-ar" \
71
93
--ranlib=" ${TOOLCHAIN_PREFIX} /llvm-ranlib" \
@@ -78,7 +100,7 @@ make clean
78
100
--libdir=android-libs/x86 \
79
101
--arch=x86 \
80
102
--cpu=i686 \
81
- --cross-prefix=" ${TOOLCHAIN_PREFIX} /i686-linux-android16 -" \
103
+ --cross-prefix=" ${TOOLCHAIN_PREFIX} /i686-linux-android ${ANDROID_ABI} -" \
82
104
--nm=" ${TOOLCHAIN_PREFIX} /llvm-nm" \
83
105
--ar=" ${TOOLCHAIN_PREFIX} /llvm-ar" \
84
106
--ranlib=" ${TOOLCHAIN_PREFIX} /llvm-ranlib" \
@@ -92,7 +114,7 @@ make clean
92
114
--libdir=android-libs/x86_64 \
93
115
--arch=x86_64 \
94
116
--cpu=x86_64 \
95
- --cross-prefix=" ${TOOLCHAIN_PREFIX} /x86_64-linux-android21 -" \
117
+ --cross-prefix=" ${TOOLCHAIN_PREFIX} /x86_64-linux-android ${ANDROID_ABI_64BIT} -" \
96
118
--nm=" ${TOOLCHAIN_PREFIX} /llvm-nm" \
97
119
--ar=" ${TOOLCHAIN_PREFIX} /llvm-ar" \
98
120
--ranlib=" ${TOOLCHAIN_PREFIX} /llvm-ranlib" \
0 commit comments