2024-03-08 23:43:34 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
HOST_ABI="$1"
|
|
|
|
|
if [[ "x$HOST_ABI" == "x" ]];
|
|
|
|
|
then
|
|
|
|
|
echo "Usage: $0 $(gcc -dumpmachine) -j$(nproc)"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
NPROC="$2"
|
|
|
|
|
|
|
|
|
|
if [[ "x$NPROC" == "x" ]];
|
|
|
|
|
then
|
|
|
|
|
echo "Usage: $0 $(gcc -dumpmachine) -j$(nproc)"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2024-03-10 02:22:11 +01:00
|
|
|
cd $(dirname $0)
|
|
|
|
|
WDIR=$PWD
|
2024-03-08 23:43:34 +01:00
|
|
|
CC=""
|
|
|
|
|
CXX=""
|
|
|
|
|
case "$HOST_ABI" in
|
|
|
|
|
"x86_64-linux-gnu")
|
2024-03-15 22:13:28 +01:00
|
|
|
export CC="${HOST_ABI}-gcc"
|
|
|
|
|
export CXX="${HOST_ABI}-g++"
|
2024-03-08 23:43:34 +01:00
|
|
|
;;
|
|
|
|
|
"i686-linux-gnu")
|
2024-03-15 22:13:28 +01:00
|
|
|
export CC="${HOST_ABI}-gcc"
|
|
|
|
|
export CXX="${HOST_ABI}-g++"
|
2024-03-08 23:43:34 +01:00
|
|
|
;;
|
|
|
|
|
"aarch64-linux-gnu")
|
2024-03-15 22:13:28 +01:00
|
|
|
export CC="${HOST_ABI}-gcc"
|
|
|
|
|
export CXX="${HOST_ABI}-g++"
|
2024-03-08 23:43:34 +01:00
|
|
|
;;
|
2024-03-10 02:22:11 +01:00
|
|
|
"x86_64-linux-android")
|
2024-03-15 22:13:28 +01:00
|
|
|
export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
|
|
|
|
|
export CC=${HOST_ABI}-clang
|
|
|
|
|
export CXX=${HOST_ABI}-clang++
|
2024-03-10 02:22:11 +01:00
|
|
|
;;
|
|
|
|
|
"i686-linux-android")
|
2024-03-15 22:13:28 +01:00
|
|
|
export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
|
|
|
|
|
export CC=${HOST_ABI}-clang
|
|
|
|
|
export CXX=${HOST_ABI}-clang++
|
2024-03-10 02:22:11 +01:00
|
|
|
;;
|
|
|
|
|
"aarch64-linux-android")
|
2024-03-15 22:13:28 +01:00
|
|
|
export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
|
|
|
|
|
export CC=${HOST_ABI}-clang
|
|
|
|
|
export CXX=${HOST_ABI}-clang++
|
2024-03-10 02:22:11 +01:00
|
|
|
;;
|
|
|
|
|
"arm-linux-androideabi")
|
2024-03-15 22:13:28 +01:00
|
|
|
export PATH="$WDIR/monero/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
|
|
|
|
|
export CC=${HOST_ABI}-clang
|
|
|
|
|
export CXX=${HOST_ABI}-clang++
|
2024-03-10 02:22:11 +01:00
|
|
|
;;
|
|
|
|
|
"i686-w64-mingw32")
|
|
|
|
|
update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
|
|
|
|
|
update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
|
|
|
|
|
export CC=i686-w64-mingw32-gcc-posix
|
|
|
|
|
export CXX=i686-w64-mingw32-g++-posix
|
|
|
|
|
;;
|
|
|
|
|
"x86_64-w64-mingw32")
|
2024-03-22 14:21:57 +01:00
|
|
|
$SUDO update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
|
|
|
|
|
$SUDO update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
2024-03-10 02:22:11 +01:00
|
|
|
export CC=x86_64-w64-mingw32-gcc-posix
|
|
|
|
|
export CXX=x86_64-w64-mingw32-g++-posix
|
|
|
|
|
;;
|
|
|
|
|
"x86_64-apple-darwin11")
|
|
|
|
|
export PATH="$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
|
|
|
|
|
export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/monero/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/monero/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
|
|
|
|
|
export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.7 --sysroot /build/monero/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B/build/monero/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
|
|
|
|
|
;;
|
2024-03-08 23:43:34 +01:00
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if [[ "x$CC" == "x" ]];
|
|
|
|
|
then
|
|
|
|
|
echo "No C compiler found for abi: '$HOST_ABI'. Adjust the switch case in $0"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "x$CXX" == "x" ]];
|
|
|
|
|
then
|
|
|
|
|
echo "No C++ compiler found for abi: '$HOST_ABI'. Adjust the switch case in $0"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2024-03-10 02:22:11 +01:00
|
|
|
|
2024-03-08 23:43:34 +01:00
|
|
|
pushd monero/contrib/depends
|
2024-03-15 22:13:28 +01:00
|
|
|
CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
|
2024-03-08 23:43:34 +01:00
|
|
|
popd
|
|
|
|
|
|
2024-03-22 14:21:57 +01:00
|
|
|
for buildType in Release Debug
|
|
|
|
|
do
|
|
|
|
|
if [[ "x$buildType" == "xDebug" && "$HOST_ABI" == "x86_64-w64-mingw32" ]];
|
2024-03-15 22:13:28 +01:00
|
|
|
then
|
2024-03-22 14:21:57 +01:00
|
|
|
continue
|
2024-03-15 22:13:28 +01:00
|
|
|
fi
|
2024-03-22 14:21:57 +01:00
|
|
|
if [[ "x$buildType" == "xDebug" && "$HOST_ABI" == "i686-w64-mingw32" ]];
|
|
|
|
|
then
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
rm -rf monero/build/${HOST_ABI} 2>/dev/null || true
|
|
|
|
|
mkdir -p monero/build/${HOST_ABI}
|
|
|
|
|
pushd monero/build/${HOST_ABI}
|
|
|
|
|
case "$HOST_ABI" in
|
|
|
|
|
"x86_64-linux-gnu")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x64" -D CMAKE_SYSTEM_NAME="Linux" ../..
|
|
|
|
|
;;
|
|
|
|
|
"i686-linux-gnu")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="i686" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x86" -D CMAKE_SYSTEM_NAME="Linux" ../..
|
|
|
|
|
;;
|
|
|
|
|
"aarch64-linux-gnu")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-armv8" -D CMAKE_SYSTEM_NAME="Linux" ../..
|
|
|
|
|
;;
|
|
|
|
|
"x86_64-linux-android")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86_64" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86_64" ../..
|
|
|
|
|
;;
|
|
|
|
|
"i686-linux-android")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86" ../..
|
|
|
|
|
;;
|
|
|
|
|
"aarch64-linux-android")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv8" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="arm64-v8a" ../..
|
|
|
|
|
;;
|
|
|
|
|
"arm-linux-androideabi")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv7" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="armeabi-v7a" ../..
|
|
|
|
|
;;
|
|
|
|
|
"x86_64-w64-mingw32")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="win-x64" ../..
|
|
|
|
|
;;
|
|
|
|
|
"i686-w64-mingw32")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="win-x32" ../..
|
|
|
|
|
;;
|
|
|
|
|
"x86_64-apple-darwin11")
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="mac-x64" ../..
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "we don't know how to compile monero for '$HOST_ABI'"
|
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
CC=gcc CXX=g++ make wallet_api $NPROC
|
|
|
|
|
popd
|
|
|
|
|
pushd libbridge
|
|
|
|
|
rm -rf build/${HOST_ABI} || true
|
|
|
|
|
mkdir -p build/${HOST_ABI} -p
|
|
|
|
|
cd build/${HOST_ABI}
|
|
|
|
|
|
|
|
|
|
env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_BUILD_TYPE=$buildType -DHOST_ABI=${HOST_ABI} ../..
|
|
|
|
|
CC="${CC}" CXX="${CXX}" make $NPROC
|
|
|
|
|
popd
|
|
|
|
|
|
|
|
|
|
mkdir release 2>/dev/null || true
|
|
|
|
|
pushd release
|
|
|
|
|
APPENDIX=""
|
|
|
|
|
if [[ "x$buildType" == "xDebug" ]];
|
|
|
|
|
then
|
|
|
|
|
APPENDIX="DEBUG."
|
|
|
|
|
fi
|
|
|
|
|
if [[ "${HOST_ABI}" == "x86_64-w64-mingw32" || "${HOST_ABI}" == "i686-w64-mingw32" ]];
|
|
|
|
|
then
|
|
|
|
|
APPENDIX="${APPENDIX}dll"
|
|
|
|
|
cp ../monero/build/${HOST_ABI}/external/polyseed/libpolyseed.${APPENDIX} ${HOST_ABI}_libpolyseed.${APPENDIX}
|
|
|
|
|
xz -e ${HOST_ABI}_libpolyseed.${APPENDIX}
|
|
|
|
|
else
|
|
|
|
|
APPENDIX="${APPENDIX}so"
|
|
|
|
|
fi
|
|
|
|
|
xz -e ../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}
|
|
|
|
|
mv ../libbridge/build/${HOST_ABI}/libwallet2_api_c.${APPENDIX}.xz ${HOST_ABI}_libwallet2_api_c.${APPENDIX}.xz
|
|
|
|
|
popd
|
|
|
|
|
done
|