#!/bin/bash # build_audiod.sh — meow_audiod 交叉编译(mipsel 静态)+ 宿主多目标可选。 # # 目标:R3 Pro II / MeowOS(mipsel-linux-muslsf,静态)。audiod 复用 meow_ipc.h(共享协议头, # -I../meow_launcherd)。audiod 为 svcd 托管的独立守护;meow_audio 为用户侧 CLI。 # # 用法: # ./build_audiod.sh # 交叉编译 → meow_audiod(mipsel 静态) # ./build_audiod.sh cli # 交叉编译 meow_audio CLI → meow_audio(mipsel 静态) # ./build_audiod.sh host # 宿主编译 meow_audiod_host + meow_audio_host(集成测试) set -e cd "$(dirname "$0")" ROOT="$HOME/Project/R3ProII" CC="$ROOT/.tools/zig-mipsel-cc" INC="-I$ROOT/patch_v2/meow_launcherd" if [ "$1" = "host" ]; then HOST_CC="${CC_HOST:-cc}" # -ldl:BT 输出目标用 dlopen 运行时解析 libasound(pcm.bluealsa 是 alsa-lib 插件,非内核节点; # 主机/交叉工具链无 asoundlib.h/libasound,故不静态链接)。mipsel 静态 musl 不支持 dlopen,见 # meow_audiod.c bt 段注释(真机 mipsel 需主会话提供 musl-libasound 或改动态,本任务以源码+宿主为准)。 "$HOST_CC" $INC -Os -Wall -Wextra meow_audiod.c -o meow_audiod_host -lpthread -ldl "$HOST_CC" $INC -Os -Wall -Wextra meow_audio.c -o meow_audio_host -lm echo "== host builds ==" ls -la meow_audiod_host meow_audio_host file meow_audiod_host meow_audio_host exit 0 fi if [ "$1" = "cli" ]; then "$CC" $INC -Os -Wall -Wextra -static meow_audio.c -o meow_audio -lm echo "== meow_audio (mipsel static CLI) ==" ls -la meow_audio md5sum meow_audio file meow_audio exit 0 fi "$CC" $INC -Os -Wall -Wextra -static meow_audiod.c -o meow_audiod -lpthread echo "== meow_audiod (mipsel static) ==" ls -la meow_audiod md5sum meow_audiod file meow_audiod