mirror of https://github.com/m2049r/xmrwallet.git
change build to docker (#715)
This commit is contained in:
parent
0443fd808c
commit
a19ad7fd52
|
@ -13,7 +13,7 @@ set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../external-libs)
|
|||
|
||||
add_library(sodium STATIC IMPORTED)
|
||||
set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/libsodium/lib/${ANDROID_ABI}/libsodium.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libsodium.a)
|
||||
|
||||
############
|
||||
# OpenSSL
|
||||
|
@ -21,11 +21,11 @@ set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
|||
|
||||
add_library(crypto STATIC IMPORTED)
|
||||
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/openssl/lib/${ANDROID_ABI}/libcrypto.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libcrypto.a)
|
||||
|
||||
add_library(ssl STATIC IMPORTED)
|
||||
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/openssl/lib/${ANDROID_ABI}/libssl.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libssl.a)
|
||||
|
||||
############
|
||||
# Boost
|
||||
|
@ -33,39 +33,39 @@ set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
|||
|
||||
add_library(boost_chrono STATIC IMPORTED)
|
||||
set_target_properties(boost_chrono PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_chrono.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_chrono.a)
|
||||
|
||||
add_library(boost_date_time STATIC IMPORTED)
|
||||
set_target_properties(boost_date_time PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_date_time.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_date_time.a)
|
||||
|
||||
add_library(boost_filesystem STATIC IMPORTED)
|
||||
set_target_properties(boost_filesystem PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_filesystem.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_filesystem.a)
|
||||
|
||||
add_library(boost_program_options STATIC IMPORTED)
|
||||
set_target_properties(boost_program_options PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_program_options.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_program_options.a)
|
||||
|
||||
add_library(boost_regex STATIC IMPORTED)
|
||||
set_target_properties(boost_regex PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_regex.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_regex.a)
|
||||
|
||||
add_library(boost_serialization STATIC IMPORTED)
|
||||
set_target_properties(boost_serialization PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_serialization.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_serialization.a)
|
||||
|
||||
add_library(boost_system STATIC IMPORTED)
|
||||
set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_system.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_system.a)
|
||||
|
||||
add_library(boost_thread STATIC IMPORTED)
|
||||
set_target_properties(boost_thread PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_thread.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_thread.a)
|
||||
|
||||
add_library(boost_wserialization STATIC IMPORTED)
|
||||
set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/boost/lib/${ANDROID_ABI}/libboost_wserialization.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libboost_wserialization.a)
|
||||
|
||||
#############
|
||||
# Monero
|
||||
|
@ -73,99 +73,103 @@ set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
|
|||
|
||||
add_library(wallet_api STATIC IMPORTED)
|
||||
set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libwallet_api.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libwallet_api.a)
|
||||
|
||||
add_library(wallet STATIC IMPORTED)
|
||||
set_target_properties(wallet PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libwallet.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libwallet.a)
|
||||
|
||||
add_library(cryptonote_core STATIC IMPORTED)
|
||||
set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libcryptonote_core.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libcryptonote_core.a)
|
||||
|
||||
add_library(cryptonote_basic STATIC IMPORTED)
|
||||
set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libcryptonote_basic.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libcryptonote_basic.a)
|
||||
|
||||
add_library(mnemonics STATIC IMPORTED)
|
||||
set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libmnemonics.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libmnemonics.a)
|
||||
|
||||
add_library(common STATIC IMPORTED)
|
||||
set_target_properties(common PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libcommon.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libcommon.a)
|
||||
|
||||
add_library(cncrypto STATIC IMPORTED)
|
||||
set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libcncrypto.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libcncrypto.a)
|
||||
|
||||
add_library(ringct STATIC IMPORTED)
|
||||
set_target_properties(ringct PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libringct.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libringct.a)
|
||||
|
||||
add_library(ringct_basic STATIC IMPORTED)
|
||||
set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libringct_basic.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libringct_basic.a)
|
||||
|
||||
add_library(blockchain_db STATIC IMPORTED)
|
||||
set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libblockchain_db.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libblockchain_db.a)
|
||||
|
||||
add_library(lmdb STATIC IMPORTED)
|
||||
set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/liblmdb.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/liblmdb.a)
|
||||
|
||||
add_library(easylogging STATIC IMPORTED)
|
||||
set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libeasylogging.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libeasylogging.a)
|
||||
|
||||
add_library(unbound STATIC IMPORTED)
|
||||
set_target_properties(unbound PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libunbound.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libunbound.a)
|
||||
|
||||
add_library(epee STATIC IMPORTED)
|
||||
set_target_properties(epee PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libepee.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libepee.a)
|
||||
|
||||
add_library(blocks STATIC IMPORTED)
|
||||
set_target_properties(blocks PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libblocks.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libblocks.a)
|
||||
|
||||
add_library(checkpoints STATIC IMPORTED)
|
||||
set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libcheckpoints.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libcheckpoints.a)
|
||||
|
||||
add_library(device STATIC IMPORTED)
|
||||
set_target_properties(device PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libdevice.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libdevice.a)
|
||||
|
||||
add_library(device_trezor STATIC IMPORTED)
|
||||
set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libdevice_trezor.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libdevice_trezor.a)
|
||||
|
||||
add_library(multisig STATIC IMPORTED)
|
||||
set_target_properties(multisig PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libmultisig.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libmultisig.a)
|
||||
|
||||
add_library(version STATIC IMPORTED)
|
||||
set_target_properties(version PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libversion.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libversion.a)
|
||||
|
||||
add_library(net STATIC IMPORTED)
|
||||
set_target_properties(net PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libnet.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libnet.a)
|
||||
|
||||
add_library(hardforks STATIC IMPORTED)
|
||||
set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/libhardforks.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libhardforks.a)
|
||||
|
||||
add_library(randomx STATIC IMPORTED)
|
||||
set_target_properties(randomx PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/librandomx.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/librandomx.a)
|
||||
|
||||
add_library(rpc_base STATIC IMPORTED)
|
||||
set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/monero/lib/${ANDROID_ABI}/librpc_base.a)
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/librpc_base.a)
|
||||
|
||||
add_library(wallet-crypto STATIC IMPORTED)
|
||||
set_target_properties(wallet-crypto PROPERTIES IMPORTED_LOCATION
|
||||
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/monero/libwallet-crypto.a)
|
||||
|
||||
#############
|
||||
# System
|
||||
|
@ -173,10 +177,16 @@ set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
|
|||
|
||||
find_library( log-lib log )
|
||||
|
||||
include_directories( ${EXTERNAL_LIBS_DIR}/monero/include )
|
||||
include_directories( ${EXTERNAL_LIBS_DIR}/include )
|
||||
|
||||
message(STATUS EXTERNAL_LIBS_DIR : ${EXTERNAL_LIBS_DIR})
|
||||
|
||||
if(${ANDROID_ABI} STREQUAL "x86_64")
|
||||
set(EXTRA_LIBS "wallet-crypto")
|
||||
else()
|
||||
set(EXTRA_LIBS "")
|
||||
endif()
|
||||
|
||||
target_link_libraries( monerujo
|
||||
|
||||
wallet_api
|
||||
|
@ -203,6 +213,7 @@ target_link_libraries( monerujo
|
|||
randomx
|
||||
hardforks
|
||||
rpc_base
|
||||
${EXTRA_LIBS}
|
||||
|
||||
boost_chrono
|
||||
boost_date_time
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
build
|
||||
monero*
|
||||
/monero
|
||||
/arm64-v8a
|
||||
/armeabi-v7a
|
||||
/x86
|
||||
/x86_64
|
||||
|
|
|
@ -1,60 +1,69 @@
|
|||
#.PHONY: f-droid-sign f-droid-clean \
|
||||
#build-external-libs use-prebuilt-external-libs \
|
||||
#toolchain openssl boost wownero collect \
|
||||
#clean-external-libs \
|
||||
#f-droid-sign f-droid-clean \
|
||||
#gradle-release gradle-build gradle-sign gradle-clean \
|
||||
#apk-install remove-exif
|
||||
# ln -s /opt/monero monero
|
||||
|
||||
#all: build-external-libs
|
||||
MONERO_BRANCH=`git -C monero branch | grep "^\*" | sed 's/^..//'`
|
||||
MONERUJO_BRANCH=`git -C . branch | grep "^\*" | sed 's/^..//'`
|
||||
|
||||
#build-external-libs: clean-external-libs collect
|
||||
all: arm64-v8a armeabi-v7a x86_64 x86 include VERSION
|
||||
|
||||
all: monero
|
||||
arm64-v8a: monero
|
||||
-rm -rf arm64-v8a
|
||||
-docker container rm monero-android-arm64 -f
|
||||
docker build -f android64.Dockerfile -t monero-android-arm64 monero
|
||||
docker create -it --name monero-android-arm64 monero-android-arm64 bash
|
||||
docker cp monero-android-arm64:/opt/android/prefix/lib/. arm64-v8a/
|
||||
docker cp monero-android-arm64:/src/build/release/lib/. arm64-v8a//monero
|
||||
|
||||
monero: toolchain libsodium openssl boost monero_dl openssl_sysroot
|
||||
script/monero-build.sh
|
||||
armeabi-v7a: monero
|
||||
-rm -rf armeabi-v7a
|
||||
-docker container rm monero-android-arm32 -f
|
||||
docker build -f android32.Dockerfile -t monero-android-arm32 monero
|
||||
docker create -it --name monero-android-arm32 monero-android-arm32 bash
|
||||
docker cp monero-android-arm32:/opt/android/prefix/lib/. armeabi-v7a
|
||||
docker cp monero-android-arm32:/src/build/release/lib/. armeabi-v7a/monero
|
||||
|
||||
monero_dl:
|
||||
script/monero-fetch.sh
|
||||
x86_64: monero
|
||||
-rm -rf x86_64
|
||||
-docker container rm monero-android-x86_64 -f
|
||||
docker build -f android64_x86.Dockerfile -t monero-android-x86_64 monero
|
||||
docker create -it --name monero-android-x86_64 monero-android-x86_64 bash
|
||||
docker cp monero-android-x86_64:/opt/android/prefix/lib/. x86_64
|
||||
docker cp monero-android-x86_64:/src/build/release/lib/. x86_64/monero
|
||||
|
||||
toolchain:
|
||||
script/toolchain-build.sh
|
||||
x86: monero
|
||||
-rm -rf x86
|
||||
-docker container rm monero-android-x86 -f
|
||||
docker build -f android32_x86.Dockerfile -t monero-android-x86 monero
|
||||
docker create -it --name monero-android-x86 monero-android-x86 bash
|
||||
docker cp monero-android-x86:/opt/android/prefix/lib/. x86
|
||||
docker cp monero-android-x86:/src/build/release/lib/. x86/monero
|
||||
|
||||
openssl: toolchain openssl_dl
|
||||
script/openssl-build.sh
|
||||
include: monero
|
||||
-mkdir include
|
||||
cp monero/src/wallet/api/wallet2_api.h include/
|
||||
|
||||
openssl_sysroot:
|
||||
script/openssl-install.sh
|
||||
|
||||
openssl_dl:
|
||||
script/openssl-fetch.sh
|
||||
script/openssl-patch.sh
|
||||
|
||||
boost: toolchain boost_dl
|
||||
script/boost-build.sh
|
||||
|
||||
boost_dl:
|
||||
script/boost-fetch.sh
|
||||
|
||||
libsodium: toolchain libsodium_dl
|
||||
script/libsodium-build.sh
|
||||
|
||||
libsodium_dl:
|
||||
script/libsodium-fetch.sh
|
||||
|
||||
install: all
|
||||
script/install.sh
|
||||
VERSION:
|
||||
echo MONERUJO `git -C . branch | grep "^\*" | sed 's/^..//'` with MONERO `git -C monero branch | grep "^\*" | sed 's/^..//'` > VERSION
|
||||
|
||||
clean:
|
||||
script/clean.sh
|
||||
-docker container rm monero-android-arm64 -f
|
||||
-docker container rm monero-android-arm32 -f
|
||||
-docker container rm monero-android-x86_64 -f
|
||||
-docker container rm monero-android-x86 -f
|
||||
-rm -rf arm64-v8a
|
||||
-rm -rf armeabi-v7a
|
||||
-rm -rf x86_64
|
||||
-rm -rf x86
|
||||
-rm -rf include
|
||||
-rm -f VERSION
|
||||
|
||||
distclean: clean
|
||||
find monero -type f -a ! -name ".gitignore" -a ! -name "wallet2_api.h" -exec rm {} \;
|
||||
find boost -type f -a ! -name ".gitignore" -exec rm {} \;
|
||||
find libsodium -type f -a ! -name ".gitignore" -exec rm {} \;
|
||||
find openssl -type f -a ! -name ".gitignore" -exec rm {} \;
|
||||
-docker image rm monero-android-arm64 -f
|
||||
-docker image rm monero-android-arm32 -f
|
||||
-docker image rm monero-android-x86_64 -f
|
||||
-docker image rm monero-android-x86 -f
|
||||
-rm monero
|
||||
|
||||
archive: libsodium openssl boost monero
|
||||
echo "Packing external-libs"
|
||||
tar czfv libsodium openssl boost monero external-libs.tgz
|
||||
monero:
|
||||
$(error Please ln -s monero)
|
||||
|
||||
.PHONY: all clean distclean include
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
MONERUJO feature_dockerbuild with MONERO release-v0.17.1.9-monerujo
|
|
@ -0,0 +1,140 @@
|
|||
FROM debian:stable
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip automake build-essential curl file pkg-config git python libtool libtinfo5
|
||||
|
||||
WORKDIR /opt/android
|
||||
## INSTALL ANDROID SDK
|
||||
ENV ANDROID_SDK_REVISION 4333796
|
||||
ENV ANDROID_SDK_HASH 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
|
||||
RUN curl -s -O https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& echo "${ANDROID_SDK_HASH} sdk-tools-linux-${ANDROID_SDK_REVISION}.zip" | sha256sum -c \
|
||||
&& unzip sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& rm -f sdk-tools-linux-${ANDROID_SDK_REVISION}.zip
|
||||
|
||||
## INSTALL ANDROID NDK
|
||||
ENV ANDROID_NDK_REVISION 17b
|
||||
ENV ANDROID_NDK_HASH 5dfbbdc2d3ba859fed90d0e978af87c71a91a5be1f6e1c40ba697503d48ccecd
|
||||
RUN curl -s -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& echo "${ANDROID_NDK_HASH} android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip" | sha256sum -c \
|
||||
&& unzip android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& rm -f android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip
|
||||
|
||||
ENV WORKDIR /opt/android
|
||||
ENV ANDROID_SDK_ROOT ${WORKDIR}/tools
|
||||
ENV ANDROID_NDK_ROOT ${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
|
||||
ENV PREFIX /opt/android/prefix
|
||||
|
||||
ENV TOOLCHAIN_DIR ${WORKDIR}/toolchain-arm
|
||||
RUN ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \
|
||||
--arch arm \
|
||||
--api 21 \
|
||||
--install-dir ${TOOLCHAIN_DIR} \
|
||||
--stl=libc++
|
||||
|
||||
#INSTALL cmake
|
||||
ENV CMAKE_VERSION 3.12.1
|
||||
RUN cd /usr \
|
||||
&& curl -s -O https://cmake.org/files/v3.12/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& tar -xzf /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& rm -f /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz
|
||||
ENV PATH /usr/cmake-${CMAKE_VERSION}-Linux-x86_64/bin:$PATH
|
||||
|
||||
## Boost
|
||||
ARG BOOST_VERSION=1_68_0
|
||||
ARG BOOST_VERSION_DOT=1.68.0
|
||||
ARG BOOST_HASH=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
|
||||
RUN set -ex \
|
||||
&& curl -s -L -o boost_${BOOST_VERSION}.tar.bz2 https://dl.bintray.com/boostorg/release/${BOOST_VERSION_DOT}/source/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
|
||||
&& tar -xvf boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& rm -f boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& cd boost_${BOOST_VERSION} \
|
||||
&& ./bootstrap.sh --prefix=${PREFIX}
|
||||
|
||||
ENV HOST_PATH $PATH
|
||||
ENV PATH $TOOLCHAIN_DIR/arm-linux-androideabi/bin:$TOOLCHAIN_DIR/bin:$PATH
|
||||
|
||||
ARG NPROC=1
|
||||
|
||||
# Build iconv for lib boost locale
|
||||
ENV ICONV_VERSION 1.15
|
||||
ENV ICONV_HASH ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
|
||||
RUN curl -s -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& echo "${ICONV_HASH} libiconv-${ICONV_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& rm -f libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& cd libiconv-${ICONV_VERSION} \
|
||||
&& CC=arm-linux-androideabi-clang CXX=arm-linux-androideabi-clang++ ./configure --build=x86_64-linux-gnu --host=arm-linux-androideabi --prefix=${PREFIX} --disable-rpath \
|
||||
&& make -j${NPROC} && make install
|
||||
|
||||
## Build BOOST
|
||||
RUN cd boost_${BOOST_VERSION} \
|
||||
&& ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} install -j${NPROC}
|
||||
|
||||
#Note : we build openssl because the default lacks DSA1
|
||||
|
||||
# download, configure and make Zlib
|
||||
ENV ZLIB_VERSION 1.2.11
|
||||
ENV ZLIB_HASH c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
||||
RUN curl -s -O https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& rm zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& mv zlib-${ZLIB_VERSION} zlib \
|
||||
&& cd zlib && CC=clang CXX=clang++ ./configure --static \
|
||||
&& make -j${NPROC}
|
||||
|
||||
# open ssl
|
||||
ARG OPENSSL_VERSION=1.0.2p
|
||||
ARG OPENSSL_HASH=50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
|
||||
RUN curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& cd openssl-${OPENSSL_VERSION} \
|
||||
&& sed -i -e "s/mandroid/target\ armv7\-none\-linux\-androideabi/" Configure \
|
||||
&& CC=clang CXX=clang++ \
|
||||
./Configure android-armv7 \
|
||||
no-asm \
|
||||
no-shared --static \
|
||||
--with-zlib-include=${WORKDIR}/zlib/include --with-zlib-lib=${WORKDIR}/zlib/lib \
|
||||
--prefix=${PREFIX} --openssldir=${PREFIX} \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# ZMQ
|
||||
ARG ZMQ_VERSION=v4.2.5
|
||||
ARG ZMQ_HASH=d062edd8c142384792955796329baf1e5a3377cd
|
||||
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \
|
||||
&& cd libzmq \
|
||||
&& test `git rev-parse HEAD` = ${ZMQ_HASH} || exit 1 \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=arm-linux-androideabi --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# Sodium
|
||||
ARG SODIUM_VERSION=1.0.16
|
||||
ARG SODIUM_HASH=675149b9b8b66ff44152553fb3ebf9858128363d
|
||||
RUN set -ex \
|
||||
&& git clone https://github.com/jedisct1/libsodium.git -b ${SODIUM_VERSION} \
|
||||
&& cd libsodium \
|
||||
&& test `git rev-parse HEAD` = ${SODIUM_HASH} || exit 1 \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=arm-linux-androideabi --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
COPY . /src
|
||||
ARG NPROC=4
|
||||
RUN set -ex \
|
||||
&& cd /src \
|
||||
&& CMAKE_INCLUDE_PATH="${PREFIX}/include" \
|
||||
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
|
||||
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \
|
||||
USE_SINGLE_BUILDDIR=1 \
|
||||
PATH=${HOST_PATH} make release-static-android-armv7-wallet_api -j${NPROC}
|
||||
|
||||
RUN set -ex \
|
||||
&& cd /src/build/release \
|
||||
&& find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
|
@ -0,0 +1,140 @@
|
|||
FROM debian:stable
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip automake build-essential curl file pkg-config git python libtool libtinfo5
|
||||
|
||||
WORKDIR /opt/android
|
||||
## INSTALL ANDROID SDK
|
||||
ENV ANDROID_SDK_REVISION 4333796
|
||||
ENV ANDROID_SDK_HASH 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
|
||||
RUN curl -s -O https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& echo "${ANDROID_SDK_HASH} sdk-tools-linux-${ANDROID_SDK_REVISION}.zip" | sha256sum -c \
|
||||
&& unzip sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& rm -f sdk-tools-linux-${ANDROID_SDK_REVISION}.zip
|
||||
|
||||
## INSTALL ANDROID NDK
|
||||
ENV ANDROID_NDK_REVISION 17b
|
||||
ENV ANDROID_NDK_HASH 5dfbbdc2d3ba859fed90d0e978af87c71a91a5be1f6e1c40ba697503d48ccecd
|
||||
RUN curl -s -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& echo "${ANDROID_NDK_HASH} android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip" | sha256sum -c \
|
||||
&& unzip android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& rm -f android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip
|
||||
|
||||
ENV WORKDIR /opt/android
|
||||
ENV ANDROID_SDK_ROOT ${WORKDIR}/tools
|
||||
ENV ANDROID_NDK_ROOT ${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
|
||||
ENV PREFIX /opt/android/prefix
|
||||
|
||||
ENV TOOLCHAIN_DIR ${WORKDIR}/toolchain
|
||||
RUN ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \
|
||||
--arch x86 \
|
||||
--api 21 \
|
||||
--install-dir ${TOOLCHAIN_DIR} \
|
||||
--stl=libc++
|
||||
|
||||
#INSTALL cmake
|
||||
ENV CMAKE_VERSION 3.12.1
|
||||
RUN cd /usr \
|
||||
&& curl -s -O https://cmake.org/files/v3.12/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& tar -xzf /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& rm -f /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz
|
||||
ENV PATH /usr/cmake-${CMAKE_VERSION}-Linux-x86_64/bin:$PATH
|
||||
|
||||
## Boost
|
||||
ARG BOOST_VERSION=1_68_0
|
||||
ARG BOOST_VERSION_DOT=1.68.0
|
||||
ARG BOOST_HASH=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
|
||||
RUN set -ex \
|
||||
&& curl -s -L -o boost_${BOOST_VERSION}.tar.bz2 https://dl.bintray.com/boostorg/release/${BOOST_VERSION_DOT}/source/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
|
||||
&& tar -xvf boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& rm -f boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& cd boost_${BOOST_VERSION} \
|
||||
&& ./bootstrap.sh --prefix=${PREFIX}
|
||||
|
||||
ENV HOST_PATH $PATH
|
||||
ENV PATH $TOOLCHAIN_DIR/i686-linux-android/bin:$TOOLCHAIN_DIR/bin:$PATH
|
||||
|
||||
ARG NPROC=1
|
||||
|
||||
# Build iconv for lib boost locale
|
||||
ENV ICONV_VERSION 1.15
|
||||
ENV ICONV_HASH ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
|
||||
RUN curl -s -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& echo "${ICONV_HASH} libiconv-${ICONV_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& rm -f libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& cd libiconv-${ICONV_VERSION} \
|
||||
&& CC=i686-linux-android-clang CXX=i686-linux-android-clang++ ./configure --build=x86_64-linux-gnu --host=i686-linux-android --prefix=${PREFIX} --disable-rpath \
|
||||
&& make -j${NPROC} && make install
|
||||
|
||||
## Build BOOST
|
||||
RUN cd boost_${BOOST_VERSION} \
|
||||
&& ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} install -j${NPROC}
|
||||
|
||||
#Note : we build openssl because the default lacks DSA1
|
||||
|
||||
# download, configure and make Zlib
|
||||
ENV ZLIB_VERSION 1.2.11
|
||||
ENV ZLIB_HASH c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
||||
RUN curl -s -O https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& rm zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& mv zlib-${ZLIB_VERSION} zlib \
|
||||
&& cd zlib && CC=clang CXX=clang++ ./configure --static \
|
||||
&& make -j${NPROC}
|
||||
|
||||
# open ssl
|
||||
ARG OPENSSL_VERSION=1.0.2p
|
||||
ARG OPENSSL_HASH=50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
|
||||
RUN curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& cd openssl-${OPENSSL_VERSION} \
|
||||
&& sed -i -e "s/mandroid/target\ i686\-linux\-android/" Configure \
|
||||
&& CC=clang CXX=clang++ \
|
||||
./Configure android \
|
||||
no-asm \
|
||||
no-shared --static \
|
||||
--with-zlib-include=${WORKDIR}/zlib/include --with-zlib-lib=${WORKDIR}/zlib/lib \
|
||||
--prefix=${PREFIX} --openssldir=${PREFIX} \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# ZMQ
|
||||
ARG ZMQ_VERSION=master
|
||||
ARG ZMQ_HASH=501d0815bf2b0abb93be8214fc66519918ef6c40
|
||||
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \
|
||||
&& cd libzmq \
|
||||
&& git checkout ${ZMQ_HASH} \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=x86-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# Sodium
|
||||
ARG SODIUM_VERSION=1.0.16
|
||||
ARG SODIUM_HASH=675149b9b8b66ff44152553fb3ebf9858128363d
|
||||
RUN set -ex \
|
||||
&& git clone https://github.com/jedisct1/libsodium.git -b ${SODIUM_VERSION} \
|
||||
&& cd libsodium \
|
||||
&& test `git rev-parse HEAD` = ${SODIUM_HASH} || exit 1 \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=x86-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
COPY . /src
|
||||
ARG NPROC=4
|
||||
RUN set -ex \
|
||||
&& cd /src \
|
||||
&& CMAKE_INCLUDE_PATH="${PREFIX}/include" \
|
||||
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
|
||||
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \
|
||||
USE_SINGLE_BUILDDIR=1 \
|
||||
PATH=${HOST_PATH} make release-static-android-x86-wallet_api -j${NPROC}
|
||||
|
||||
RUN set -ex \
|
||||
&& cd /src/build/release \
|
||||
&& find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
|
@ -0,0 +1,140 @@
|
|||
FROM debian:stable
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip automake build-essential curl file pkg-config git python libtool libtinfo5
|
||||
|
||||
WORKDIR /opt/android
|
||||
## INSTALL ANDROID SDK
|
||||
ENV ANDROID_SDK_REVISION 4333796
|
||||
ENV ANDROID_SDK_HASH 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
|
||||
RUN curl -s -O https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& echo "${ANDROID_SDK_HASH} sdk-tools-linux-${ANDROID_SDK_REVISION}.zip" | sha256sum -c \
|
||||
&& unzip sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& rm -f sdk-tools-linux-${ANDROID_SDK_REVISION}.zip
|
||||
|
||||
## INSTALL ANDROID NDK
|
||||
ENV ANDROID_NDK_REVISION 17b
|
||||
ENV ANDROID_NDK_HASH 5dfbbdc2d3ba859fed90d0e978af87c71a91a5be1f6e1c40ba697503d48ccecd
|
||||
RUN curl -s -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& echo "${ANDROID_NDK_HASH} android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip" | sha256sum -c \
|
||||
&& unzip android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& rm -f android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip
|
||||
|
||||
ENV WORKDIR /opt/android
|
||||
ENV ANDROID_SDK_ROOT ${WORKDIR}/tools
|
||||
ENV ANDROID_NDK_ROOT ${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
|
||||
ENV PREFIX /opt/android/prefix
|
||||
|
||||
ENV TOOLCHAIN_DIR ${WORKDIR}/toolchain-arm
|
||||
RUN ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \
|
||||
--arch arm64 \
|
||||
--api 21 \
|
||||
--install-dir ${TOOLCHAIN_DIR} \
|
||||
--stl=libc++
|
||||
|
||||
#INSTALL cmake
|
||||
ENV CMAKE_VERSION 3.12.1
|
||||
RUN cd /usr \
|
||||
&& curl -s -O https://cmake.org/files/v3.12/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& tar -xzf /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& rm -f /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz
|
||||
ENV PATH /usr/cmake-${CMAKE_VERSION}-Linux-x86_64/bin:$PATH
|
||||
|
||||
## Boost
|
||||
ARG BOOST_VERSION=1_68_0
|
||||
ARG BOOST_VERSION_DOT=1.68.0
|
||||
ARG BOOST_HASH=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
|
||||
RUN set -ex \
|
||||
&& curl -s -L -o boost_${BOOST_VERSION}.tar.bz2 https://dl.bintray.com/boostorg/release/${BOOST_VERSION_DOT}/source/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
|
||||
&& tar -xvf boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& rm -f boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& cd boost_${BOOST_VERSION} \
|
||||
&& ./bootstrap.sh --prefix=${PREFIX}
|
||||
|
||||
ENV HOST_PATH $PATH
|
||||
ENV PATH $TOOLCHAIN_DIR/aarch64-linux-android/bin:$TOOLCHAIN_DIR/bin:$PATH
|
||||
|
||||
ARG NPROC=1
|
||||
|
||||
# Build iconv for lib boost locale
|
||||
ENV ICONV_VERSION 1.15
|
||||
ENV ICONV_HASH ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
|
||||
RUN curl -s -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& echo "${ICONV_HASH} libiconv-${ICONV_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& rm -f libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& cd libiconv-${ICONV_VERSION} \
|
||||
&& CC=aarch64-linux-android-clang CXX=aarch64-linux-android-clang++ ./configure --build=x86_64-linux-gnu --host=aarch64-linux-android --prefix=${PREFIX} --disable-rpath \
|
||||
&& make -j${NPROC} && make install
|
||||
|
||||
## Build BOOST
|
||||
RUN cd boost_${BOOST_VERSION} \
|
||||
&& ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} install -j${NPROC}
|
||||
|
||||
#Note : we build openssl because the default lacks DSA1
|
||||
|
||||
# download, configure and make Zlib
|
||||
ENV ZLIB_VERSION 1.2.11
|
||||
ENV ZLIB_HASH c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
||||
RUN curl -s -O https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& rm zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& mv zlib-${ZLIB_VERSION} zlib \
|
||||
&& cd zlib && CC=clang CXX=clang++ ./configure --static \
|
||||
&& make -j${NPROC}
|
||||
|
||||
# open ssl
|
||||
ARG OPENSSL_VERSION=1.0.2p
|
||||
ARG OPENSSL_HASH=50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
|
||||
RUN curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& cd openssl-${OPENSSL_VERSION} \
|
||||
&& sed -i -e "s/mandroid/target\ aarch64\-linux\-android/" Configure \
|
||||
&& CC=clang CXX=clang++ \
|
||||
./Configure android \
|
||||
no-asm \
|
||||
no-shared --static \
|
||||
--with-zlib-include=${WORKDIR}/zlib/include --with-zlib-lib=${WORKDIR}/zlib/lib \
|
||||
--prefix=${PREFIX} --openssldir=${PREFIX} \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# ZMQ
|
||||
ARG ZMQ_VERSION=master
|
||||
ARG ZMQ_HASH=501d0815bf2b0abb93be8214fc66519918ef6c40
|
||||
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \
|
||||
&& cd libzmq \
|
||||
&& git checkout ${ZMQ_HASH} \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=aarch64-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# Sodium
|
||||
ARG SODIUM_VERSION=1.0.16
|
||||
ARG SODIUM_HASH=675149b9b8b66ff44152553fb3ebf9858128363d
|
||||
RUN set -ex \
|
||||
&& git clone https://github.com/jedisct1/libsodium.git -b ${SODIUM_VERSION} \
|
||||
&& cd libsodium \
|
||||
&& test `git rev-parse HEAD` = ${SODIUM_HASH} || exit 1 \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=aarch64-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
COPY . /src
|
||||
ARG NPROC=4
|
||||
RUN set -ex \
|
||||
&& cd /src \
|
||||
&& CMAKE_INCLUDE_PATH="${PREFIX}/include" \
|
||||
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
|
||||
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \
|
||||
USE_SINGLE_BUILDDIR=1 \
|
||||
PATH=${HOST_PATH} make release-static-android-armv8-wallet_api -j${NPROC}
|
||||
|
||||
RUN set -ex \
|
||||
&& cd /src/build/release \
|
||||
&& find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
|
@ -0,0 +1,140 @@
|
|||
FROM debian:stable
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip automake build-essential curl file pkg-config git python libtool libtinfo5
|
||||
|
||||
WORKDIR /opt/android
|
||||
## INSTALL ANDROID SDK
|
||||
ENV ANDROID_SDK_REVISION 4333796
|
||||
ENV ANDROID_SDK_HASH 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
|
||||
RUN curl -s -O https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& echo "${ANDROID_SDK_HASH} sdk-tools-linux-${ANDROID_SDK_REVISION}.zip" | sha256sum -c \
|
||||
&& unzip sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
|
||||
&& rm -f sdk-tools-linux-${ANDROID_SDK_REVISION}.zip
|
||||
|
||||
## INSTALL ANDROID NDK
|
||||
ENV ANDROID_NDK_REVISION 17b
|
||||
ENV ANDROID_NDK_HASH 5dfbbdc2d3ba859fed90d0e978af87c71a91a5be1f6e1c40ba697503d48ccecd
|
||||
RUN curl -s -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& echo "${ANDROID_NDK_HASH} android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip" | sha256sum -c \
|
||||
&& unzip android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
|
||||
&& rm -f android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip
|
||||
|
||||
ENV WORKDIR /opt/android
|
||||
ENV ANDROID_SDK_ROOT ${WORKDIR}/tools
|
||||
ENV ANDROID_NDK_ROOT ${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
|
||||
ENV PREFIX /opt/android/prefix
|
||||
|
||||
ENV TOOLCHAIN_DIR ${WORKDIR}/toolchain
|
||||
RUN ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \
|
||||
--arch x86_64 \
|
||||
--api 21 \
|
||||
--install-dir ${TOOLCHAIN_DIR} \
|
||||
--stl=libc++
|
||||
|
||||
#INSTALL cmake
|
||||
ENV CMAKE_VERSION 3.12.1
|
||||
RUN cd /usr \
|
||||
&& curl -s -O https://cmake.org/files/v3.12/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& tar -xzf /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz \
|
||||
&& rm -f /usr/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz
|
||||
ENV PATH /usr/cmake-${CMAKE_VERSION}-Linux-x86_64/bin:$PATH
|
||||
|
||||
## Boost
|
||||
ARG BOOST_VERSION=1_68_0
|
||||
ARG BOOST_VERSION_DOT=1.68.0
|
||||
ARG BOOST_HASH=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
|
||||
RUN set -ex \
|
||||
&& curl -s -L -o boost_${BOOST_VERSION}.tar.bz2 https://dl.bintray.com/boostorg/release/${BOOST_VERSION_DOT}/source/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
|
||||
&& tar -xvf boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& rm -f boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& cd boost_${BOOST_VERSION} \
|
||||
&& ./bootstrap.sh --prefix=${PREFIX}
|
||||
|
||||
ENV HOST_PATH $PATH
|
||||
ENV PATH $TOOLCHAIN_DIR/x86_64-linux-android/bin:$TOOLCHAIN_DIR/bin:$PATH
|
||||
|
||||
ARG NPROC=1
|
||||
|
||||
# Build iconv for lib boost locale
|
||||
ENV ICONV_VERSION 1.15
|
||||
ENV ICONV_HASH ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
|
||||
RUN curl -s -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& echo "${ICONV_HASH} libiconv-${ICONV_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& rm -f libiconv-${ICONV_VERSION}.tar.gz \
|
||||
&& cd libiconv-${ICONV_VERSION} \
|
||||
&& CC=x86_64-linux-android-clang CXX=x86_64-linux-android-clang++ ./configure --build=x86_64-linux-gnu --host=x86_64-linux-android --prefix=${PREFIX} --disable-rpath \
|
||||
&& make -j${NPROC} && make install
|
||||
|
||||
## Build BOOST
|
||||
RUN cd boost_${BOOST_VERSION} \
|
||||
&& ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} install -j${NPROC}
|
||||
|
||||
#Note : we build openssl because the default lacks DSA1
|
||||
|
||||
# download, configure and make Zlib
|
||||
ENV ZLIB_VERSION 1.2.11
|
||||
ENV ZLIB_HASH c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
||||
RUN curl -s -O https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& rm zlib-${ZLIB_VERSION}.tar.gz \
|
||||
&& mv zlib-${ZLIB_VERSION} zlib \
|
||||
&& cd zlib && CC=clang CXX=clang++ ./configure --static \
|
||||
&& make -j${NPROC}
|
||||
|
||||
# open ssl
|
||||
ARG OPENSSL_VERSION=1.0.2p
|
||||
ARG OPENSSL_HASH=50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
|
||||
RUN curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
|
||||
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
|
||||
&& cd openssl-${OPENSSL_VERSION} \
|
||||
&& sed -i -e "s/mandroid/target\ x86_64\-linux\-android/" Configure \
|
||||
&& CC=clang CXX=clang++ \
|
||||
./Configure android \
|
||||
no-asm \
|
||||
no-shared --static \
|
||||
--with-zlib-include=${WORKDIR}/zlib/include --with-zlib-lib=${WORKDIR}/zlib/lib \
|
||||
--prefix=${PREFIX} --openssldir=${PREFIX} \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# ZMQ
|
||||
ARG ZMQ_VERSION=master
|
||||
ARG ZMQ_HASH=501d0815bf2b0abb93be8214fc66519918ef6c40
|
||||
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \
|
||||
&& cd libzmq \
|
||||
&& git checkout ${ZMQ_HASH} \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=x86_64-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
# Sodium
|
||||
ARG SODIUM_VERSION=1.0.16
|
||||
ARG SODIUM_HASH=675149b9b8b66ff44152553fb3ebf9858128363d
|
||||
RUN set -ex \
|
||||
&& git clone https://github.com/jedisct1/libsodium.git -b ${SODIUM_VERSION} \
|
||||
&& cd libsodium \
|
||||
&& test `git rev-parse HEAD` = ${SODIUM_HASH} || exit 1 \
|
||||
&& ./autogen.sh \
|
||||
&& CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=x86_64-linux-android --enable-static --disable-shared \
|
||||
&& make -j${NPROC} \
|
||||
&& make install
|
||||
|
||||
COPY . /src
|
||||
ARG NPROC=4
|
||||
RUN set -ex \
|
||||
&& cd /src \
|
||||
&& CMAKE_INCLUDE_PATH="${PREFIX}/include" \
|
||||
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
|
||||
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \
|
||||
USE_SINGLE_BUILDDIR=1 \
|
||||
PATH=${HOST_PATH} make release-static-android-x86_64-wallet_api -j${NPROC}
|
||||
|
||||
RUN set -ex \
|
||||
&& cd /src/build/release \
|
||||
&& find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
|
@ -1,87 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# http://wiki.openssl.org/index.php/Android
|
||||
#
|
||||
# needs ANDROID_NDK_ROOT set correctly (e.g. to /opt/android/android-ndk-r15c)
|
||||
|
||||
set -e
|
||||
|
||||
SRC_DIR=$EXTERNAL_LIBS_BUILD_ROOT/android-openssl
|
||||
TARGET_DIR=$EXTERNAL_LIBS_ROOT/openssl
|
||||
|
||||
archs=(arm arm64 x86 x86_64)
|
||||
|
||||
for arch in ${archs[@]}; do
|
||||
xLIB="/lib"
|
||||
case ${arch} in
|
||||
"arm")
|
||||
_ANDROID_TARGET_SELECT=arch-arm
|
||||
_ANDROID_ARCH=arch-arm
|
||||
_ANDROID_EABI=arm-linux-androideabi-4.9
|
||||
_ANDROID_EABI_INC=arm-linux-androideabi
|
||||
configure_platform="android-armv7" ;;
|
||||
"arm64")
|
||||
_ANDROID_TARGET_SELECT=arch-arm64-v8a
|
||||
_ANDROID_ARCH=arch-arm64
|
||||
_ANDROID_EABI=aarch64-linux-android-4.9
|
||||
_ANDROID_EABI_INC=aarch64-linux-android
|
||||
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
|
||||
_ANDROID_EABI=x86_64-4.9
|
||||
_ANDROID_EABI_INC=x86_64-linux-android
|
||||
xLIB="/lib64"
|
||||
configure_platform="linux-generic64" ;;
|
||||
*)
|
||||
configure_platform="linux-elf" ;;
|
||||
esac
|
||||
|
||||
TARGET_LIB_DIR=$TARGET_DIR/$arch/lib
|
||||
|
||||
if [ -f "$TARGET_LIB_DIR/libcrypto.a" ] && [ -f "$TARGET_LIB_DIR/libssl.a" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
mkdir -p $TARGET_LIB_DIR
|
||||
|
||||
. ./setenv-android-mod.sh
|
||||
|
||||
echo "CROSS COMPILE ENV : $CROSS_COMPILE"
|
||||
cd openssl-OpenSSL_1_0_2l
|
||||
|
||||
xCFLAGS="-DSHARED_EXTENSION=.so -fPIC -DOPENSSL_PIC -DDSO_DLFCN -DHAVE_DLFCN_H -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
|
||||
|
||||
# patch SONAME
|
||||
|
||||
perl -pi -e 's/SHLIB_EXT=\.so\.\$\(SHLIB_MAJOR\)\.\$\(SHLIB_MINOR\)/SHLIB_EXT=\.so/g' Makefile
|
||||
perl -pi -e 's/SHARED_LIBS_LINK_EXTS=\.so\.\$\(SHLIB_MAJOR\) \.so//g' Makefile
|
||||
# quote injection for proper SONAME, fuck...
|
||||
perl -pi -e 's/SHLIB_MAJOR=1/SHLIB_MAJOR=`/g' Makefile
|
||||
perl -pi -e 's/SHLIB_MINOR=0.0/SHLIB_MINOR=`/g' Makefile
|
||||
|
||||
make clean
|
||||
make depend
|
||||
make -j 4 all
|
||||
|
||||
file libcrypto.so
|
||||
file libssl.so
|
||||
cp libcrypto.a $TARGET_LIB_DIR
|
||||
cp libssl.a $TARGET_LIB_DIR
|
||||
|
||||
cp -aL $SRC_DIR/openssl-OpenSSL_1_0_2l/include/openssl/ $TARGET_DIR/include
|
||||
# ln -sf $TARGET_DIR/include $TARGET_DIR/arm/include
|
||||
|
||||
cd ..
|
||||
done
|
||||
exit 0
|
||||
|
|
@ -1,269 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Cross-compile environment for Android on ARMv7 and x86
|
||||
#
|
||||
# Contents licensed under the terms of the OpenSSL license
|
||||
# http://www.openssl.org/source/license.html
|
||||
#
|
||||
# See http://wiki.openssl.org/index.php/FIPS_Library_and_Android
|
||||
# and http://wiki.openssl.org/index.php/Android
|
||||
#####################################################################
|
||||
|
||||
# Set ANDROID_NDK_ROOT to you NDK location. For example,
|
||||
# /opt/android-ndk-r8e or /opt/android-ndk-r9. This can be done in a
|
||||
# login script. If ANDROID_NDK_ROOT is not specified, the script will
|
||||
# try to pick it up with the value of _ANDROID_NDK_ROOT below. If
|
||||
# ANDROID_NDK_ROOT is set, then the value is ignored.
|
||||
# _ANDROID_NDK="android-ndk-r8e"
|
||||
_ANDROID_NDK="android-ndk-r18"
|
||||
# _ANDROID_NDK="android-ndk-r10"
|
||||
|
||||
# Set _ANDROID_EABI to the EABI you want to use. You can find the
|
||||
# list in $ANDROID_NDK_ROOT/toolchains. This value is always used.
|
||||
# _ANDROID_EABI="x86-4.6"
|
||||
# _ANDROID_EABI="arm-linux-androideabi-4.6"
|
||||
#_ANDROID_EABI="arm-linux-androideabi-4.9"
|
||||
|
||||
# Set _ANDROID_ARCH to the architecture you are building for.
|
||||
# This value is always used.
|
||||
# _ANDROID_ARCH=arch-x86
|
||||
#_ANDROID_ARCH=arch-arm
|
||||
|
||||
# Set _ANDROID_API to the API you want to use. You should set it
|
||||
# to one of: android-14, android-9, android-8, android-14, android-5
|
||||
# android-4, or android-3. You can't set it to the latest (for
|
||||
# example, API-17) because the NDK does not supply the platform. At
|
||||
# Android 5.0, there will likely be another platform added (android-22?).
|
||||
# This value is always used.
|
||||
# _ANDROID_API="android-14"
|
||||
#_ANDROID_API="android-18"
|
||||
# _ANDROID_API="android-21"
|
||||
_ANDROID_API="android-21"
|
||||
|
||||
#####################################################################
|
||||
|
||||
# If the user did not specify the NDK location, try and pick it up.
|
||||
# We expect something like ANDROID_NDK_ROOT=/opt/android-ndk-r8e
|
||||
# or ANDROID_NDK_ROOT=/usr/local/android-ndk-r8e.
|
||||
|
||||
if [ -z "$ANDROID_NDK_ROOT" ]; then
|
||||
|
||||
_ANDROID_NDK_ROOT=""
|
||||
if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/usr/local/$_ANDROID_NDK" ]; then
|
||||
_ANDROID_NDK_ROOT="/usr/local/$_ANDROID_NDK"
|
||||
fi
|
||||
|
||||
if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/opt/$_ANDROID_NDK" ]; then
|
||||
_ANDROID_NDK_ROOT="/opt/$_ANDROID_NDK"
|
||||
fi
|
||||
|
||||
if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "$HOME/$_ANDROID_NDK" ]; then
|
||||
_ANDROID_NDK_ROOT="$HOME/$_ANDROID_NDK"
|
||||
fi
|
||||
|
||||
if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "$PWD/$_ANDROID_NDK" ]; then
|
||||
_ANDROID_NDK_ROOT="$PWD/$_ANDROID_NDK"
|
||||
fi
|
||||
|
||||
# If a path was set, then export it
|
||||
if [ ! -z "$_ANDROID_NDK_ROOT" ] && [ -d "$_ANDROID_NDK_ROOT" ]; then
|
||||
export ANDROID_NDK_ROOT="$_ANDROID_NDK_ROOT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Error checking
|
||||
# ANDROID_NDK_ROOT should always be set by the user (even when not running this script)
|
||||
# http://groups.google.com/group/android-ndk/browse_thread/thread/a998e139aca71d77
|
||||
if [ -z "$ANDROID_NDK_ROOT" ] || [ ! -d "$ANDROID_NDK_ROOT" ]; then
|
||||
echo "Error: ANDROID_NDK_ROOT is not a valid path. Please edit this script."
|
||||
# echo "$ANDROID_NDK_ROOT"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
# Error checking
|
||||
if [ ! -d "$ANDROID_NDK_ROOT/toolchains" ]; then
|
||||
echo "Error: ANDROID_NDK_ROOT/toolchains is not a valid path. Please edit this script."
|
||||
# echo "$ANDROID_NDK_ROOT/toolchains"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
# Error checking
|
||||
if [ ! -d "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI" ]; then
|
||||
echo "Error: ANDROID_EABI is not a valid path. Please edit this script."
|
||||
# echo "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
# Based on ANDROID_NDK_ROOT, try and pick up the required toolchain. We expect something like:
|
||||
# /opt/android-ndk-r83/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86_64/bin
|
||||
# Once we locate the toolchain, we add it to the PATH. Note: this is the 'hard way' of
|
||||
# doing things according to the NDK documentation for Ice Cream Sandwich.
|
||||
# https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html
|
||||
|
||||
ANDROID_TOOLCHAIN=""
|
||||
for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86"
|
||||
do
|
||||
if [ -d "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" ]; then
|
||||
ANDROID_TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Error checking
|
||||
if [ -z "$ANDROID_TOOLCHAIN" ] || [ ! -d "$ANDROID_TOOLCHAIN" ]; then
|
||||
echo "Error: ANDROID_TOOLCHAIN is not valid. Please edit this script."
|
||||
# echo "$ANDROID_TOOLCHAIN"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
case $_ANDROID_TARGET_SELECT in
|
||||
arch-arm)
|
||||
ANDROID_TOOLS="arm-linux-androideabi-gcc arm-linux-androideabi-ranlib arm-linux-androideabi-ld"
|
||||
;;
|
||||
arch-arm64-v8a)
|
||||
ANDROID_TOOLS="aarch64-linux-android-gcc aarch64-linux-android-randlib aarch64-linux-android-ld"
|
||||
;;
|
||||
arch-x86)
|
||||
ANDROID_TOOLS="i686-linux-android-gcc i686-linux-android-ranlib i686-linux-android-ld"
|
||||
;;
|
||||
arch-x86_64)
|
||||
ANDROID_TOOLS="x86_64-linux-android-gcc x86_64-linux-android-ranlib x86_64-linux-android-ld"
|
||||
;;
|
||||
arch-mips)
|
||||
ANDROID_TOOLS="mipsel-linux-android-gcc mipsel-linux-android-ranlib mipsel-linux-android-ld"
|
||||
;;
|
||||
arch-mips64)
|
||||
ANDROID_TOOLS="mips64el-linux-android-gcc mips64el-linux-android-ranlib mips64el-linux-android-ld"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR ERROR ERROR"
|
||||
;;
|
||||
esac
|
||||
|
||||
for tool in $ANDROID_TOOLS
|
||||
do
|
||||
# Error checking
|
||||
if [ ! -e "$ANDROID_TOOLCHAIN/$tool" ]; then
|
||||
echo "Error: Failed to find $tool. Please edit this script."
|
||||
# echo "$ANDROID_TOOLCHAIN/$tool"
|
||||
# exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Only modify/export PATH if ANDROID_TOOLCHAIN good
|
||||
if [ ! -z "$ANDROID_TOOLCHAIN" ]; then
|
||||
export ANDROID_TOOLCHAIN="$ANDROID_TOOLCHAIN"
|
||||
export PATH="$ANDROID_TOOLCHAIN":"$PATH"
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
# For the Android SYSROOT. Can be used on the command line with --sysroot
|
||||
# https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html
|
||||
export ANDROID_SYSROOT="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH"
|
||||
export SYSROOT="$ANDROID_SYSROOT"
|
||||
export NDK_SYSROOT="$ANDROID_SYSROOT"
|
||||
|
||||
# Error checking
|
||||
if [ -z "$ANDROID_SYSROOT" ] || [ ! -d "$ANDROID_SYSROOT" ]; then
|
||||
echo "Error: ANDROID_SYSROOT is not valid. Please edit this script."
|
||||
# echo "$ANDROID_SYSROOT"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
# If the user did not specify the FIPS_SIG location, try and pick it up
|
||||
# If the user specified a bad location, then try and pick it up too.
|
||||
if [ -z "$FIPS_SIG" ] || [ ! -e "$FIPS_SIG" ]; then
|
||||
|
||||
# Try and locate it
|
||||
_FIPS_SIG=""
|
||||
if [ -d "/usr/local/ssl/$_ANDROID_API" ]; then
|
||||
_FIPS_SIG=`find "/usr/local/ssl/$_ANDROID_API" -name incore`
|
||||
fi
|
||||
|
||||
if [ ! -e "$_FIPS_SIG" ]; then
|
||||
_FIPS_SIG=`find $PWD -name incore`
|
||||
fi
|
||||
|
||||
# If a path was set, then export it
|
||||
if [ ! -z "$_FIPS_SIG" ] && [ -e "$_FIPS_SIG" ]; then
|
||||
export FIPS_SIG="$_FIPS_SIG"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Error checking. Its OK to ignore this if you are *not* building for FIPS
|
||||
if [ -z "$FIPS_SIG" ] || [ ! -e "$FIPS_SIG" ]; then
|
||||
echo "Error: FIPS_SIG does not specify incore module. Please edit this script."
|
||||
# echo "$FIPS_SIG"
|
||||
# exit 1
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
# Most of these should be OK (MACHINE, SYSTEM, ARCH). RELEASE is ignored.
|
||||
export MACHINE=armv7
|
||||
export RELEASE=2.6.37
|
||||
export SYSTEM=android
|
||||
export ARCH=arm
|
||||
export CROSS_COMPILE="arm-linux-androideabi-"
|
||||
|
||||
if [ "$_ANDROID_TARGET_SELECT" == "arch-arm64-v8a" ]; then
|
||||
export MACHINE=armv7
|
||||
export ARCH=arm64
|
||||
export CROSS_COMPILE="aarch64-linux-android-"
|
||||
fi
|
||||
|
||||
if [ "$_ANDROID_TARGET_SELECT" == "arch-x86" ]; then
|
||||
export MACHINE=i686
|
||||
export ARCH=x86
|
||||
export CROSS_COMPILE="i686-linux-android-"
|
||||
fi
|
||||
|
||||
if [ "$_ANDROID_TARGET_SELECT" == "arch-x86_64" ]; then
|
||||
export MACHINE=i686
|
||||
export ARCH=x86_64
|
||||
export CROSS_COMPILE="x86_64-linux-android-"
|
||||
fi
|
||||
|
||||
if [ "$_ANDROID_TARGET_SELECT" == "arch-mips" ]; then
|
||||
export MACHINE=i686
|
||||
export ARCH=mips
|
||||
export CROSS_COMPILE="mipsel-linux-android-"
|
||||
fi
|
||||
|
||||
if [ "$_ANDROID_TARGET_SELECT" == "arch-mips64" ]; then
|
||||
export MACHINE=i686
|
||||
export ARCH=mips64
|
||||
export CROSS_COMPILE="mips64el-linux-android-"
|
||||
fi
|
||||
|
||||
echo "CHECK_CROSS_COMPILER = $CROSS_COMPILE"
|
||||
|
||||
# For the Android toolchain
|
||||
# https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html
|
||||
export ANDROID_SYSROOT="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH"
|
||||
export SYSROOT="$ANDROID_SYSROOT"
|
||||
export NDK_SYSROOT="$ANDROID_SYSROOT"
|
||||
export ANDROID_NDK_SYSROOT="$ANDROID_SYSROOT"
|
||||
export ANDROID_API="$_ANDROID_API"
|
||||
|
||||
# CROSS_COMPILE and ANDROID_DEV are DFW (Don't Fiddle With). Its used by OpenSSL build system.
|
||||
# export CROSS_COMPILE="arm-linux-androideabi-"
|
||||
export ANDROID_DEV="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH/usr"
|
||||
export HOSTCC=gcc
|
||||
|
||||
VERBOSE=1
|
||||
if [ ! -z "$VERBOSE" ] && [ "$VERBOSE" != "0" ]; then
|
||||
echo "ANDROID_NDK_ROOT: $ANDROID_NDK_ROOT"
|
||||
echo "ANDROID_ARCH: $_ANDROID_ARCH"
|
||||
echo "ANDROID_EABI: $_ANDROID_EABI"
|
||||
echo "ANDROID_API: $ANDROID_API"
|
||||
echo "ANDROID_SYSROOT: $ANDROID_SYSROOT"
|
||||
echo "ANDROID_TOOLCHAIN: $ANDROID_TOOLCHAIN"
|
||||
echo "FIPS_SIG: $FIPS_SIG"
|
||||
echo "CROSS_COMPILE: $CROSS_COMPILE"
|
||||
echo "ANDROID_DEV: $ANDROID_DEV"
|
||||
fi
|
|
@ -1,50 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
TARGET_DIR=$EXTERNAL_LIBS_ROOT/boost
|
||||
|
||||
version=1_58_0
|
||||
dot_version=1.58.0
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT/boost_${version}
|
||||
|
||||
if [ ! -f "b2" ]; then
|
||||
./bootstrap.sh
|
||||
fi
|
||||
|
||||
args="--build-type=minimal link=static runtime-link=static --with-chrono \
|
||||
--with-date_time --with-filesystem --with-program_options --with-regex \
|
||||
--with-serialization --with-system --with-thread \
|
||||
--includedir=$TARGET_DIR/include \
|
||||
toolset=clang threading=multi threadapi=pthread target-os=android"
|
||||
|
||||
if [ ! -d "$TARGET_DIR/arm" ]; then
|
||||
PATH=$NDK_TOOL_DIR/arm/arm-linux-androideabi/bin:$NDK_TOOL_DIR/arm/bin:$PATH \
|
||||
./b2 --build-dir=android-arm --prefix=$TARGET_DIR/arm $args \
|
||||
install
|
||||
ln -sf ../include $TARGET_DIR/arm
|
||||
fi
|
||||
|
||||
if [ ! -d "$TARGET_DIR/arm64" ]; then
|
||||
PATH=$NDK_TOOL_DIR/arm64/aarch64-linux-androideabi/bin:$NDK_TOOL_DIR/arm64/bin:$PATH \
|
||||
./b2 --build-dir=android-arm64 --prefix=$TARGET_DIR/arm64 $args \
|
||||
install
|
||||
ln -sf ../include $TARGET_DIR/arm64
|
||||
fi
|
||||
|
||||
if [ ! -d "$TARGET_DIR/x86" ]; then
|
||||
PATH=$NDK_TOOL_DIR/x86/i686-linux-android/bin:$NDK_TOOL_DIR/x86/bin:$PATH \
|
||||
./b2 --build-dir=android-x86 --prefix=$TARGET_DIR/x86 $args \
|
||||
install
|
||||
ln -sf ../include $TARGET_DIR/x86
|
||||
fi
|
||||
|
||||
if [ ! -d "$TARGET_DIR/x86_64" ]; then
|
||||
PATH=$NDK_TOOL_DIR/x86_64/x86_64-linux-android/bin:$NDK_TOOL_DIR/x86_64/bin:$PATH \
|
||||
./b2 --build-dir=android-x86_64 --prefix=$TARGET_DIR/x86_64 $args \
|
||||
install
|
||||
ln -sf ../include $TARGET_DIR/x86_64
|
||||
fi
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT
|
||||
|
||||
version=1_58_0
|
||||
dot_version=1.58.0
|
||||
|
||||
if [ ! -f "boost_${version}.tar.gz" ]; then
|
||||
wget https://downloads.sourceforge.net/project/boost/boost/${dot_version}/boost_${version}.tar.gz
|
||||
fi
|
||||
|
||||
if [ ! -d "boost_${version}" ]; then
|
||||
tar xfz boost_${version}.tar.gz
|
||||
fi
|
|
@ -1,8 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
rm -rf $EXTERNAL_LIBS_BUILD
|
||||
mkdir -p $EXTERNAL_LIBS_BUILD/src
|
|
@ -1,20 +0,0 @@
|
|||
DEFAULT_ANDROID_NDK_ROOT=/opt/android/ndk-r15c
|
||||
ANDROID_NDK_ROOT="${ANDROID_NDK_ROOT:-${DEFAULT_ANDROID_NDK_ROOT}}"
|
||||
|
||||
export ANDROID_NDK_ROOT=`realpath $ANDROID_NDK_ROOT`
|
||||
|
||||
DEFAULT_EXTERNAL_LIBS_BUILD=`pwd`/build/
|
||||
EXTERNAL_LIBS_BUILD="${EXTERNAL_LIBS_BUILD:-${DEFAULT_EXTERNAL_LIBS_BUILD}}"
|
||||
export EXTERNAL_LIBS_BUILD=${EXTERNAL_LIBS_BUILD%/}
|
||||
|
||||
DEFAULT_EXTERNAL_LIBS_BUILD_ROOT=${EXTERNAL_LIBS_BUILD}/src/
|
||||
EXTERNAL_LIBS_BUILD_ROOT="${EXTERNAL_LIBS_BUILD_ROOT:-${DEFAULT_EXTERNAL_LIBS_BUILD_ROOT}}"
|
||||
export EXTERNAL_LIBS_BUILD_ROOT=${EXTERNAL_LIBS_BUILD_ROOT%/}
|
||||
|
||||
DEFAULT_EXTERNAL_LIBS_ROOT=${EXTERNAL_LIBS_BUILD}/build/
|
||||
EXTERNAL_LIBS_ROOT="${EXTERNAL_LIBS_ROOT:-${DEFAULT_EXTERNAL_LIBS_ROOT}}"
|
||||
export EXTERNAL_LIBS_ROOT=${EXTERNAL_LIBS_ROOT%/}
|
||||
|
||||
DEFAULT_NDK_TOOL_DIR=${EXTERNAL_LIBS_BUILD}/tool/
|
||||
NDK_TOOL_DIR="${NDK_TOOL_DIR:-${DEFAULT_NDK_TOOL_DIR}}"
|
||||
export NDK_TOOL_DIR=${NDK_TOOL_DIR%/}
|
|
@ -1,44 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# -D BOOST_ROOT=/opt/android/boost_1_58_0
|
||||
|
||||
set -e
|
||||
|
||||
packages=(boost openssl monero libsodium)
|
||||
archs=(arm arm64 x86 x86_64)
|
||||
|
||||
for arch in ${archs[@]}; do
|
||||
case ${arch} in
|
||||
"arm")
|
||||
xarch="armeabi-v7a"
|
||||
;;
|
||||
"arm64")
|
||||
xarch="arm64-v8a"
|
||||
;;
|
||||
"x86")
|
||||
xarch="x86"
|
||||
;;
|
||||
"x86_64")
|
||||
xarch="x86_64"
|
||||
;;
|
||||
*)
|
||||
exit 16
|
||||
;;
|
||||
esac
|
||||
|
||||
for package in ${packages[@]}; do
|
||||
INPUT_DIR=`pwd`/build/build/$package
|
||||
OUTPUT_DIR=`pwd`/$package/lib/$xarch
|
||||
mkdir -p $OUTPUT_DIR
|
||||
rm -f $OUTPUT_DIR/*.a
|
||||
cp -a $INPUT_DIR/$arch/lib/*.a $OUTPUT_DIR
|
||||
|
||||
if [ $package = "monero" ]; then
|
||||
rm -rf $OUTPUT_DIR/../../include
|
||||
cp -a $INPUT_DIR/include $OUTPUT_DIR/../..
|
||||
fi
|
||||
|
||||
done
|
||||
done
|
||||
exit 0
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT/libsodium
|
||||
|
||||
if [ ! -f "configure" ]; then
|
||||
./autogen.sh
|
||||
fi
|
||||
|
||||
archs=(arm arm64 x86 x86_64)
|
||||
for arch in ${archs[@]}; do
|
||||
case ${arch} in
|
||||
"arm")
|
||||
target_host=arm-linux-androideabi
|
||||
;;
|
||||
"arm64")
|
||||
target_host=aarch64-linux-android
|
||||
;;
|
||||
"x86")
|
||||
target_host=i686-linux-android
|
||||
;;
|
||||
"x86_64")
|
||||
target_host=x86_64-linux-android
|
||||
;;
|
||||
*)
|
||||
exit 16
|
||||
;;
|
||||
esac
|
||||
|
||||
TARGET_DIR=$EXTERNAL_LIBS_ROOT/libsodium/$arch
|
||||
|
||||
if [ -f "$TARGET_DIR/lib/libsodium.la" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
mkdir -p $TARGET_DIR
|
||||
echo "building for ${arch}"
|
||||
|
||||
PATH=$NDK_TOOL_DIR/$arch/$target_host/bin:$NDK_TOOL_DIR/$arch/bin:$PATH \
|
||||
CC=clang CXX=clang++; \
|
||||
./configure \
|
||||
--prefix=${TARGET_DIR} \
|
||||
--host=${target_host} \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
&& make -j 4 \
|
||||
&& make install \
|
||||
&& make clean
|
||||
|
||||
done
|
||||
|
||||
exit 0
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT
|
||||
|
||||
version=1.0.16
|
||||
|
||||
if [ ! -d "libsodium" ]; then
|
||||
git clone https://github.com/jedisct1/libsodium.git -b ${version}
|
||||
else
|
||||
cd libsodium
|
||||
git checkout ${version}
|
||||
fi
|
|
@ -1,102 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT/monero
|
||||
|
||||
orig_path=$PATH
|
||||
base_dir=`pwd`
|
||||
|
||||
build_root=$EXTERNAL_LIBS_BUILD_ROOT
|
||||
lib_root=$EXTERNAL_LIBS_ROOT
|
||||
|
||||
build_type=release # or debug
|
||||
android_api=21
|
||||
archs=(arm arm64 x86 x86_64)
|
||||
|
||||
for arch in ${archs[@]}; do
|
||||
ldflags=""
|
||||
extra_cmake_flags=""
|
||||
case ${arch} in
|
||||
"arm")
|
||||
target_host=arm-linux-androideabi
|
||||
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
|
||||
|
||||
TARGET_LIB_DIR=$lib_root/monero/$arch/lib
|
||||
if [ -f "$TARGET_LIB_DIR/libwallet_api.a" ]; then
|
||||
echo "$TARGET_LIB_DIR/libwallet_api.a exists"
|
||||
continue
|
||||
fi
|
||||
|
||||
OUTPUT_DIR=$base_dir/build/$build_type.$arch
|
||||
rm -rf $OUTPUT_DIR
|
||||
mkdir -p $OUTPUT_DIR
|
||||
cd $OUTPUT_DIR
|
||||
|
||||
PATH=$NDK_TOOL_DIR/$arch/$target_host/bin:$NDK_TOOL_DIR/$arch/bin:$PATH \
|
||||
CC=clang CXX=clang++ \
|
||||
CMAKE_LIBRARY_PATH=$lib_root/libsodium/$arch/lib \
|
||||
cmake \
|
||||
-D BUILD_GUI_DEPS=1 \
|
||||
-D BUILD_TESTS=OFF \
|
||||
-D ARCH="$xarch" \
|
||||
-D STATIC=ON \
|
||||
-D BUILD_64=$sixtyfour \
|
||||
-D CMAKE_BUILD_TYPE=$build_type \
|
||||
-D CMAKE_CXX_FLAGS="-D__ANDROID_API__=$android_api" \
|
||||
-D ANDROID=true \
|
||||
-D BUILD_TAG="android" \
|
||||
-D BOOST_ROOT=$lib_root/boost/$arch \
|
||||
-D BOOST_LIBRARYDIR=$lib_root/boost/$arch/lib \
|
||||
-D OPENSSL_ROOT_DIR=$lib_root/openssl/$arch \
|
||||
-D OPENSSL_INCLUDE_DIR=$lib_root/openssl/$arch \
|
||||
-D OPENSSL_CRYPTO_LIBRARY=$lib_root/openssl/$arch/lib/libcrypto.so \
|
||||
-D OPENSSL_SSL_LIBRARY=$lib_root/openssl/$arch/lib/libssl.so \
|
||||
-D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=true \
|
||||
-D MONERUJO_HIDAPI=ON \
|
||||
-D USE_DEVICE_TREZOR=OFF \
|
||||
-D LIBSODIUM_INCLUDE_DIR=$lib_root/libsodium/$arch/include \
|
||||
$extra_cmake_flags \
|
||||
../..
|
||||
|
||||
make -j 4 wallet_api
|
||||
|
||||
find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
||||
|
||||
rm -rf $TARGET_LIB_DIR
|
||||
mkdir -p $TARGET_LIB_DIR
|
||||
cp $OUTPUT_DIR/lib/*.a $TARGET_LIB_DIR
|
||||
|
||||
TARGET_INC_DIR=$lib_root/monero/include
|
||||
rm -rf $TARGET_INC_DIR
|
||||
mkdir -p $TARGET_INC_DIR
|
||||
cp -a $base_dir/src/wallet/api/wallet2_api.h $TARGET_INC_DIR
|
||||
|
||||
cd $base_dir
|
||||
done
|
||||
|
||||
exit 0
|
|
@ -1,22 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT
|
||||
|
||||
url="https://github.com/m2049r/monero"
|
||||
version="release-v0.17.1.3-monerujo"
|
||||
|
||||
if [ ! -d "monero" ]; then
|
||||
git clone ${url} -b ${version}
|
||||
cd monero
|
||||
git submodule update --recursive --init
|
||||
else
|
||||
cd monero
|
||||
git fetch
|
||||
git checkout ${version}
|
||||
git pull
|
||||
git submodule update --recursive --init
|
||||
fi
|
|
@ -1,9 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT/android-openssl
|
||||
|
||||
./build-all-arch.sh
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cd $EXTERNAL_LIBS_BUILD_ROOT
|
||||
|
||||
if [ ! -f "OpenSSL_1_0_2l.tar.gz" ]; then
|
||||
wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_2l.tar.gz
|
||||
fi
|
||||
|
||||
if [ ! -d "android-openssl" ]; then
|
||||
mkdir android-openssl && cd android-openssl
|
||||
tar xfz ../OpenSSL_1_0_2l.tar.gz
|
||||
fi
|
|
@ -1,20 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
SRC_DIR=$EXTERNAL_LIBS_ROOT/android-openssl
|
||||
TARGET_DIR=$EXTERNAL_LIBS_ROOT/openssl
|
||||
|
||||
ln -sf $TARGET_DIR/include $NDK_TOOL_DIR/arm/sysroot/usr/include/openssl
|
||||
ln -sf $TARGET_DIR/arm/lib/*.so $NDK_TOOL_DIR/arm/sysroot/usr/lib
|
||||
|
||||
ln -sf $TARGET_DIR/include $NDK_TOOL_DIR/arm64/sysroot/usr/include/openssl
|
||||
ln -sf $TARGET_DIR/arm64/lib/*.so $NDK_TOOL_DIR/arm64/sysroot/usr/lib
|
||||
|
||||
ln -sf $TARGET_DIR/include $NDK_TOOL_DIR/x86/sysroot/usr/include/openssl
|
||||
ln -sf $TARGET_DIR/x86/lib/*.so $NDK_TOOL_DIR/x86/sysroot/usr/lib
|
||||
|
||||
ln -sf $TARGET_DIR/include $NDK_TOOL_DIR/x86_64/sysroot/usr/include/openssl
|
||||
ln -sf $TARGET_DIR/x86_64/lib/*.so $NDK_TOOL_DIR/x86_64/sysroot/usr/lib64
|
|
@ -1,7 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
cp -a script/android-openssl $EXTERNAL_LIBS_BUILD_ROOT
|
|
@ -1,20 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source script/env.sh
|
||||
|
||||
build_root=$EXTERNAL_LIBS_BUILD_ROOT
|
||||
PATH=$ANDROID_NDK_ROOT/build/tools/:$PATH
|
||||
|
||||
args="--api 21 --stl=libc++"
|
||||
archs=(arm arm64 x86 x86_64)
|
||||
|
||||
for arch in ${archs[@]}; do
|
||||
if [ ! -d "$NDK_TOOL_DIR/$arch" ]; then
|
||||
echo "installing $ANDROID_NDK_ROOT $arch $args"
|
||||
make_standalone_toolchain.py $args --arch $arch --install-dir $NDK_TOOL_DIR/$arch
|
||||
sed -i.orig "s|using ::fgetpos;|//using ::fgetpos;|" $NDK_TOOL_DIR/$arch/include/c++/4.9.x/cstdio
|
||||
sed -i.orig "s|using ::fsetpos;|//using ::fsetpos;|" $NDK_TOOL_DIR/$arch/include/c++/4.9.x/cstdio
|
||||
fi
|
||||
done
|
Loading…
Reference in New Issue