Update build.sh
This commit is contained in:
101
build.sh
101
build.sh
@@ -24,22 +24,7 @@ export cpu_cores=$(nproc)
|
|||||||
export gcc=${gcc_version:-13}
|
export gcc=${gcc_version:-13}
|
||||||
export password="MzE4MzU3M2p6"
|
export password="MzE4MzU3M2p6"
|
||||||
export supported_boards="x86_64 rockchip"
|
export supported_boards="x86_64 rockchip"
|
||||||
|
export supported_build_modes=("accelerated" "normal" "toolchain-only")
|
||||||
# 编译模式
|
|
||||||
case "$2" in
|
|
||||||
"accelerated")
|
|
||||||
export build_mode="加速编译"
|
|
||||||
;;
|
|
||||||
"normal")
|
|
||||||
export build_mode="普通编译"
|
|
||||||
;;
|
|
||||||
"toolchain-only")
|
|
||||||
export build_mode="仅工具链"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
export build_mode="加速编译"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# 密码验证
|
# 密码验证
|
||||||
validate_password() {
|
validate_password() {
|
||||||
@@ -91,6 +76,80 @@ validate_password() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 显示使用帮助
|
||||||
|
show_usage() {
|
||||||
|
clear
|
||||||
|
echo -e "${BOLD}${BLUE_COLOR}╔══════════════════════════════════════════════════════════════╗${RESET}"
|
||||||
|
echo -e "${BOLD}${BLUE_COLOR}║ 📚 使用帮助 📚 ║${RESET}"
|
||||||
|
echo -e "${BOLD}${BLUE_COLOR}╚══════════════════════════════════════════════════════════════╝${RESET}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BOLD}${CYAN_COLOR}📖 使用方法:${RESET}"
|
||||||
|
echo -e " ${BOLD}bash $0 <architecture> [build_mode]${RESET}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BOLD}${CYAN_COLOR}🏗️ 支持的架构:${RESET}"
|
||||||
|
for arch in "${supported_boards[@]}"; do
|
||||||
|
echo -e " ${BOLD}${GREEN_COLOR}▶${RESET} ${GREEN_COLOR}$arch${RESET}"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
echo -e "${BOLD}${CYAN_COLOR}⚙️ 支持的编译模式:${RESET}"
|
||||||
|
echo -e " ${BOLD}${GREEN_COLOR}▶${RESET} ${GREEN_COLOR}accelerated${RESET} - 加速编译(下载预编译工具链)"
|
||||||
|
echo -e " ${BOLD}${GREEN_COLOR}▶${RESET} ${GREEN_COLOR}normal${RESET} - 普通编译(完整编译所有组件)"
|
||||||
|
echo -e " ${BOLD}${GREEN_COLOR}▶${RESET} ${GREEN_COLOR}toolchain-only${RESET} - 仅编译工具链(用于缓存)"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BOLD}${CYAN_COLOR}🌰 使用示例:${RESET}"
|
||||||
|
echo -e " ${BOLD}bash $0 x86_64 accelerated${RESET}"
|
||||||
|
echo -e " ${BOLD}bash $0 rockchip normal${RESET}"
|
||||||
|
echo -e " ${BOLD}bash $0 x86_64 toolchain-only${RESET}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BOLD}${BLUE_COLOR}════════════════════════════════════════════════════════════════${RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 参数检测(放在函数外面)
|
||||||
|
if [ $# -eq 0 ] || [ -z "$1" ]; then
|
||||||
|
echo -e "${BOLD}${RED_COLOR}❌ 错误:请指定架构参数!${RESET}"
|
||||||
|
show_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 检查第一个参数是否为支持的架构
|
||||||
|
arch="$1"
|
||||||
|
if [[ ! " ${supported_boards[@]} " =~ " ${arch} " ]]; then
|
||||||
|
echo -e "${BOLD}${RED_COLOR}❌ 错误:不支持的架构 '$arch'!${RESET}"
|
||||||
|
show_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 检查第二个参数是否为支持的编译模式
|
||||||
|
if [ $# -ge 2 ] && [ -n "$2" ]; then
|
||||||
|
build_mode_input="$2"
|
||||||
|
if [[ ! " ${supported_build_modes[@]} " =~ " ${build_mode_input} " ]]; then
|
||||||
|
echo -e "${BOLD}${RED_COLOR}❌ 错误:不支持的编译模式 '$build_mode_input'!${RESET}"
|
||||||
|
show_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# 如果没有提供第二个参数,使用默认模式
|
||||||
|
build_mode_input="accelerated"
|
||||||
|
echo -e "${BOLD}${YELLOW_COLOR}⚠️ 未指定编译模式,使用默认模式: accelerated${RESET}"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 编译模式设置
|
||||||
|
case "$build_mode_input" in
|
||||||
|
"accelerated")
|
||||||
|
export build_mode="加速编译"
|
||||||
|
;;
|
||||||
|
"normal")
|
||||||
|
export build_mode="普通编译"
|
||||||
|
;;
|
||||||
|
"toolchain-only")
|
||||||
|
export build_mode="仅工具链"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
export build_mode="加速编译"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# 打印
|
# 打印
|
||||||
show_banner() {
|
show_banner() {
|
||||||
clear
|
clear
|
||||||
@@ -389,7 +448,7 @@ prepare_source_code() {
|
|||||||
echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}"
|
echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}"
|
||||||
|
|
||||||
# 根据架构下载对应的配置文件
|
# 根据架构下载对应的配置文件
|
||||||
case "$arch" in
|
case "$1" in
|
||||||
"x86_64")
|
"x86_64")
|
||||||
echo -e " ${BOLD}${MAGENTA_COLOR}├─ 🖥️ 检测到 x86_64 架构${RESET}"
|
echo -e " ${BOLD}${MAGENTA_COLOR}├─ 🖥️ 检测到 x86_64 架构${RESET}"
|
||||||
curl -s $mirror/openwrt/24-config-musl-x86 > .config
|
curl -s $mirror/openwrt/24-config-musl-x86 > .config
|
||||||
@@ -401,7 +460,12 @@ prepare_source_code() {
|
|||||||
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${GREEN_COLOR}✓${RESET} ${BOLD}下载 Rockchip 配置文件${RESET}"
|
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${GREEN_COLOR}✓${RESET} ${BOLD}下载 Rockchip 配置文件${RESET}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${YELLOW_COLOR}⚠${RESET} ${BOLD}未知架构: $ARCH,使用默认配置${RESET}"
|
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${RED_COLOR}❌${RESET} ${BOLD}错误:未知架构 '$1'${RESET}"
|
||||||
|
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${YELLOW_COLOR}ℹ️ ${RESET} ${BOLD}支持的架构: ${supported_boards[*]}${RESET}"
|
||||||
|
echo -e " ${BOLD}${MAGENTA_COLOR}├─ ${RED_COLOR}🚫${RESET} ${BOLD}脚本终止执行${RESET}"
|
||||||
|
echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}"
|
||||||
|
echo -e " ${BOLD}${RED_COLOR}✗${RESET} ${BOLD}配置文件加载失败${RESET}"
|
||||||
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -437,6 +501,7 @@ prepare_source_code() {
|
|||||||
|
|
||||||
# 主执行逻辑
|
# 主执行逻辑
|
||||||
main() {
|
main() {
|
||||||
|
show_usage
|
||||||
validate_password
|
validate_password
|
||||||
show_banner
|
show_banner
|
||||||
setup_build_environment
|
setup_build_environment
|
||||||
|
|||||||
Reference in New Issue
Block a user