reorganizing release ouput to cleaner directory structure
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -175,6 +175,7 @@ src/RandomX/build-linux/
|
|||||||
src/RandomX/build-win64/
|
src/RandomX/build-win64/
|
||||||
src/wallet-utility.exe
|
src/wallet-utility.exe
|
||||||
src/.build_target
|
src/.build_target
|
||||||
|
release/
|
||||||
|
|
||||||
# other
|
# other
|
||||||
repos/
|
repos/
|
||||||
@@ -11,22 +11,28 @@ make clean 2>/dev/null || true
|
|||||||
rm -rf depends/built depends/x86_64-unknown-linux-gnu depends/work
|
rm -rf depends/built depends/x86_64-unknown-linux-gnu depends/work
|
||||||
make -C depends clean 2>/dev/null || true
|
make -C depends clean 2>/dev/null || true
|
||||||
|
|
||||||
|
# Limit parallelism to avoid OOM kills inside Docker.
|
||||||
|
# Each C++ compilation can use 1-2 GB RAM; cap at ~half of nproc.
|
||||||
|
JOBS=$(( $(nproc) / 2 ))
|
||||||
|
[ "$JOBS" -lt 1 ] && JOBS=1
|
||||||
|
|
||||||
# Build RandomX for Linux (clean, since host build is different arch/libc)
|
# Build RandomX for Linux (clean, since host build is different arch/libc)
|
||||||
cd src/RandomX
|
cd src/RandomX
|
||||||
rm -rf build-linux
|
rm -rf build-linux
|
||||||
mkdir -p build-linux && cd build-linux
|
mkdir -p build-linux && cd build-linux
|
||||||
cmake -DARCH=native ..
|
cmake -DARCH=native ..
|
||||||
make -j$(nproc)
|
make -j"$JOBS"
|
||||||
cd /hush3
|
cd /hush3
|
||||||
|
|
||||||
# Run the normal build
|
# Run the normal build
|
||||||
./util/build.sh --disable-tests -j$(nproc)
|
./util/build.sh --disable-tests -j"$JOBS"
|
||||||
|
|
||||||
# Package release
|
# Package release
|
||||||
echo "Creating Linux release package..."
|
echo "Creating Linux release package..."
|
||||||
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
|
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
|
||||||
VERSION=${VERSION:-3.10.5}
|
VERSION=${VERSION:-3.10.5}
|
||||||
RELEASE_DIR="release-linux"
|
UBUNTU_VERSION=$(grep -oP 'VERSION_ID="\K[^"]+' /etc/os-release 2>/dev/null || echo "unknown")
|
||||||
|
RELEASE_DIR="release/linux-${UBUNTU_VERSION}"
|
||||||
mkdir -p "$RELEASE_DIR"
|
mkdir -p "$RELEASE_DIR"
|
||||||
|
|
||||||
strip -s src/hushd src/hush-cli src/hush-tx
|
strip -s src/hushd src/hush-cli src/hush-tx
|
||||||
|
|||||||
2
build.sh
2
build.sh
@@ -56,7 +56,7 @@ if [[ "${1:-}" == "--linux-release" ]]; then
|
|||||||
echo "Building Linux release inside Ubuntu 20.04 Docker container..."
|
echo "Building Linux release inside Ubuntu 20.04 Docker container..."
|
||||||
sudo docker build -t hush-builder -f Dockerfile.build .
|
sudo docker build -t hush-builder -f Dockerfile.build .
|
||||||
sudo docker run --rm -e HOST_UID=$(id -u) -e HOST_GID=$(id -g) -v "$SCRIPT_DIR:/hush3" hush-builder "$@"
|
sudo docker run --rm -e HOST_UID=$(id -u) -e HOST_GID=$(id -g) -v "$SCRIPT_DIR:/hush3" hush-builder "$@"
|
||||||
echo "Docker build complete. Release is in release-linux/"
|
echo "Docker build complete. Release is in release/linux-<ubuntu_version>/"
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -97,3 +97,34 @@ CXXFLAGS="${EXTRA_CXXFLAGS} -I$PREFIX/include" \
|
|||||||
./configure --prefix="${PREFIX}" --with-gui=no "$HARDENING_ARG" "$LCOV_ARG"
|
./configure --prefix="${PREFIX}" --with-gui=no "$HARDENING_ARG" "$LCOV_ARG"
|
||||||
|
|
||||||
make "$@" V=1 NO_GTEST=1 STATIC=1
|
make "$@" V=1 NO_GTEST=1 STATIC=1
|
||||||
|
|
||||||
|
# Package release
|
||||||
|
echo "Creating macOS release package..."
|
||||||
|
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
|
||||||
|
VERSION=${VERSION:-3.10.5}
|
||||||
|
RELEASE_DIR="release/mac"
|
||||||
|
mkdir -p "$RELEASE_DIR"
|
||||||
|
|
||||||
|
# Strip binaries
|
||||||
|
strip src/hushd src/hush-cli src/hush-tx 2>/dev/null || true
|
||||||
|
|
||||||
|
# Copy binaries
|
||||||
|
cp src/hushd src/hush-cli src/hush-tx "$RELEASE_DIR/"
|
||||||
|
|
||||||
|
# Copy wrapper scripts
|
||||||
|
cp src/hush-arrakis-chain src/dragonxd src/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/hush-${VERSION}-mac.zip"
|
||||||
|
cd "$RELEASE_DIR"
|
||||||
|
zip -9 "hush-${VERSION}-mac.zip" *
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo "Release package created: $RELEASE_DIR/hush-${VERSION}-mac.zip"
|
||||||
|
ls -lh "$RELEASE_DIR/hush-${VERSION}-mac.zip"
|
||||||
|
|||||||
@@ -39,6 +39,15 @@ fi
|
|||||||
cd $WD
|
cd $WD
|
||||||
|
|
||||||
sed -i 's/-lboost_system-mt /-lboost_system-mt-s /' configure
|
sed -i 's/-lboost_system-mt /-lboost_system-mt-s /' configure
|
||||||
|
|
||||||
|
# Clean any stale native-compiled objects before cross-compiling.
|
||||||
|
# If objects were previously built with the native Linux compiler (ELF format),
|
||||||
|
# make won't recompile them for Windows (COFF format), causing link failures.
|
||||||
|
if [ -f src/libbitcoin_server.a ]; then
|
||||||
|
echo "Cleaning previous build objects to ensure Windows cross-compilation..."
|
||||||
|
cd src/ && make clean 2>/dev/null || true && cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
cd src/
|
cd src/
|
||||||
CC="${CC} -g " CXX="${CXX} -g " make V=1 hushd.exe hush-cli.exe hush-tx.exe
|
CC="${CC} -g " CXX="${CXX} -g " make V=1 hushd.exe hush-cli.exe hush-tx.exe
|
||||||
|
|
||||||
@@ -47,7 +56,7 @@ cd $WD
|
|||||||
echo "Creating Windows release package..."
|
echo "Creating Windows release package..."
|
||||||
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
|
VERSION=$(grep -oP 'define\(_CLIENT_VERSION.*?,\s*\K[0-9]+' configure.ac | head -3 | tr '\n' '.' | sed 's/\.$//')
|
||||||
VERSION=${VERSION:-3.10.5}
|
VERSION=${VERSION:-3.10.5}
|
||||||
RELEASE_DIR="release-win64"
|
RELEASE_DIR="release/windows"
|
||||||
mkdir -p "$RELEASE_DIR"
|
mkdir -p "$RELEASE_DIR"
|
||||||
|
|
||||||
# Strip binaries
|
# Strip binaries
|
||||||
|
|||||||
Reference in New Issue
Block a user