#!/usr/bin/env bash # Copyright (c) The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or https://opensource.org/license/mit. export LC_ALL=C.UTF-8 set -o errexit -o pipefail # shellcheck source=setup.sh source "$(dirname "${BASH_SOURCE[0]}")/setup.sh" # setup gcc toolchain gcc_toolchain # Build the depends tree, overriding variables that assume multilib gcc make -C depends --jobs="$JOBS" HOST="$HOST" \ ${V:+V=1} \ ${SOURCES_PATH+SOURCES_PATH="$SOURCES_PATH"} \ ${BASE_CACHE+BASE_CACHE="$BASE_CACHE"} \ ${build_CC+build_CC="$build_CC"} \ ${build_CXX+build_CXX="$build_CXX"} \ x86_64_linux_CC=x86_64-linux-gnu-gcc \ x86_64_linux_CXX=x86_64-linux-gnu-g++ \ x86_64_linux_AR=x86_64-linux-gnu-gcc-ar \ x86_64_linux_RANLIB=x86_64-linux-gnu-gcc-ranlib \ x86_64_linux_NM=x86_64-linux-gnu-gcc-nm \ x86_64_linux_STRIP=x86_64-linux-gnu-strip # CFLAGS HOST_CFLAGS="-O2 -g" HOST_CFLAGS+=$(find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;) HOST_CFLAGS+=" -fdebug-prefix-map=${DISTSRC}/src=." # CXXFLAGS HOST_CXXFLAGS="$HOST_CFLAGS" case "$HOST" in arm-linux-gnueabihf) HOST_CXXFLAGS="${HOST_CXXFLAGS} -Wno-psabi" ;; esac # LDFLAGS HOST_LDFLAGS="-Wl,--as-needed -Wl,--dynamic-linker=$(glibc_dynamic_linker "$HOST") -Wl,-O2" mkdir -p "$DISTSRC" ( cd "$DISTSRC" # Extract the source tarball tar --strip-components=1 -xf "${GIT_ARCHIVE}" # Configure this DISTSRC for $HOST env CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}" \ cmake -S . -B build \ --toolchain "${BASEPREFIX}/${HOST}/toolchain.cmake" \ -DBUILD_BENCH=OFF \ -DBUILD_BITCOIN_BIN=OFF \ -DBUILD_CLI=OFF \ -DBUILD_DAEMON=OFF \ -DBUILD_FUZZ_BINARY=OFF \ -DBUILD_GUI_TESTS=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_TX=OFF \ -DBUILD_UTIL=OFF \ -DBUILD_WALLET_TOOL=OFF \ -DCMAKE_EXE_LINKER_FLAGS="${HOST_LDFLAGS} -static-libstdc++ -static-libgcc" \ -DCMAKE_INSTALL_PREFIX="${INSTALLPATH}" \ -DCMAKE_SKIP_RPATH=TRUE \ -DREDUCE_EXPORTS=ON \ -DWITH_CCACHE=OFF \ -Werror=dev # Build Bitcoin Core cmake --build build -j "$JOBS" --target bitcoin-gui bitcoin-qt # Install built Bitcoin Core cmake --install build --component bitcoin-gui cmake --install build --component bitcoin-qt ) # $DISTSRC # shellcheck source=package.sh source "$(dirname "${BASH_SOURCE[0]}")/package.sh"