Skip to content

Instantly share code, notes, and snippets.

@darealshinji
Last active April 17, 2025 14:46
Show Gist options
  • Save darealshinji/a2d64ec70bf2adee0cadea9f69efec67 to your computer and use it in GitHub Desktop.
Save darealshinji/a2d64ec70bf2adee0cadea9f69efec67 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
set -x
# how to run this script in podman:
#
# BUILD_ROOT="$HOME/Downloads"
#
# podman run --rm --init \
# -v /home:/home \
# -v /etc/passwd:/etc/passwd:ro \
# -v /etc/group:/etc/group:ro \
# -e HOME="$HOME" \
# -e BUILD_ROOT="$BUILD_ROOT" \
# -h "$(hostname)" \
# -v /tmp:/tmp \
# -it registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest \
# /bin/bash "$BUILD_ROOT/alephone-build.sh" | \
# tee "$BUILD_ROOT/build.log"
JOBS=4
if [ -z "$BUILD_ROOT" ]; then
BUILD_ROOT="$PWD"
else
cd "$BUILD_ROOT"
fi
# install extra build dependencies
apt update
#apt -y upgrade
apt -y install --no-install-recommends nasm autoconf-archive libboost-dev libboost-system-dev libboost-filesystem-dev
#### FFmpeg ####
# build FFmpeg from source, the libraries provied by apt are too old
# https://github.com/Aleph-One-Marathon/mac-frameworks/blob/master/ffmpeg/ffmpeg.mk
# https://github.com/Aleph-One-Marathon/mac-frameworks/blob/master/ffmpeg/README.txt
ffmpeg_options="\
--disable-programs \
--disable-debug \
--disable-doc \
--enable-gpl \
--enable-version3 \
--enable-postproc \
--enable-libvorbis \
--enable-libvpx \
--disable-everything \
--enable-muxer=webm \
--enable-encoder=libvorbis \
--enable-encoder=libvpx_vp8 \
--enable-demuxer=aiff \
--enable-demuxer=mp3 \
--enable-demuxer=mpegps \
--enable-demuxer=mpegts \
--enable-demuxer=mpegtsraw \
--enable-demuxer=mpegvideo \
--enable-demuxer=ogg \
--enable-demuxer=wav \
--enable-parser=mpegaudio \
--enable-parser=mpegvideo \
--enable-decoder=adpcm_ima_wav \
--enable-decoder=adpcm_ms \
--enable-decoder=gsm \
--enable-decoder=gsm_ms \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3 \
--enable-decoder=mp3float \
--enable-decoder=mpeg1video \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_u8 \
--enable-decoder=theora \
--enable-decoder=vorbis \
--enable-decoder=vp8 \
--enable-protocol=file"
git clone --depth 1 https://github.com/FFmpeg/FFmpeg -b release/6.1 ffmpeg
cd ffmpeg
./configure --prefix="$PWD/usr" $ffmpeg_options
make -j$JOBS V=1
make install
cd ..
#### AlephOne ####
git clone --depth 1 https://github.com/Aleph-One-Marathon/alephone
cd alephone
export LD_LIBRARY_PATH="$BUILD_ROOT/ffmpeg/usr/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$BUILD_ROOT/ffmpeg/usr/lib/pkgconfig"
autoreconf -if
./configure --with-boost-system=":libboost_system.a" \
--with-boost-filesystem=":libboost_filesystem.a"
make -j$JOBS V=1
strip Source_Files/alephone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment