files/toolchain/build.sh
zhao 728b8cbb7b 更新 toolchain/build.sh
Signed-off-by: zhao <zhao@noreply.localhost>
2025-03-21 16:53:56 +08:00

70 lines
3.1 KiB
Bash

#!/bin/bash -e
# Clone source code
if [ "$model" = "Padavanonly_MT798X_v24.10" ]; then
git clone -b 2410 --single-branch --filter=blob:none https://github.com/padavanonly/immortalwrt-mt798x-24.10 openwrt
elif [ "$model" = "Hanwckf_MT798X_v21.02" ]; then
git clone --depth=1 https://github.com/hanwckf/immortalwrt-mt798x openwrt
elif [ "$model" = "OpenWrt_Rockchip_v24.10" ] || [ "$model" = "OpenWrt_X86_64_v24.10" ]; then
git clone -b openwrt-24.10 --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt openwrt
fi
# Enter source code
cd openwrt
# Init feeds
./scripts/feeds update -a
./scripts/feeds install -a
# Load devices Config
if [ "$model" = "Padavanonly_MT798X_v24.10" ]; then
curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/padavanonly_mt798x.config > .config
elif [ "$model" = "Hanwckf_MT798X_v21.02" ]; then
curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/hanwckf_mt798x.config > .config
elif [ "$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
# Compile
make defconfig
make -j$(nproc)
# Organize files
if [ "$model" = "Padavanonly_MT798X_v24.10" ] || [ "$model" = "Hanwckf_MT798X_v21.02" ]; then
rm -rf build_dir/hostpkg
rm -rf staging_dir/hostpkg
rm -rf staging_dir/packages
rm -rf staging_dir/target-aarch64_cortex-a53_musl/host
rm -rf staging_dir/target-aarch64_cortex-a53_musl/packages
rm -rf staging_dir/target-aarch64_cortex-a53_musl/pkginfo
rm -rf staging_dir/target-aarch64_cortex-a53_musl/root-mediatek
find build_dir/target-aarch64_cortex-a53_musl -mindepth 1 -maxdepth 1 ! -name 'stamp' -exec rm -rf {} +
elif [ "$model" = "OpenWrt_Rockchip_v24.10" ]; then
rm -rf build_dir/hostpkg
rm -rf staging_dir/hostpkg
rm -rf staging_dir/packages
rm -rf staging_dir/toolchain-x86_64_gcc-13.3.0_musl
rm -rf staging_dir/target-aarch64_generic_musl/host
rm -rf staging_dir/target-aarch64_generic_musl/packages
rm -rf staging_dir/target-aarch64_generic_musl/pkginfo
rm -rf staging_dir/target-aarch64_generic_musl/root-rockchip
find build_dir/target-aarch64_generic_musl -mindepth 1 -maxdepth 1 ! -name 'stamp' -exec rm -rf {} +
elif [ "$model" = "OpenWrt_X86_64_v24.10" ]; then
rm -rf build_dir/hostpkg
rm -rf staging_dir/hostpkg
rm -rf staging_dir/packages
rm -rf staging_dir/target-aarch64_cortex-a53_musl/host
rm -rf staging_dir/target-aarch64_cortex-a53_musl/packages
rm -rf staging_dir/target-aarch64_cortex-a53_musl/pkginfo
rm -rf staging_dir/target-aarch64_cortex-a53_musl/root-mediatek
find build_dir/target-aarch64_cortex-a53_musl -mindepth 1 -maxdepth 1 ! -name 'stamp' -exec rm -rf {} +
fi
# Create folder
mkdir toolchain-cache
# Compression toolchain
tar -I zstd -cvf toolchain-cache/toolchain_mediatek.tar.zst build_dir dl tmp staging_dir