#!/usr/bin/env bash # Copyright (c) 2016-2026 The Hush developers # Distributed under the GPLv3 software license, see the accompanying # file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html # # Native macOS build script. # Requires: Xcode Command Line Tools, cmake, autoconf, automake, libtool, pkgconfig # Optional: Homebrew GCC (brew install gcc) for better C++ compatibility set -eu -o pipefail # --- Detect architecture --- ARCH=$(uname -m) # arm64 or x86_64 # --- Detect compiler --- # Prefer Homebrew GCC if available, otherwise use system clang if command -v brew &>/dev/null; then # Find newest Homebrew GCC version GCC_PATH=$(ls -d /opt/homebrew/bin/gcc-[0-9]* /usr/local/bin/gcc-[0-9]* 2>/dev/null | sort -t- -k2 -n | tail -1 || true) GXX_PATH=$(echo "$GCC_PATH" | sed 's/gcc-/g++-/') fi if [ -n "${GCC_PATH:-}" ] && [ -x "$GCC_PATH" ]; then export CC="$GCC_PATH" export CXX="$GXX_PATH" echo "Using Homebrew GCC: $CC / $CXX" EXTRA_CXXFLAGS="-fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -Werror -g" else export CC=clang export CXX=clang++ echo "Using system clang: $CC / $CXX" EXTRA_CXXFLAGS="-fwrapv -fno-strict-aliasing -Werror -g" fi export LIBTOOL=libtool export AR=ar export RANLIB=ranlib export STRIP=strip export OTOOL=otool export NM=nm if [ "x$*" = 'x--help' ] then cat </dev/null || true # Copy binaries cp src/hushd src/hush-cli src/hush-tx "$RELEASE_DIR/" # Copy wrapper scripts cp contrib/scripts/hush-arrakis-chain contrib/scripts/dragonxd contrib/scripts/dragonx-cli "$RELEASE_DIR/" 2>/dev/null || true # Copy required data files cp asmap.dat sapling-spend.params sapling-output.params "$RELEASE_DIR/" 2>/dev/null || true # Copy bootstrap script cp contrib/bootstrap/bootstrap-dragonx.sh "$RELEASE_DIR/" 2>/dev/null || true # Create ZIP rm -f "$RELEASE_DIR/${VERSION}-mac.zip" cd "$RELEASE_DIR" zip -9 "${VERSION}-mac.zip" * cd ../.. echo "Release package created: $RELEASE_DIR/${VERSION}-mac.zip" ls -lh "$RELEASE_DIR/${VERSION}-mac.zip"