diff --git a/script/build-external-libs/android-openssl/build-all-arch.sh b/script/build-external-libs/android-openssl/build-all-arch.sh index edd333d..53c5244 100755 --- a/script/build-external-libs/android-openssl/build-all-arch.sh +++ b/script/build-external-libs/android-openssl/build-all-arch.sh @@ -8,7 +8,6 @@ set -e rm -rf prebuilt mkdir prebuilt -#archs=(armeabi arm64-v8a mips mips64 x86 x86_64) archs=(armeabi arm64-v8a x86_64) for arch in ${archs[@]}; do @@ -26,25 +25,6 @@ for arch in ${archs[@]}; do _ANDROID_EABI=aarch64-linux-android-4.9 _ANDROID_EABI_INC=aarch64-linux-android configure_platform="linux-generic64 -DB_ENDIAN" ;; - "mips") - _ANDROID_TARGET_SELECT=arch-mips - _ANDROID_ARCH=arch-mips - _ANDROID_EABI=mipsel-linux-android-4.9 - _ANDROID_EABI_INC=mipsel-linux-android - configure_platform="android -DB_ENDIAN" ;; - "mips64") - _ANDROID_TARGET_SELECT=arch-mips64 - _ANDROID_ARCH=arch-mips64 - _ANDROID_EABI=mips64el-linux-android-4.9 - _ANDROID_EABI_INC=mips64el-linux-android - xLIB="/lib64" - configure_platform="linux-generic64 -DB_ENDIAN" ;; - "x86") - _ANDROID_TARGET_SELECT=arch-x86 - _ANDROID_ARCH=arch-x86 - _ANDROID_EABI=x86-4.9 - _ANDROID_EABI_INC=i686-linux-android - configure_platform="android-x86" ;; "x86_64") _ANDROID_TARGET_SELECT=arch-x86_64 _ANDROID_ARCH=arch-x86_64 @@ -63,10 +43,15 @@ for arch in ${archs[@]}; do echo "CROSS COMPILE ENV : $CROSS_COMPILE" cd openssl-OpenSSL_1_0_2l - xCFLAGS="-DSHARED_EXTENSION=.so -fPIC -DOPENSSL_PIC -DDSO_DLFCN -DHAVE_DLFCN_H -mandroid -I$ANDROID_NDK_ROOT/sysroot/usr/include -I$ANDROID_NDK_ROOT/sysroot/usr/include/$_ANDROID_EABI_INC -I$ANDROID_DEV/include -B$ANDROID_DEV/$xLIB -O -fomit-frame-pointer -W" + xCFLAGS="-DSHARED_EXTENSION=.so -fPIC -DOPENSSL_PIC -DDSO_DLFCN -DHAVE_DLFCN_H -mandroid \ +-I$ANDROID_NDK_ROOT/sysroot/usr/include \ +-I$ANDROID_NDK_ROOT/sysroot/usr/include/$_ANDROID_EABI_INC \ +-I$ANDROID_DEV/include \ +-B$ANDROID_DEV/$xLIB -O -fomit-frame-pointer -W" perl -pi -e 's/install: all install_docs install_sw/install: install_docs install_sw/g' Makefile.org - ./Configure shared no-threads no-asm no-zlib no-ssl2 no-ssl3 no-comp no-hw no-engine -D__ANDROID_API__=21 $configure_platform $xCFLAGS + ./Configure shared no-threads no-asm no-zlib no-ssl2 no-ssl3 no-comp no-hw no-engine \ + -D__ANDROID_API__=21 $configure_platform $xCFLAGS # patch SONAME diff --git a/script/build-external-libs/build-boost.sh b/script/build-external-libs/build-boost.sh index b25922c..6fc0122 100755 --- a/script/build-external-libs/build-boost.sh +++ b/script/build-external-libs/build-boost.sh @@ -18,23 +18,40 @@ args="--build-type=minimal link=static runtime-link=static --with-chrono \ --with-serialization --with-system --with-thread \ --includedir=$build_root/build/boost/include \ --toolset=clang-android threading=multi threadapi=pthread target-os=android \ --j $NPROC \ " -echo $args - -PATH=$build_root/tool/arm/arm-linux-androideabi/bin:$build_root/tool/arm/bin:$PATH \ - ./b2 --build-dir=android-arm --prefix=$build_root/build/boost/arm $args \ - --arch=armeabi-v7a \ - install -ln -sf ../include $build_root/build/boost/arm - -PATH=$build_root/tool/arm64/aarch64-linux-androideabi/bin:$build_root/tool/arm64/bin:$PATH \ - ./b2 --build-dir=android-arm64 --prefix=$build_root/build/boost/arm64 $args \ - install -ln -sf ../include $build_root/build/boost/arm64 - -PATH=$build_root/tool/x86_64/x86_64-linux-android/bin:$build_root/tool/x86_64/bin:$PATH \ - ./b2 --build-dir=android-x86_64 --prefix=$build_root/build/boost/x86_64 $args \ - install -ln -sf ../include $build_root/build/boost/x86_64 +archs=(arm arm64 x86_64) +for arch in ${archs[@]}; do + extra_build_flags="" + case ${arch} in + "arm") + target_host=arm-linux-androideabi + extra_build_flags="--arch=armeabi-v7a" + ;; + "arm64") + target_host=aarch64-linux-android + ;; + "x86_64") + target_host=x86_64-linux-android + ;; + *) + exit 16 + ;; + esac + + echo "building for ${arch}" + + (PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH; \ + ./b2 \ + --build-dir=android-${arch} \ + --prefix=$build_root/build/boost/$arch \ + $args \ + $extr_build_flags \ + -j $NPROC \ + install) + + ln -sf ../include $build_root/build/boost/${arch} + +done + +exit 0 diff --git a/script/build-external-libs/build-libsodium.sh b/script/build-external-libs/build-libsodium.sh index b3fa144..0535ebc 100755 --- a/script/build-external-libs/build-libsodium.sh +++ b/script/build-external-libs/build-libsodium.sh @@ -18,9 +18,6 @@ for arch in ${archs[@]}; do "arm64") target_host=aarch64-linux-android ;; - "x86") - target_host=i686-linux-android - ;; "x86_64") target_host=x86_64-linux-android ;; diff --git a/script/build-external-libs/build-wownero.sh b/script/build-external-libs/build-wownero.sh index 12865d3..b7903b8 100755 --- a/script/build-external-libs/build-wownero.sh +++ b/script/build-external-libs/build-wownero.sh @@ -7,4 +7,84 @@ source script/build-external-libs/env.sh cd $EXTERNAL_LIBS_BUILD_ROOT cd wownero -./build-all-arch.sh +orig_path=$PATH +base_dir=`pwd` +build_root=$EXTERNAL_LIBS_BUILD_ROOT + +build_type=release # or debug + +archs=(arm arm64 x86_64) + +for arch in ${archs[@]}; do + ldflags="" + extra_cmake_flags="" + case ${arch} in + "arm") + target_host=arm-linux-androideabi + ldflags="-march=armv7-a -Wl,--fix-cortex-a8" + xarch=armv7-a + sixtyfour=OFF + extra_cmake_flags="-D NO_AES=true" + ;; + "arm64") + target_host=aarch64-linux-android + xarch="armv8-a" + sixtyfour=ON + ;; + "x86_64") + target_host=x86_64-linux-android + xarch="x86-64" + sixtyfour=ON + ;; + *) + exit 16 + ;; + esac + + OUTPUT_DIR=$base_dir/build/$build_type.$arch + + mkdir -p $OUTPUT_DIR + cd $OUTPUT_DIR + + PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \ + CC=clang CXX=clang++ \ + CMAKE_LIBRARY_PATH=$build_root/build/libsodium/$arch/lib \ + cmake \ + -D ANDROID=true \ + -D ARCH="$xarch" \ + -D BOOST_LIBRARYDIR=$build_root/build/boost/$arch/lib \ + -D BOOST_ROOT=$build_root/build/boost/$arch \ + -D BUILD_64=$sixtyfour \ + -D BUILD_GUI_DEPS=1 \ + -D BUILD_TAG="android" \ + -D BUILD_TESTS=OFF \ + -D CMAKE_BUILD_TYPE=$build_type \ + -D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=true \ + -D FORCE_USE_HEAP=1 \ + -D OPENSSL_CRYPTO_LIBRARY=$build_root/build/openssl/$arch/lib/libcrypto.so \ + -D OPENSSL_INCLUDE_DIR=$build_root/build/openssl/$arch/include \ + -D OPENSSL_ROOT_DIR=$build_root/build/openssl/$arch \ + -D OPENSSL_SSL_LIBRARY=$build_root/build/openssl/$arch/lib/libssl.so \ + -D LIBSODIUM_INCLUDE_DIR=$build_root/build/libsodium/$arch/include \ + -D STATIC=ON \ + $extra_cmake_flags \ + ../.. + + make -j $NPROC wallet_api + + find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; + + TARGET_LIB_DIR=$build_root/build/monero/$arch/lib + rm -rf $TARGET_LIB_DIR + mkdir -p $TARGET_LIB_DIR + cp $OUTPUT_DIR/lib/*.a $TARGET_LIB_DIR + + TARGET_INC_DIR=$build_root/build/monero/include + rm -rf $TARGET_INC_DIR + mkdir -p $TARGET_INC_DIR + cp -a ../../src/wallet/api/wallet2_api.h $TARGET_INC_DIR + + cd $base_dir +done + +exit 0 diff --git a/script/build-external-libs/patch-wownero.sh b/script/build-external-libs/patch-wownero.sh index ff4ca25..3ba3edd 100755 --- a/script/build-external-libs/patch-wownero.sh +++ b/script/build-external-libs/patch-wownero.sh @@ -4,8 +4,6 @@ set -e source script/build-external-libs/env.sh -cp script/build-external-libs/wownero/build-all-arch.sh $EXTERNAL_LIBS_BUILD_ROOT/wownero - cd $EXTERNAL_LIBS_BUILD_ROOT cd wownero diff --git a/script/build-external-libs/wownero/build-all-arch.sh b/script/build-external-libs/wownero/build-all-arch.sh deleted file mode 100755 index a1d6ac0..0000000 --- a/script/build-external-libs/wownero/build-all-arch.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash - -set -e - -orig_path=$PATH -base_dir=`pwd` -build_root=$EXTERNAL_LIBS_BUILD_ROOT - -build_type=release # or debug - -archs=(arm arm64 x86_64) - -for arch in ${archs[@]}; do - ldflags="" - extra_cmake_flags="" - case ${arch} in - "arm") - target_host=arm-linux-androideabi - ldflags="-march=armv7-a -Wl,--fix-cortex-a8" - xarch=armv7-a - sixtyfour=OFF - extra_cmake_flags="-D NO_AES=true" - ;; - "arm64") - target_host=aarch64-linux-android - xarch="armv8-a" - sixtyfour=ON - ;; - "x86") - target_host=i686-linux-android - xarch="i686" - sixtyfour=OFF - ;; - "x86_64") - target_host=x86_64-linux-android - xarch="x86-64" - sixtyfour=ON - ;; - *) - exit 16 - ;; - esac - - OUTPUT_DIR=$base_dir/build/$build_type.$arch - - mkdir -p $OUTPUT_DIR - cd $OUTPUT_DIR - - PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \ - CC=clang CXX=clang++ \ - CMAKE_LIBRARY_PATH=$build_root/build/libsodium/$arch/lib \ - cmake \ - -D ANDROID=true \ - -D ARCH="$xarch" \ - -D BOOST_LIBRARYDIR=$build_root/build/boost/$arch/lib \ - -D BOOST_ROOT=$build_root/build/boost/$arch \ - -D BUILD_64=$sixtyfour \ - -D BUILD_GUI_DEPS=1 \ - -D BUILD_TAG="android" \ - -D BUILD_TESTS=OFF \ - -D CMAKE_BUILD_TYPE=$build_type \ - -D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=true \ - -D FORCE_USE_HEAP=1 \ - -D OPENSSL_CRYPTO_LIBRARY=$build_root/build/openssl/$arch/lib/libcrypto.so \ - -D OPENSSL_INCLUDE_DIR=$build_root/build/openssl/$arch/include \ - -D OPENSSL_ROOT_DIR=$build_root/build/openssl/$arch \ - -D OPENSSL_SSL_LIBRARY=$build_root/build/openssl/$arch/lib/libssl.so \ - -D LIBSODIUM_INCLUDE_DIR=$build_root/build/libsodium/$arch/include \ - -D STATIC=ON \ - $extra_cmake_flags \ - ../.. - - make -j $NPROC wallet_api - - find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; - - TARGET_LIB_DIR=$build_root/build/monero/$arch/lib - rm -rf $TARGET_LIB_DIR - mkdir -p $TARGET_LIB_DIR - cp $OUTPUT_DIR/lib/*.a $TARGET_LIB_DIR - - TARGET_INC_DIR=$build_root/build/monero/include - rm -rf $TARGET_INC_DIR - mkdir -p $TARGET_INC_DIR - cp -a ../../src/wallet/api/wallet2_api.h $TARGET_INC_DIR - - cd $base_dir -done - -exit 0