Update android build scripts.
M committed
Dec 29, 2021 at 22:12 UTC
e5e525edae2dff38dcd3238e8ef6a6b4d058e937
8 files changed
+50
-84
scripts/android/build_boost.sh
+1
-1
@@ -9,7 +9,7 @@ for arch in "aarch" "aarch64" "i686" "x86_64"
9
do
10
11
PREFIX=$WORKDIR/prefix_${arch}
12
-
12
+PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
13
./init_boost.sh $arch $PREFIX $BOOST_SRC_DIR $BOOST_FILENAME $BOOST_VERSION
14
./finish_boost.sh $arch $PREFIX $BOOST_SRC_DIR $BOOST_SRC_DIR
15
scripts/android/build_iconv.sh
+6
-5
@@ -13,15 +13,16 @@ for arch in aarch aarch64 i686 x86_64
13
do
14
15
PREFIX=${WORKDIR}/prefix_${arch}
16
+PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
17
18
case $arch in
19
"aarch" )
19
- CLANG=armv7a-linux-androideabi${API}-clang
20
- CXXLANG=armv7a-linux-androideabi${API}-clang++
21
- HOST="arm";;
20
+ CLANG=armv7a-linux-androideabi-clang
21
+ CXXLANG=arm-linux-androideabi-clang++
22
+ HOST="arm-linux-android";;
23
* )
23
- CLANG=${arch}-linux-android${API}-clang
24
- CXXLANG=${arch}-linux-android${API}-clang++
24
+ CLANG=${arch}-linux-android-clang
25
+ CXXLANG=${arch}-linux-android-clang++
26
HOST="${arch}-linux-android";;
27
esac
28
scripts/android/build_monero.sh
+11
-27
@@ -3,7 +3,6 @@
3
. ./config.sh
4
MONERO_BRANCH=v0.17.2.3-android
5
MONERO_SRC_DIR=${WORKDIR}/monero
6
-CMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake"
6
7
git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH}
8
cd $MONERO_SRC_DIR
@@ -18,36 +17,38 @@ DEST_LIB_DIR=${PREFIX}/lib/monero
17
DEST_INCLUDE_DIR=${PREFIX}/include
18
export CMAKE_INCLUDE_PATH="${PREFIX}/include"
19
export CMAKE_LIBRARY_PATH="${PREFIX}/lib"
20
+ANDROID_STANDALONE_TOOLCHAIN_PATH="${TOOLCHAIN_BASE_DIR}_${arch}"
21
+PATH="${ANDROID_STANDALONE_TOOLCHAIN_PATH}/bin:${ORIGINAL_PATH}"
22
23
mkdir -p $DEST_LIB_DIR
24
mkdir -p $DEST_INCLUDE_DIR
25
26
case $arch in
27
"aarch" )
27
- ANDROID_CLANG=armv7a-linux-androideabi${API}-clang
28
- ANDROID_CLANGPP=armv7a-linux-androideabi${API}-clang++
28
+ CLANG=arm-linux-androideabi-clang
29
+ CXXLANG=arm-linux-androideabi-clang++
30
BUILD_64=OFF
31
TAG="android-armv7"
32
ARCH="armv7-a"
33
ARCH_ABI="armeabi-v7a"
34
FLAGS="-D CMAKE_ANDROID_ARM_MODE=ON -D NO_AES=true";;
35
"aarch64" )
35
- ANDROID_CLANG=aarch64-linux-androideabi${API}-clang
36
- ANDROID_CLANGPP=aarch64-linux-androideabi${API}-clang++
36
+ CLANG=aarch64-linux-androideabi-clang
37
+ CXXLANG=aarch64-linux-androideabi-clang++
38
BUILD_64=ON
39
TAG="android-armv8"
40
ARCH="armv8-a"
41
ARCH_ABI="arm64-v8a";;
42
"i686" )
42
- ANDROID_CLANG=i686-linux-androideabi${API}-clang
43
- ANDROID_CLANGPP=i686-linux-androideabi${API}-clang++
43
+ CLANG=i686-linux-androideabi-clang
44
+ CXXLANG=i686-linux-androideabi-clang++
45
BUILD_64=OFF
46
TAG="android-x86"
47
ARCH="i686"
48
ARCH_ABI="x86";;
49
"x86_64" )
49
- ANDROID_CLANG=x86_64-linux-androideabi${API}-clang
50
- ANDROID_CLANGPP=x86_64-linux-androideabi${API}-clang++
50
+ CLANG=x86_64-linux-androideabi-clang
51
+ CXXLANG=x86_64-linux-androideabi-clang++
52
BUILD_64=ON
53
TAG="android-x86_64"
54
ARCH="x86-64"
@@ -58,24 +59,7 @@ cd $MONERO_SRC_DIR
59
rm -rf ./build/release
60
mkdir -p ./build/release
61
cd ./build/release
61
- cmake \
62
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} \
63
- -DCMAKE_PREFIX_PATH="${PREFIX}" \
64
- -DCMAKE_FIND_ROOT_PATH="${PREFIX}" \
65
- -DCMAKE_BUILD_TYPE=release \
66
- -DARCH=$ARCH \
67
- -DANDROID=true \
68
- -DANDROID_NATIVE_API_LEVEL=$API \
69
- -DANDROID_ABI=$ARCH_ABI \
70
- -DANDROID_TOOLCHAIN=clang \
71
- -DLRELEASE_PATH="${PREFIX}/bin" \
72
- -DSTATIC=ON \
73
- -DBUILD_64=$BUILD_64 \
74
- -DINSTALL_VENDORED_LIBUNBOUND=ON \
75
- -DUSE_DEVICE_TREZOR=OFF \
76
- -DBUILD_GUI_DEPS=1 \
77
- -DBUILD_TESTS=OFF \
78
- ${FLAGS} ../..
62
+CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS ../..
63
64
make wallet_api -j4
65
find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
scripts/android/build_openssl.sh
+13
-19
@@ -24,37 +24,31 @@ echo $OPENSSL_SHA256 $OPENSSL_FILE_PATH | sha256sum -c - || exit 1
24
for arch in "aarch" "aarch64" "i686" "x86_64"
25
do
26
PREFIX=$WORKDIR/prefix_${arch}
27
+TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
28
+PATH="${TOOLCHAIN}/bin:${ORIGINAL_PATH}"
29
30
case $arch in
29
- "aarch") CLANG=armv7a-linux-androideabi${API}-clang
30
- CXXLANG=armv7a-linux-androideabi${API}-clang++
31
- X_ARCH="android-arm";;
32
- "aarch64") CLANG=${arch}-linux-android${API}-clang
33
- CXXLANG=${arch}-linux-android${API}-clang++
34
- X_ARCH="android-arm64";;
35
- "i686") CLANG=${arch}-linux-android${API}-clang
36
- CXXLANG=${arch}-linux-android${API}-clang++
37
- X_ARCH="android-x86";;
38
- "x86_64") CLANG=${arch}-linux-android${API}-clang
39
- CXXLANG=${arch}-linux-android${API}-clang++
40
- X_ARCH="android-x86_64";;
41
- *) CLANG=${arch}-linux-android${API}-clang
42
- CXXLANG=${arch}-linux-android${API}-clang++
43
- X_ARCH="android-${arch}";;
31
+ "aarch") X_ARCH="android-arm";;
32
+ "aarch64") X_ARCH="android-arm64";;
33
+ "i686") X_ARCH="android-x86";;
34
+ "x86_64") X_ARCH="android-x86_64";;
35
+ *) X_ARCH="android-${arch}";;
36
esac
37
38
cd $WORKDIR
39
rm -rf $OPENSSL_SRC_DIR
40
tar -xzf $OPENSSL_FILE_PATH -C $WORKDIR
41
cd $OPENSSL_SRC_DIR
50
-./Configure CC=${CLANG} CXX=${CXXLANG} ${X_ARCH} \
51
- no-asm no-shared --static \
42
+
43
+sed -i -e "s/mandroid/target\ ${TARGET}\-linux\-android/" Configure
44
+CC=clang ANDROID_NDK=$TOOLCHAIN \
45
+ ./Configure ${X_ARCH} \
46
+ no-asm no-shared \
47
--with-zlib-include=${PREFIX}/include \
48
--with-zlib-lib=${PREFIX}/lib \
49
--prefix=${PREFIX} \
50
--openssldir=${PREFIX} \
56
- -D__ANDROID_API__=$API
57
-sed -i 's/CNF_EX_LIBS=-ldl -pthread//g;s/BIN_CFLAGS=-pie $(CNF_CFLAGS) $(CFLAGS)//g' Makefile
51
+ -D__ANDROID_API__=$API
52
make -j4
53
make install
54
scripts/android/build_sodium.sh
+6
-11
@@ -8,18 +8,13 @@ for arch in "aarch" "aarch64" "i686" "x86_64"
8
do
9
10
PREFIX=${WORKDIR}/prefix_${arch}
11
+PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
12
13
case $arch in
13
- "aarch" ) TARGET="arm"
14
- CC=armv7a-linux-androideabi${API}-clang
15
- CXX=armv7a-linux-androideabi${API}-clang++;;
16
- "i686" ) TARGET="x86"
17
- CC=${arch}-linux-android${API}-clang
18
- CXX=${arch}-linux-android${API}-clang++;;
19
- * ) TARGET="${arch}"
20
- CC=${arch}-linux-android${API}-clang
21
- CXX=${arch}-linux-android${API}-clang++;;
22
-esac
14
+ "aarch" ) TARGET="arm";;
15
+ "i686" ) TARGET="x86";;
16
+ * ) TARGET="${arch}";;
17
+esac
18
19
HOST="${TARGET}-linux-android"
20
cd $WORKDIR
@@ -27,7 +22,7 @@ rm -rf $SODIUM_SRC_DIR
22
git clone https://github.com/jedisct1/libsodium.git $SODIUM_SRC_DIR -b $SODIUM_BRANCH
23
cd $SODIUM_SRC_DIR
24
./autogen.sh
30
-./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
25
+CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
26
make
27
make install
28
scripts/android/build_zmq.sh
+5
-10
@@ -9,17 +9,12 @@ for arch in "aarch" "aarch64" "i686" "x86_64"
9
do
10
11
PREFIX=$WORKDIR/prefix_${arch}
12
+PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
13
14
case $arch in
14
- "aarch" ) TARGET="arm"
15
- ANDROID_CLANG=armv7a-linux-androideabi${API}-clang
16
- ANDROID_CLANGPP=armv7a-linux-androideabi${API}-clang++;;
17
- "i686" ) TARGET="x86"
18
- ANDROID_CLANG=${arch}-linux-android${API}-clang
19
- ANDROID_CLANGPP=${arch}-linux-android${API}-clang++;;
20
- * ) TARGET="${arch}"
21
- ANDROID_CLANG=${arch}-linux-android${API}-clang
22
- ANDROID_CLANGPP=${arch}-linux-android${API}-clang++;;
15
+ "aarch" ) TARGET="arm";;
16
+ "i686" ) TARGET="x86";;
17
+ * ) TARGET="${arch}";;
18
esac
19
20
@@ -30,7 +25,7 @@ git clone https://github.com/zeromq/libzmq.git ${ZMQ_SRC_DIR} -b ${ZMQ_BRANCH}
25
cd $ZMQ_SRC_DIR
26
git checkout ${ZMQ_COMMIT_HASH}
27
./autogen.sh
33
- CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
28
+CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
29
make
30
make install
31
scripts/android/config.sh
+5
-8
@@ -2,12 +2,9 @@
2
3
export API=21
4
export WORKDIR=/opt/android
5
-export ANDROID_NDK_ZIP=${WORKDIR}/android-ndk-r20b.zip
6
-export ANDROID_NDK_ROOT=${WORKDIR}/android-ndk-r20b
5
+export ANDROID_NDK_ZIP=${WORKDIR}/android-ndk-r17c.zip
6
+export ANDROID_NDK_ROOT=${WORKDIR}/android-ndk-r17c
7
export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT
8
-export TOOLCHAIN_DIR="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64"
9
-
10
-case :${PATH:=${TOOLCHAIN_DIR}/bin}: in
11
-(*:"${TOOLCHAIN_DIR}/bin":*) ;; (*)
12
- export PATH=${TOOLCHAIN_DIR}/bin:$PATH
13
-esac;
8
+export TOOLCHAIN_DIR="${WORKDIR}/toolchain"
9
+export TOOLCHAIN_BASE_DIR=$TOOLCHAIN_DIR
10
+export ORIGINAL_PATH=$PATH
scripts/android/install_ndk.sh
+3
-3
@@ -1,8 +1,8 @@
1
#!/bin/sh
2
3
. ./config.sh
4
-ANDROID_NDK_SHA256="8381c440fe61fcbb01e209211ac01b519cd6adf51ab1c2281d5daad6ca4c8c8c"
4
+ANDROID_NDK_SHA256="3f541adbd0330a9205ba12697f6d04ec90752c53d6b622101a2a8a856e816589"
5
6
-curl https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip -o ${ANDROID_NDK_ZIP}
6
+curl https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip -o ${ANDROID_NDK_ZIP}
7
echo $ANDROID_NDK_SHA256 $ANDROID_NDK_ZIP | sha256sum -c || exit 1
8
-unzip /opt/android/android-ndk-r20b.zip -d $WORKDIR
8
+unzip /opt/android/android-ndk-r17c.zip -d $WORKDIR