summaryrefslogtreecommitdiff
path: root/build_single.sh
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2024-04-01 08:51:37 +0200
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2024-04-01 08:51:37 +0200
commit365c444b05d19c210ff10cdb71b80040b04bbcef (patch)
treec272e088dc7e83e93b0a08f8e3d239bc0a0f64c0 /build_single.sh
parent809019417da67feb9bb01994b9b06f6710dca7ff (diff)
feat: macos host builds
Diffstat (limited to 'build_single.sh')
-rwxr-xr-xbuild_single.sh62
1 files changed, 58 insertions, 4 deletions
diff --git a/build_single.sh b/build_single.sh
index c1aa747..a6e318d 100755
--- a/build_single.sh
+++ b/build_single.sh
@@ -1,4 +1,10 @@
#!/bin/bash
+
+function verbose_copy() {
+ echo "==> cp $1 $2"
+ cp $1 $2
+}
+
set -e
repo=$1
if [[ "x$repo" == "x" ]];
@@ -93,6 +99,10 @@ case "$HOST_ABI" in
export CC="clang -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.8 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
export CXX="clang++ -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.8 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
;;
+ "host-apple-darwin")
+ export CC="clang"
+ export CXX="clang++"
+ ;;
esac
if [[ "x$CC" == "x" ]];
@@ -106,10 +116,51 @@ then
echo "No C++ compiler found for abi: '$HOST_ABI'. Adjust the switch case in $0"
exit 1
fi
-
-
pushd $repo/contrib/depends
- CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
+ case "$HOST_ABI" in
+ "x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "arm-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11")
+ CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
+ ;;
+ "host-apple-darwin")
+ echo "===================================="
+ echo "= ="
+ echo "= CHECK README.md IF BUILD FAILS ="
+ echo "= ="
+ echo "===================================="
+ echo "WARN: using host dependencies on macos."
+ POLYSEED_DIR=../../../external/polyseed/build/${HOST_ABI}
+ rm -rf ${POLYSEED_DIR}
+ mkdir -p ${POLYSEED_DIR}
+ pushd ${POLYSEED_DIR}
+ CC="${CC}" CXX="${CXX}" cmake ../..
+ make $NPROC
+ popd
+ MACOS_LIBS_DIR="${PWD}/host-apple-darwin"
+ rm -rf ${MACOS_LIBS_DIR}
+ mkdir -p ${MACOS_LIBS_DIR}/lib
+ export HOMEBREW_PREFIX=/opt/homebrew
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_chrono-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_chrono-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_locale-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_locale-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_date_time-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_date_time-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_filesystem-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_filesystem-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_program_options-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_program_options-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_regex-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_regex-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_serialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_serialization-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_system-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_system-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_thread-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_thread-mt.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_wserialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_wserialization-mt.a
+ verbose_copy "${POLYSEED_DIR}/libpolyseed.a" ${MACOS_LIBS_DIR}/lib/libpolyseed.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libssl.a" ${MACOS_LIBS_DIR}/lib/libssl.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libcrypto.a" ${MACOS_LIBS_DIR}/lib/libcrypto.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libsodium.a" ${MACOS_LIBS_DIR}/lib/libsodium.a
+ verbose_copy "${HOMEBREW_PREFIX}/lib/libevent.a" ${MACOS_LIBS_DIR}/lib/libevent.a
+ ;;
+ *)
+ echo "Unable to build dependencies for '$HOST_ABI'."
+ exit 1
+ ;;
+ esac
popd
buildType=Release
@@ -151,6 +202,9 @@ pushd $repo/build/${HOST_ABI}
"aarch64-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="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="mac-armv8" ../..
;;
+ "host-apple-darwin")
+ env CC="${CC}" CXX="${CXX}" cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType ../..
+ ;;
*)
echo "we don't know how to compile monero for '$HOST_ABI'"
exit 1
@@ -183,7 +237,7 @@ pushd release/$repo
cp ../../$repo/build/${HOST_ABI}/external/polyseed/libpolyseed.${APPENDIX} ${HOST_ABI}_libpolyseed.${APPENDIX}
rm ${HOST_ABI}_libpolyseed.${APPENDIX}.xz || true
xz -e ${HOST_ABI}_libpolyseed.${APPENDIX}
- elif [[ "${HOST_ABI}" == "x86_64-apple-darwin11" || "${HOST_ABI}" == "aarch64-apple-darwin11" ]];
+ elif [[ "${HOST_ABI}" == "x86_64-apple-darwin11" || "${HOST_ABI}" == "aarch64-apple-darwin11" || "${HOST_ABI}" == "host-apple-darwin" ]];
then
APPENDIX="${APPENDIX}dylib"
else