114 lines
2.9 KiB
Bash
114 lines
2.9 KiB
Bash
#!/bin/bash
|
||
# 编译 AvaotaF1 客户端主程序
|
||
# 【开发者注意】请将 Tina SDK 放置到 SDK_ROOT 指定的路径
|
||
|
||
set -e # 错误时退出
|
||
|
||
# SDK 路径配置
|
||
# 【开发者注意】请确保 SDK 位于此路径,或修改此变量
|
||
SDK_ROOT="/home/rongye/ProgramFiles/TinaSDK/tina-v821-release"
|
||
|
||
echo "========================================="
|
||
echo "AvaotaF1 Client Build Script"
|
||
echo "========================================="
|
||
echo ""
|
||
|
||
# 检查 SDK 路径
|
||
if [ ! -d "$SDK_ROOT" ]; then
|
||
echo "错误:SDK 路径不存在: $SDK_ROOT"
|
||
echo "请将 Tina SDK 放置到上述路径,或修改脚本中的 SDK_ROOT 变量"
|
||
exit 1
|
||
fi
|
||
|
||
# 保存项目目录(在切换到SDK前)
|
||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
||
# 1. 进入 SDK 目录并设置环境
|
||
echo "1. 设置编译环境..."
|
||
cd "$SDK_ROOT"
|
||
source build/envsetup.sh 2>&1 || true # 忽略 envsetup.sh 的无害警告
|
||
|
||
# 2. 检查必需的库
|
||
echo ""
|
||
echo "2. 检查依赖库..."
|
||
|
||
STAGING_DIR="$SDK_ROOT/out/v821/avaota_f1/openwrt/staging_dir/target/usr/lib"
|
||
|
||
check_lib() {
|
||
local lib_name=$1
|
||
if [ -f "$STAGING_DIR/$lib_name" ]; then
|
||
echo " ✓ $lib_name 存在"
|
||
return 0
|
||
else
|
||
echo " ✗ $lib_name 缺失"
|
||
return 1
|
||
fi
|
||
}
|
||
|
||
all_libs_ok=true
|
||
# check_lib "libssl.so" || all_libs_ok=false (Removed in optimization)
|
||
# check_lib "libcrypto.so" || all_libs_ok=false (Removed in optimization)
|
||
check_lib "libcurl.so" || all_libs_ok=false
|
||
check_lib "libasound.so" || all_libs_ok=false
|
||
|
||
if [ "$all_libs_ok" = false ]; then
|
||
echo ""
|
||
echo "警告:部分库缺失,可能导致链接失败"
|
||
echo "建议在 SDK 中运行 'make menuconfig' 启用相应的库"
|
||
echo ""
|
||
fi
|
||
|
||
# 3. 清理并编译
|
||
echo ""
|
||
echo "3. 开始编译..."
|
||
echo ""
|
||
|
||
echo "项目目录: $PROJECT_DIR"
|
||
|
||
# 检查 src 目录是否存在
|
||
if [ ! -d "$PROJECT_DIR/src" ]; then
|
||
echo "错误:找不到 src 目录"
|
||
echo "当前路径:$PROJECT_DIR"
|
||
echo "请确认脚本在项目根目录执行"
|
||
exit 1
|
||
fi
|
||
|
||
# 切换到项目src目录
|
||
cd "$PROJECT_DIR/src"
|
||
|
||
# 清理旧文件
|
||
echo "清理旧的编译文件..."
|
||
make clean
|
||
|
||
# 编译主程序
|
||
echo ""
|
||
echo "编译 avaota_client..."
|
||
make all -j$(nproc)
|
||
|
||
# 4. 检查编译结果
|
||
echo ""
|
||
echo "========================================="
|
||
if [ -f "../build/bin/avaota_client" ]; then
|
||
echo "✅ 编译成功!"
|
||
echo "========================================="
|
||
echo ""
|
||
echo "输出文件:"
|
||
echo " ../build/bin/avaota_client"
|
||
echo ""
|
||
|
||
# 文件信息
|
||
file ../build/bin/avaota_client
|
||
ls -lh ../build/bin/avaota_client
|
||
|
||
echo ""
|
||
echo "下一步:"
|
||
echo " 1. 将程序上传到板子:"
|
||
echo " scp ../build/bin/avaota_client root@<板子IP>:/usr/bin/"
|
||
echo " 2. 在板子上运行:"
|
||
echo " avaota_client"
|
||
else
|
||
echo "❌ 编译失败"
|
||
echo "========================================="
|
||
exit 1
|
||
fi
|