Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 0 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,23 +128,6 @@ jobs:
run: |
which i686-w64-mingw32-gcc || echo "WARNING: i686-w64-mingw32-gcc not found"
which x86_64-w64-mingw32-gcc || echo "WARNING: x86_64-w64-mingw32-gcc not found"
- name: Setup sccache wrappers for all compilers
run: |
mkdir -p $HOME/.ccache-bin

# Use LLVM-MinGW for all Windows architectures (x86, x64, arm64)
# This provides a consistent, modern toolchain across all targets
LLVM_MINGW_BIN="$(pwd)/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64/bin"

for arch in i686 x86_64 aarch64; do
for tool in gcc g++; do
echo '#!/bin/sh' > $HOME/.ccache-bin/${arch}-w64-mingw32-$tool
echo "exec sccache $LLVM_MINGW_BIN/${arch}-w64-mingw32-${tool} \"\$@\"" >> $HOME/.ccache-bin/${arch}-w64-mingw32-$tool
chmod +x $HOME/.ccache-bin/${arch}-w64-mingw32-$tool
done
done

echo "$HOME/.ccache-bin" >> $GITHUB_PATH
- name: Install autoconf and automake
run: |
# xz 5.8.2 was built with automake 1.18.1 and autoconf 2.72
Expand Down
27 changes: 9 additions & 18 deletions native/build-linux-arm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,12 @@ if [ ! -f "$TOOLCHAIN_PREFIX/bin/arm-linux-gcc" ]; then
exit 1
fi

export CC=arm-linux-gcc
export CXX=arm-linux-g++
export AR=arm-linux-ar
export RANLIB=arm-linux-ranlib

# Generate sccache wrappers for compilers only (not ar/ranlib)
echo "Setting up sccache wrappers..."
mkdir -p .ccache-bin
for tool in gcc g++; do
printf '#!/bin/sh\nexec sccache "%s/bin/arm-linux-%s" "$@"\n' "$TOOLCHAIN_PREFIX" "$tool" > .ccache-bin/arm-linux-$tool
chmod +x .ccache-bin/arm-linux-$tool
done

# Add wrappers to PATH (before toolchain bin)
export PATH="$(pwd)/.ccache-bin:$TOOLCHAIN_PREFIX/bin:$PATH"
export CC="sccache $TOOLCHAIN_PREFIX/bin/arm-linux-gcc"
export CXX="sccache $TOOLCHAIN_PREFIX/bin/arm-linux-g++"
export AR=$TOOLCHAIN_PREFIX/bin/arm-linux-ar
export RANLIB=$TOOLCHAIN_PREFIX/bin/arm-linux-ranlib

export PATH="$TOOLCHAIN_PREFIX/bin:$PATH"

# Keep PREFIX for our built libraries (same as before)
export PREFIX="${PREFIX:-$(pwd)/local}"
Expand All @@ -78,23 +69,23 @@ download_all_libraries
# Build compression libraries (static only to avoid conflicts with -static LDFLAGS)
echo "Building lz4 ${LZ4_VERSION}..."
cd lz4-${LZ4_VERSION}/lib
make -j$NCPU liblz4.a CC=$CC AR=$AR
make -j$NCPU liblz4.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp liblz4.a $PREFIX/lib/
cp lz4.h lz4hc.h lz4frame.h $PREFIX/include/
cd ../..

echo "Building zstd ${ZSTD_VERSION}..."
cd zstd-${ZSTD_VERSION}/lib
make -j$NCPU libzstd.a CC=$CC AR=$AR
make -j$NCPU libzstd.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp libzstd.a $PREFIX/lib/
cp zstd.h zstd_errors.h zdict.h $PREFIX/include/
cd ../..

echo "Building bzip2 ${BZIP2_VERSION}..."
cd bzip2-${BZIP2_VERSION}
make -j$NCPU libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
make -j$NCPU libbz2.a "CC=$CC" "AR=$AR" "RANLIB=$RANLIB" CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
mkdir -p $PREFIX/lib $PREFIX/include
cp libbz2.a $PREFIX/lib/
cp bzlib.h $PREFIX/include/
Expand Down
27 changes: 9 additions & 18 deletions native/build-linux-arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,12 @@ if [ ! -f "$TOOLCHAIN_PREFIX/bin/aarch64-linux-gcc" ]; then
exit 1
fi

export CC=aarch64-linux-gcc
export CXX=aarch64-linux-g++
export AR=aarch64-linux-ar
export RANLIB=aarch64-linux-ranlib

# Generate sccache wrappers for compilers only (not ar/ranlib)
echo "Setting up sccache wrappers..."
mkdir -p .ccache-bin
for tool in gcc g++; do
printf '#!/bin/sh\nexec sccache "%s/bin/aarch64-linux-%s" "$@"\n' "$TOOLCHAIN_PREFIX" "$tool" > .ccache-bin/aarch64-linux-$tool
chmod +x .ccache-bin/aarch64-linux-$tool
done

# Add wrappers to PATH (before toolchain bin)
export PATH="$(pwd)/.ccache-bin:$TOOLCHAIN_PREFIX/bin:$PATH"
export CC="sccache $TOOLCHAIN_PREFIX/bin/aarch64-linux-gcc"
export CXX="sccache $TOOLCHAIN_PREFIX/bin/aarch64-linux-g++"
export AR=$TOOLCHAIN_PREFIX/bin/aarch64-linux-ar
export RANLIB=$TOOLCHAIN_PREFIX/bin/aarch64-linux-ranlib

export PATH="$TOOLCHAIN_PREFIX/bin:$PATH"

# Keep PREFIX for our built libraries (same as before)
export PREFIX="${PREFIX:-$(pwd)/local}"
Expand All @@ -78,23 +69,23 @@ download_all_libraries
# Build compression libraries (static only to avoid conflicts with -static LDFLAGS)
echo "Building lz4 ${LZ4_VERSION}..."
cd lz4-${LZ4_VERSION}/lib
make -j$NCPU liblz4.a CC=$CC AR=$AR
make -j$NCPU liblz4.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp liblz4.a $PREFIX/lib/
cp lz4.h lz4hc.h lz4frame.h $PREFIX/include/
cd ../..

echo "Building zstd ${ZSTD_VERSION}..."
cd zstd-${ZSTD_VERSION}/lib
make -j$NCPU libzstd.a CC=$CC AR=$AR
make -j$NCPU libzstd.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp libzstd.a $PREFIX/lib/
cp zstd.h zstd_errors.h zdict.h $PREFIX/include/
cd ../..

echo "Building bzip2 ${BZIP2_VERSION}..."
cd bzip2-${BZIP2_VERSION}
make -j$NCPU libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
make -j$NCPU libbz2.a "CC=$CC" "AR=$AR" "RANLIB=$RANLIB" CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
mkdir -p $PREFIX/lib $PREFIX/include
cp libbz2.a $PREFIX/lib/
cp bzlib.h $PREFIX/include/
Expand Down
27 changes: 9 additions & 18 deletions native/build-linux-x86.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,12 @@ if [ ! -f "$TOOLCHAIN_PREFIX/bin/i686-linux-gcc" ]; then
exit 1
fi

export CC=i686-linux-gcc
export CXX=i686-linux-g++
export AR=i686-linux-ar
export RANLIB=i686-linux-ranlib

# Generate sccache wrappers for compilers only (not ar/ranlib)
echo "Setting up sccache wrappers..."
mkdir -p .ccache-bin
for tool in gcc g++; do
printf '#!/bin/sh\nexec sccache "%s/bin/i686-linux-%s" "$@"\n' "$TOOLCHAIN_PREFIX" "$tool" > .ccache-bin/i686-linux-$tool
chmod +x .ccache-bin/i686-linux-$tool
done

# Add wrappers to PATH (before toolchain bin)
export PATH="$(pwd)/.ccache-bin:$TOOLCHAIN_PREFIX/bin:$PATH"
export CC="sccache $TOOLCHAIN_PREFIX/bin/i686-linux-gcc"
export CXX="sccache $TOOLCHAIN_PREFIX/bin/i686-linux-g++"
export AR=$TOOLCHAIN_PREFIX/bin/i686-linux-ar
export RANLIB=$TOOLCHAIN_PREFIX/bin/i686-linux-ranlib

export PATH="$TOOLCHAIN_PREFIX/bin:$PATH"

# Keep PREFIX for our built libraries (same as before)
export PREFIX="${PREFIX:-$(pwd)/local}"
Expand All @@ -78,23 +69,23 @@ download_all_libraries
# Build compression libraries (static only to avoid conflicts with -static LDFLAGS)
echo "Building lz4 ${LZ4_VERSION}..."
cd lz4-${LZ4_VERSION}/lib
make -j$NCPU liblz4.a CC=$CC AR=$AR
make -j$NCPU liblz4.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp liblz4.a $PREFIX/lib/
cp lz4.h lz4hc.h lz4frame.h $PREFIX/include/
cd ../..

echo "Building zstd ${ZSTD_VERSION}..."
cd zstd-${ZSTD_VERSION}/lib
make -j$NCPU libzstd.a CC=$CC AR=$AR
make -j$NCPU libzstd.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp libzstd.a $PREFIX/lib/
cp zstd.h zstd_errors.h zdict.h $PREFIX/include/
cd ../..

echo "Building bzip2 ${BZIP2_VERSION}..."
cd bzip2-${BZIP2_VERSION}
make -j$NCPU libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
make -j$NCPU libbz2.a "CC=$CC" "AR=$AR" "RANLIB=$RANLIB" CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
mkdir -p $PREFIX/lib $PREFIX/include
cp libbz2.a $PREFIX/lib/
cp bzlib.h $PREFIX/include/
Expand Down
27 changes: 9 additions & 18 deletions native/build-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,12 @@ if [ ! -f "$TOOLCHAIN_PREFIX/bin/x86_64-linux-gcc" ]; then
exit 1
fi

export CC=x86_64-linux-gcc
export CXX=x86_64-linux-g++
export AR=x86_64-linux-ar
export RANLIB=x86_64-linux-ranlib

# Generate sccache wrappers for compilers only (not ar/ranlib)
echo "Setting up sccache wrappers..."
mkdir -p .ccache-bin
for tool in gcc g++; do
printf '#!/bin/sh\nexec sccache "%s/bin/x86_64-linux-%s" "$@"\n' "$TOOLCHAIN_PREFIX" "$tool" > .ccache-bin/x86_64-linux-$tool
chmod +x .ccache-bin/x86_64-linux-$tool
done

# Add wrappers to PATH (before toolchain bin)
export PATH="$(pwd)/.ccache-bin:$TOOLCHAIN_PREFIX/bin:$PATH"
export CC="sccache $TOOLCHAIN_PREFIX/bin/x86_64-linux-gcc"
export CXX="sccache $TOOLCHAIN_PREFIX/bin/x86_64-linux-g++"
export AR=$TOOLCHAIN_PREFIX/bin/x86_64-linux-ar
export RANLIB=$TOOLCHAIN_PREFIX/bin/x86_64-linux-ranlib

export PATH="$TOOLCHAIN_PREFIX/bin:$PATH"

# Keep PREFIX for our built libraries (same as before)
export PREFIX="${PREFIX:-$(pwd)/local}"
Expand All @@ -78,23 +69,23 @@ download_all_libraries
# Build compression libraries (static only to avoid conflicts with -static LDFLAGS)
echo "Building lz4 ${LZ4_VERSION}..."
cd lz4-${LZ4_VERSION}/lib
make -j$NCPU liblz4.a CC=$CC AR=$AR
make -j$NCPU liblz4.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp liblz4.a $PREFIX/lib/
cp lz4.h lz4hc.h lz4frame.h $PREFIX/include/
cd ../..

echo "Building zstd ${ZSTD_VERSION}..."
cd zstd-${ZSTD_VERSION}/lib
make -j$NCPU libzstd.a CC=$CC AR=$AR
make -j$NCPU libzstd.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp libzstd.a $PREFIX/lib/
cp zstd.h zstd_errors.h zdict.h $PREFIX/include/
cd ../..

echo "Building bzip2 ${BZIP2_VERSION}..."
cd bzip2-${BZIP2_VERSION}
make -j$NCPU libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
make -j$NCPU libbz2.a "CC=$CC" "AR=$AR" "RANLIB=$RANLIB" CFLAGS="-fPIC -O2 -D_FILE_OFFSET_BITS=64"
mkdir -p $PREFIX/lib $PREFIX/include
cp libbz2.a $PREFIX/lib/
cp bzlib.h $PREFIX/include/
Expand Down
15 changes: 10 additions & 5 deletions native/build-windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,13 @@ if ! command -v ${MINGW_PREFIX}-gcc >/dev/null 2>&1; then
fi

# Windows-specific build settings
export CC="${MINGW_PREFIX}-gcc"
export CXX="${MINGW_PREFIX}-g++"
if command -v sccache >/dev/null 2>&1; then
export CC="sccache ${MINGW_PREFIX}-gcc"
export CXX="sccache ${MINGW_PREFIX}-g++"
else
export CC="${MINGW_PREFIX}-gcc"
export CXX="${MINGW_PREFIX}-g++"
fi
export AR="${MINGW_PREFIX}-ar"
export RANLIB="${MINGW_PREFIX}-ranlib"
export RC="${MINGW_PREFIX}-windres"
Expand All @@ -69,15 +74,15 @@ fi
# Build compression libraries
echo "Building lz4 ${LZ4_VERSION}..."
cd lz4-${LZ4_VERSION}/lib
make -j$NCPU liblz4.a CC=$CC AR=$AR
make -j$NCPU liblz4.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp liblz4.a $PREFIX/lib/
cp lz4.h lz4hc.h lz4frame.h $PREFIX/include/
cd ../..

echo "Building bzip2 ${BZIP2_VERSION}..."
cd bzip2-${BZIP2_VERSION}
make -j$NCPU libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64"
make -j$NCPU libbz2.a "CC=$CC" "AR=$AR" "RANLIB=$RANLIB" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64"
# Verify library was built and has symbols
ls -lh libbz2.a
${MINGW_PREFIX}-nm -g libbz2.a | grep BZ2_bzCompressInit || echo "WARNING: BZ2_bzCompressInit not found in libbz2.a"
Expand Down Expand Up @@ -106,7 +111,7 @@ cd ..

echo "Building zstd ${ZSTD_VERSION}..."
cd zstd-${ZSTD_VERSION}/lib
make -j$NCPU libzstd.a CC=$CC AR=$AR
make -j$NCPU libzstd.a "CC=$CC" "AR=$AR"
mkdir -p $PREFIX/lib $PREFIX/include
cp libzstd.a $PREFIX/lib/
cp zstd.h zstd_errors.h zdict.h $PREFIX/include/
Expand Down
Loading