#!/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
check_lib "libcrypto.so" || all_libs_ok=false
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
