#!/bin/bash # build_watchdog.sh — meow_watchdog 交叉编译(mipsel 静态)+ 宿主测试构建。 # # 用法: # ./build_watchdog.sh # 交叉编译 → meow_watchdog(mipsel 静态,fw_content.conf 的 /usr/bin/meow_watchdog) # ./build_watchdog.sh host # 宿主编译 test_wd_fw 并跑宿主回归 set -e cd "$(dirname "$0")" ROOT=../.. # 交叉编译器:ZIGCC env 优先(与 build_netmgrd.sh 同口径;干净 worktree 里 /.tools # 这个符号链接通常不存在,重编驱动会直接传 ZIGCC 进来),其次 /.tools/,最后 $HOME/.tools/ CC="${ZIGCC:-$ROOT/.tools/zig-mipsel-cc}" [ -x "$CC" ] || CC="$HOME/.tools/zig-mipsel-cc" INC="$ROOT/patch_v2/meow_launcherd" # meow_ipc.h(音量收编 v2:MSG_AUDIO_VOLUME/MSG_ACK) if [ "$1" = "host" ]; then gcc -Wall -Wextra -Os -I"$INC" -DWd_NO_MAIN -Wno-unused-function -Wno-unused-parameter \ -Wno-unused-variable test_wd_fw.c ../sdk/meow_time32.c -o test_wd_fw -lm ./test_wd_fw exit $? fi echo "== meow_watchdog (mipsel static) ==" # meow_time32.c:独立 time32 取时/睡眠(watchdog 不链 meow_ui.a)。LIBC_OVERRIDES 让 # 未逐个改写的 libc 取时/睡眠入口也一并修正(静态链接,本对象强定义覆盖 libc 归档成员)。 "$CC" -Os -Wall -Wextra -static -I"$INC" -DMEOW_TIME32_LIBC_OVERRIDES \ meow_watchdog.c ../sdk/meow_time32.c -o meow_watchdog ls -la meow_watchdog md5sum meow_watchdog file meow_watchdog