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)
|
add_library(sodium STATIC IMPORTED)
|
||||||
set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
||||||
${EXTERNAL_LIBS_DIR}/libsodium/lib/${ANDROID_ABI}/libsodium.a)
|
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libsodium.a)
|
||||||
|
|
||||||
############
|
############
|
||||||
# OpenSSL
|
# OpenSSL
|
||||||
|
@ -21,11 +21,11 @@ set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
||||||
|
|
||||||
add_library(crypto STATIC IMPORTED)
|
add_library(crypto STATIC IMPORTED)
|
||||||
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(ssl STATIC IMPORTED)
|
||||||
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
||||||
${EXTERNAL_LIBS_DIR}/openssl/lib/${ANDROID_ABI}/libssl.a)
|
${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/libssl.a)
|
||||||
|
|
||||||
############
|
############
|
||||||
# Boost
|
# Boost
|
||||||
|
@ -33,39 +33,39 @@ set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
||||||
|
|
||||||
add_library(boost_chrono STATIC IMPORTED)
|
add_library(boost_chrono STATIC IMPORTED)
|
||||||
set_target_properties(boost_chrono PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_date_time STATIC IMPORTED)
|
||||||
set_target_properties(boost_date_time PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_filesystem STATIC IMPORTED)
|
||||||
set_target_properties(boost_filesystem PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_program_options STATIC IMPORTED)
|
||||||
set_target_properties(boost_program_options PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_regex STATIC IMPORTED)
|
||||||
set_target_properties(boost_regex PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_serialization STATIC IMPORTED)
|
||||||
set_target_properties(boost_serialization PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_system STATIC IMPORTED)
|
||||||
set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_thread STATIC IMPORTED)
|
||||||
set_target_properties(boost_thread PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(boost_wserialization STATIC IMPORTED)
|
||||||
set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
|
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
|
# Monero
|
||||||
|
@ -73,99 +73,103 @@ set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
|
||||||
|
|
||||||
add_library(wallet_api STATIC IMPORTED)
|
add_library(wallet_api STATIC IMPORTED)
|
||||||
set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(wallet STATIC IMPORTED)
|
||||||
set_target_properties(wallet PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(cryptonote_core STATIC IMPORTED)
|
||||||
set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(cryptonote_basic STATIC IMPORTED)
|
||||||
set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(mnemonics STATIC IMPORTED)
|
||||||
set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(common STATIC IMPORTED)
|
||||||
set_target_properties(common PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(cncrypto STATIC IMPORTED)
|
||||||
set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(ringct STATIC IMPORTED)
|
||||||
set_target_properties(ringct PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(ringct_basic STATIC IMPORTED)
|
||||||
set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(blockchain_db STATIC IMPORTED)
|
||||||
set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(lmdb STATIC IMPORTED)
|
||||||
set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(easylogging STATIC IMPORTED)
|
||||||
set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(unbound STATIC IMPORTED)
|
||||||
set_target_properties(unbound PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(epee STATIC IMPORTED)
|
||||||
set_target_properties(epee PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(blocks STATIC IMPORTED)
|
||||||
set_target_properties(blocks PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(checkpoints STATIC IMPORTED)
|
||||||
set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(device STATIC IMPORTED)
|
||||||
set_target_properties(device PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(device_trezor STATIC IMPORTED)
|
||||||
set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(multisig STATIC IMPORTED)
|
||||||
set_target_properties(multisig PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(version STATIC IMPORTED)
|
||||||
set_target_properties(version PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(net STATIC IMPORTED)
|
||||||
set_target_properties(net PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(hardforks STATIC IMPORTED)
|
||||||
set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(randomx STATIC IMPORTED)
|
||||||
set_target_properties(randomx PROPERTIES IMPORTED_LOCATION
|
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)
|
add_library(rpc_base STATIC IMPORTED)
|
||||||
set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
|
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
|
# System
|
||||||
|
@ -173,10 +177,16 @@ set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
|
||||||
|
|
||||||
find_library( log-lib log )
|
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})
|
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
|
target_link_libraries( monerujo
|
||||||
|
|
||||||
wallet_api
|
wallet_api
|
||||||
|
@ -203,6 +213,7 @@ target_link_libraries( monerujo
|
||||||
randomx
|
randomx
|
||||||
hardforks
|
hardforks
|
||||||
rpc_base
|
rpc_base
|
||||||
|
${EXTRA_LIBS}
|
||||||
|
|
||||||
boost_chrono
|
boost_chrono
|
||||||
boost_date_time
|
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 \
|
# ln -s /opt/monero monero
|
||||||
#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
|
|
||||||
|
|
||||||
#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
|
armeabi-v7a: monero
|
||||||
script/monero-build.sh
|
-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:
|
x86_64: monero
|
||||||
script/monero-fetch.sh
|
-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:
|
x86: monero
|
||||||
script/toolchain-build.sh
|
-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
|
include: monero
|
||||||
script/openssl-build.sh
|
-mkdir include
|
||||||
|
cp monero/src/wallet/api/wallet2_api.h include/
|
||||||
|
|
||||||
openssl_sysroot:
|
VERSION:
|
||||||
script/openssl-install.sh
|
echo MONERUJO `git -C . branch | grep "^\*" | sed 's/^..//'` with MONERO `git -C monero branch | grep "^\*" | sed 's/^..//'` > VERSION
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
clean:
|
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
|
distclean: clean
|
||||||
find monero -type f -a ! -name ".gitignore" -a ! -name "wallet2_api.h" -exec rm {} \;
|
-docker image rm monero-android-arm64 -f
|
||||||
find boost -type f -a ! -name ".gitignore" -exec rm {} \;
|
-docker image rm monero-android-arm32 -f
|
||||||
find libsodium -type f -a ! -name ".gitignore" -exec rm {} \;
|
-docker image rm monero-android-x86_64 -f
|
||||||
find openssl -type f -a ! -name ".gitignore" -exec rm {} \;
|
-docker image rm monero-android-x86 -f
|
||||||
|
-rm monero
|
||||||
|
|
||||||
archive: libsodium openssl boost monero
|
monero:
|
||||||
echo "Packing external-libs"
|
$(error Please ln -s monero)
|
||||||
tar czfv libsodium openssl boost monero external-libs.tgz
|
|
||||||
|
.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