- Update compiler references from gcc-8 to gcc-15 across build system (build-mac.sh, darwin.mk, Makefile_custom) - Use system Rust (rustup) instead of bundled Rust 1.32.0 for librustzcash to fix rlib linker incompatibility on macOS Sequoia - Replace deprecated std::random_shuffle with std::shuffle (net.cpp, transaction_builder.cpp, wallet.cpp) - Fix -std=gnu17 -> -std=gnu++17 for C++ targets (libzcash, libhush) - Fix nodiscard warning in glibcxx_sanity.cpp - Replace deprecated OSMemoryBarrier with std::atomic_thread_fence in LevelDB - Add -Wno-error=deprecated-declarations to CXXFLAGS for third-party headers - Fix REMAINING_ARGS unbound variable in build.sh - Add --disable-tests handling to build-mac.sh - Update README with correct macOS build dependencies and instructions
83 lines
2.0 KiB
Bash
Executable File
83 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (c) 2016-2024 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
|
|
|
|
export CC=gcc-15
|
|
export CXX=g++-15
|
|
export LIBTOOL=libtool
|
|
export AR=ar
|
|
export RANLIB=ranlib
|
|
export STRIP=strip
|
|
export OTOOL=otool
|
|
export NM=nm
|
|
|
|
set -eu -o pipefail
|
|
|
|
if [ "x$*" = 'x--help' ]
|
|
then
|
|
cat <<EOF
|
|
Usage:
|
|
|
|
$0 --help
|
|
Show this help message and exit.
|
|
|
|
$0 [ --enable-lcov ] [ MAKEARGS... ]
|
|
Build Hush and most of its transitive dependencies from
|
|
source. MAKEARGS are applied to both dependencies and Hush itself. If
|
|
--enable-lcov is passed, Hush is configured to add coverage
|
|
instrumentation, thus enabling "make cov" to work.
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
# If --enable-lcov is the first argument, enable lcov coverage support:
|
|
LCOV_ARG=''
|
|
HARDENING_ARG='--disable-hardening'
|
|
TEST_ARG=''
|
|
if [ "x${1:-}" = 'x--enable-lcov' ]
|
|
then
|
|
LCOV_ARG='--enable-lcov'
|
|
HARDENING_ARG='--disable-hardening'
|
|
shift
|
|
elif [ "x${1:-}" = 'x--disable-tests' ]
|
|
then
|
|
TEST_ARG='--enable-tests=no'
|
|
shift
|
|
fi
|
|
|
|
TRIPLET=`./depends/config.guess`
|
|
PREFIX="$(pwd)/depends/$TRIPLET"
|
|
|
|
# Ensure system Rust is in PATH for modern macOS compatibility
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
|
|
make "$@" -C ./depends/ V=1 NO_QT=1
|
|
|
|
#BUILD CCLIB
|
|
WD=$PWD
|
|
cd src/cc
|
|
echo $PWD
|
|
./makecustom
|
|
cd $WD
|
|
|
|
# Build RandomX
|
|
cd src/RandomX
|
|
if [ -d "build" ]
|
|
then
|
|
ls -la build/librandomx*
|
|
else
|
|
mkdir build && cd build
|
|
CC="${CC} -g " CXX="${CXX} -g " cmake ..
|
|
make
|
|
fi
|
|
|
|
cd $WD
|
|
|
|
./autogen.sh
|
|
CPPFLAGS="-I$PREFIX/include -arch x86_64" LDFLAGS="-L$PREFIX/lib -arch x86_64 -Wl,-no_pie" \
|
|
CXXFLAGS='-arch x86_64 -I/usr/local/Cellar/gcc/15.2.0_1/include/c++/15/ -I$PREFIX/include -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -Werror -Wno-error=deprecated-declarations -g -Wl,-undefined -Wl,dynamic_lookup' \
|
|
./configure --prefix="${PREFIX}" --with-gui=no "$HARDENING_ARG" "$LCOV_ARG" $TEST_ARG
|
|
|
|
make "$@" V=1 NO_GTEST=1 STATIC=1
|