files/toolchain/build.sh
zhao d5c16e0233 更新 toolchain/build.sh
Signed-off-by: zhao <zhao@noreply.localhost>
2025-03-24 17:22:57 +08:00

64 lines
1.9 KiB
Bash

#!/bin/bash -e
# Clone source code
git clone -b openwrt-24.10 --single-branch --filter=blob:none https://github.com/openwrt/openwrt
# Enter source code
cd openwrt
# Init feeds
./scripts/feeds update -a
./scripts/feeds install -a
# Load devices Config
if [ "$model" = "OpenWrt_Rockchip_v24.10" ]; then
curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/immortalwrt_rockchip.config > .config
elif [ "$model" = "OpenWrt_X86_64_v24.10" ]; then
curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/immortalwrt_x86_64.config > .config
fi
# gcc14 & 15
if [ "$USE_GCC13" = y ]; then
export USE_GCC13=y gcc_version=13
elif [ "$USE_GCC14" = y ]; then
export USE_GCC14=y gcc_version=14
fi
# gcc config
echo -e "\n# gcc ${gcc_version}" >> .config
echo -e "CONFIG_DEVEL=y" >> .config
echo -e "CONFIG_TOOLCHAINOPTS=y" >> .config
echo -e "CONFIG_GCC_USE_VERSION_${gcc_version}=y\n" >> .config
# bpf
curl -s https://raw.githubusercontent.com/oppen321/ZeroWrt-Action/refs/heads/master/generic/config-bpf >> .config
# Compile
make defconfig
make -j$cores toolchain/compile || make -j$cores toolchain/compile V=s || exit 1
# Create folder
mkdir toolchain-cache
# Compression toolchain
case "$model" in
"OpenWrt_Rockchip_v24.10" | "OpenWrt_X86_64_v24.10")
if [ -z "$gcc_version" ]; then
echo "Error: GCC version not set!"
exit 1
fi
if [ "$model" = "OpenWrt_Rockchip_v24.10" ]; then
output_file="toolchain_musl_openwrt_rockchip_gcc-${gcc_version}.tar.zst"
elif [ "$model" = "OpenWrt_X86_64_v24.10" ]; then
output_file="toolchain_musl_openwrt_X86_64_gcc-${gcc_version}.tar.zst"
fi
tar -I zstd -cvf "toolchain-cache/${output_file}" build_dir dl tmp staging_dir
;;
*)
echo "Error: Unknown model '$model'!"
exit 1
;;
esac