archives/prepare.sh
2025-03-20 01:19:14 -04:00

64 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
set -e
cd "$(dirname "$0")"
# Check
if [ "$(uname -m)" != 'x86_64' ]; then
echo 'Unsupported Build System!' > /dev/stderr
exit 1
fi
# Versions
CT_NAME="crosstool-ng"
CT_VERSION="1.27.0"
CT="${CT_NAME}-${CT_VERSION}"
# Source Files
SRC="$(pwd)/src"
# Create Workspace
dir() {
rm -rf "$1"
mkdir "$1"
cd "$1"
}
dir workspace
WORKSPACE="$(pwd)"
# Build crosstools-ng
dir "${CT_NAME}"
PREFIX="$(pwd)"
dir src
wget "https://github.com/${CT_NAME}/${CT_NAME}/releases/download/${CT}/${CT}.tar.xz"
tar -xJf "${CT}.tar.xz" --strip-components=1
./configure \
"--prefix=${PREFIX}" \
--enable-silent-rules \
--quiet
make -j$(nproc)
make install > /dev/null
# Add Patch
cd "${PREFIX}/share/crosstool-ng/packages/binutils"
patch() {
for version in */; do
cp "${SRC}/$1" "${version}"
done
}
patch 9999-change-page-size.patch
# Configure Toolchain
export PATH="${PREFIX}/bin:${PATH}"
cd "${WORKSPACE}"
dir build
prepare() {
dir "$1"
cp "${SRC}/defconfig" .
printf "$2" >> defconfig
ct-ng defconfig
ct-ng show-config
cd ../
}
prepare x86_64 ''
prepare aarch64 'CT_CANADIAN=y\nCT_HOST="aarch64-linux-gnu"\n# CT_ZSTD_NEEDED is not set\n'