2024-03-01 20:02:00 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -ex
|
|
|
|
DEPS_DIR=$(dirname ${BASH_SOURCE[0]})
|
|
|
|
cd "$DEPS_DIR"
|
|
|
|
. common
|
|
|
|
|
2024-10-02 04:17:09 +09:00
|
|
|
VERSION=7.1
|
2024-03-01 20:02:00 +01:00
|
|
|
FILENAME=ffmpeg-$VERSION.tar.xz
|
|
|
|
PROJECT_DIR=ffmpeg-$VERSION
|
2024-10-02 04:17:09 +09:00
|
|
|
SHA256SUM=40973D44970DBC83EF302B0609F2E74982BE2D85916DD2EE7472D30678A7ABE6
|
2024-03-01 20:02:00 +01:00
|
|
|
|
|
|
|
cd "$SOURCES_DIR"
|
|
|
|
|
|
|
|
if [[ -d "$PROJECT_DIR" ]]
|
|
|
|
then
|
|
|
|
echo "$PWD/$PROJECT_DIR" found
|
|
|
|
else
|
|
|
|
get_file "https://ffmpeg.org/releases/$FILENAME" "$FILENAME" "$SHA256SUM"
|
|
|
|
tar xf "$FILENAME" # First level directory is "$PROJECT_DIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir -p "$BUILD_DIR/$PROJECT_DIR"
|
|
|
|
cd "$BUILD_DIR/$PROJECT_DIR"
|
|
|
|
|
|
|
|
if [[ "$HOST" = win32 ]]
|
|
|
|
then
|
|
|
|
ARCH=x86
|
|
|
|
elif [[ "$HOST" = win64 ]]
|
|
|
|
then
|
|
|
|
ARCH=x86_64
|
|
|
|
else
|
|
|
|
echo "Unsupported host: $HOST" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# -static-libgcc to avoid missing libgcc_s_dw2-1.dll
|
|
|
|
# -static to avoid dynamic dependency to zlib
|
|
|
|
export CFLAGS='-static-libgcc -static'
|
|
|
|
export CXXFLAGS="$CFLAGS"
|
|
|
|
export LDFLAGS='-static-libgcc -static'
|
|
|
|
|
|
|
|
if [[ -d "$HOST" ]]
|
|
|
|
then
|
|
|
|
echo "'$PWD/$HOST' already exists, not reconfigured"
|
|
|
|
cd "$HOST"
|
|
|
|
else
|
|
|
|
mkdir "$HOST"
|
|
|
|
cd "$HOST"
|
|
|
|
|
2024-11-21 22:44:12 +01:00
|
|
|
conf=(
|
|
|
|
--prefix="$INSTALL_DIR/$HOST"
|
|
|
|
--enable-cross-compile
|
|
|
|
--target-os=mingw32
|
|
|
|
--arch="$ARCH"
|
|
|
|
--cross-prefix="${HOST_TRIPLET}-"
|
|
|
|
--cc="${HOST_TRIPLET}-gcc"
|
|
|
|
--extra-cflags="-O2 -fPIC"
|
|
|
|
--enable-shared
|
|
|
|
--disable-static
|
|
|
|
--disable-programs
|
|
|
|
--disable-doc
|
|
|
|
--disable-swscale
|
|
|
|
--disable-postproc
|
|
|
|
--disable-avfilter
|
|
|
|
--disable-avdevice
|
|
|
|
--disable-network
|
|
|
|
--disable-everything
|
|
|
|
--disable-vulkan
|
|
|
|
--disable-vaapi
|
|
|
|
--disable-vdpau
|
|
|
|
--enable-swresample
|
|
|
|
--enable-decoder=h264
|
|
|
|
--enable-decoder=hevc
|
|
|
|
--enable-decoder=av1
|
|
|
|
--enable-decoder=pcm_s16le
|
|
|
|
--enable-decoder=opus
|
|
|
|
--enable-decoder=aac
|
|
|
|
--enable-decoder=flac
|
|
|
|
--enable-decoder=png
|
|
|
|
--enable-protocol=file
|
|
|
|
--enable-demuxer=image2
|
|
|
|
--enable-parser=png
|
|
|
|
--enable-zlib
|
|
|
|
--enable-muxer=matroska
|
|
|
|
--enable-muxer=mp4
|
|
|
|
--enable-muxer=opus
|
|
|
|
--enable-muxer=flac
|
|
|
|
--enable-muxer=wav
|
|
|
|
)
|
|
|
|
|
|
|
|
"$SOURCES_DIR/$PROJECT_DIR"/configure "${conf[@]}"
|
2024-03-01 20:02:00 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
make -j
|
|
|
|
make install
|