#!/usr/bin/env bash # # build.sh — 自研极简 IPv4-only mDNS 应答器 meow_mdns(mipsel-linux-muslsf,静态) # # 背景: 完整 mDNSResponder / SAResponder 两者均需 IPv6(socket AF_INET6 在内核无 IPv6 时 fatal), # 且完整版 mdnsd 是 IPC 服务型守护进程, 自身不公布主机名 A 记录。 # 故自研本应答器: join 224.0.0.251:5353, 应答 .local A + _ssh._tcp.local PTR/SRV/TXT。 # # 目标架构 : mipsel (MIPS32r2 little-endian), musl, 静态 # 交叉编译器: ~/Project/R3ProII/.tools/zig-mipsel-cc # 产物 : bin/meow_mdns # # 用法 : ./build.sh # 构建 mipsel 静态(部署版) # 宿主单测 gcc -O2 -o meow_mdns meow_mdns.c && MEOW_MDNS_PORT=55353 MEOW_MDNS_HOST=ingenic MEOW_MDNS_ADDR=127.0.0.1 ./meow_mdns -v set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" ZIGCC="${ZIGCC:-$HOME/Project/R3ProII/.tools/zig-mipsel-cc}" echo "==> [1/2] 交叉编译 meow_mdns (zig: mipsel-linux-musleabi, -Os -static)" "$ZIGCC" -Os -static -o "$DIR/meow_mdns.tmp" "$DIR/meow_mdns.c" echo "==> [2/2] 放置产物 $DIR/bin/meow_mdns" mkdir -p "$DIR/bin" install -m 755 "$DIR/meow_mdns.tmp" "$DIR/bin/meow_mdns" rm -f "$DIR/meow_mdns.tmp" file "$DIR/bin/meow_mdns" echo "字节数: $(stat -c %s "$DIR/bin/meow_mdns")" echo "MD5 : $(md5sum "$DIR/bin/meow_mdns" | cut -d' ' -f1)" echo "构建完成: $DIR/bin/meow_mdns"