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