|
| 1 | +# TEMP spike: capture the macOS-arm64 FFmpeg config snapshot (config.h + make -n |
| 2 | +# source list) on a macos-15 runner, matching the linux hermetic profile. This is |
| 3 | +# the raw material for the compat.ffmpeg `macosx` block. workflow_dispatch only. |
| 4 | +name: snapshot-macos-ffmpeg |
| 5 | +on: |
| 6 | + workflow_dispatch: |
| 7 | +jobs: |
| 8 | + capture: |
| 9 | + runs-on: macos-15 |
| 10 | + timeout-minutes: 30 |
| 11 | + steps: |
| 12 | + - name: Fetch FFmpeg 8.1.2 |
| 13 | + run: | |
| 14 | + curl -L -fsS -o ffmpeg.tar.gz "https://ffmpeg.org/releases/ffmpeg-8.1.2.tar.gz" |
| 15 | + tar -xzf ffmpeg.tar.gz |
| 16 | + - name: configure (hermetic profile, clang) + make -n |
| 17 | + run: | |
| 18 | + mkdir build && cd build |
| 19 | + ../ffmpeg-8.1.2/configure --cc=clang --disable-autodetect --disable-programs --disable-doc >configure.log 2>&1 || { echo "CONFIGURE FAILED"; tail -60 configure.log; exit 1; } |
| 20 | + echo "=== configure OK. key config.h facts ===" |
| 21 | + grep -E '#define (OS_NAME|ARCH_AARCH64|ARCH_X86_64|EXTERN_PREFIX|SLIBSUF|HAVE_NEON |HAVE_VFP |HAVE_PTHREADS |HAVE_W32THREADS |HAVE_MMX |HAVE_ALIGNED_MALLOC |HAVE_MEMALIGN |HAVE_MACH_ABSOLUTE_TIME |HAVE_UNISTD_H |HAVE_WINDOWS_H )' config.h |
| 22 | + make -n >make-n.log 2>/dev/null || true |
| 23 | + echo "=== source list (make -n ground truth) ===" |
| 24 | + echo "total .c: $(grep -oE '[^ ]+\.c\b' make-n.log | sort -u | wc -l)" |
| 25 | + echo "total .S (GAS asm): $(grep -oE '[^ ]+\.S\b' make-n.log | sort -u | wc -l)" |
| 26 | + echo "total .asm (NASM): $(grep -oE '[^ ]+\.asm\b' make-n.log | sort -u | wc -l)" |
| 27 | + echo "aarch64 dir sources: $(grep -oE '[^ ]+/aarch64/[^ ]+\.[cS]\b' make-n.log | sort -u | wc -l)" |
| 28 | + echo "=== sample aarch64 .S ==="; grep -oE '[^ ]+/aarch64/[^ ]+\.S\b' make-n.log | sort -u | head -8 |
| 29 | + mkdir -p ../snapshot |
| 30 | + cp config.h config_components.h configure.log make-n.log ../snapshot/ 2>/dev/null || true |
| 31 | + find . \( -name avconfig.h -o -name ffversion.h \) -exec cp {} ../snapshot/ \; 2>/dev/null || true |
| 32 | + - uses: actions/upload-artifact@v4 |
| 33 | + with: |
| 34 | + name: ffmpeg-macosx-arm64-snapshot |
| 35 | + path: snapshot/ |
0 commit comments