view multimedia/ffmpeg/ffmpeg.sh @ 839:ee532bddb215

emulation/libretro-beetle-gba: initial import, closes #2120
author David Demelier <markand@malikania.fr>
date Thu, 22 Aug 2019 20:13:00 +0200
parents 1c0d1dafdec5
children a133976e0783
line wrap: on
line source

#!/bin/sh
#
# Copyright (c) 2019 David Demelier <markand@malikania.fr>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

# TODO: add the following options once the dependencies are available:
#
# OPENAL
# CHROMAPRINT
# FREI0R
# LADSPA
# AOM
# CACA
# CELT
# CDIO
# AAC (libfdk-aac)
# FLITE
# GME
# GSM
# MODPLUG
# OPENCV
# H264
# JPEG (openjpeg)
# SAMBA
# SNAPPY
# SOX
# TENSORFLOW
# MP2
# V4L
# VPX
# WAVPACK
# X264
# SDL2

PKGNAME=ffmpeg
PKGVERSION=4.2
PKGREVISION=1
PKGLICENSE="LGPLv21+"
PKGSUMMARY="cross-platform solution to convert audio and video"
PKGDOWNLOAD="https://ffmpeg.org/releases/$PKGNAME-4.2.tar.bz2"
PKGDEPENDS=""
PKGOPTIONS="ALSA
            BLURAY
            BZIP2
            CRYPTO
            FONTCONFIG
            FREETYPE
            FRIBIDI
            GMP
            JACK
            LZMA
            MP3
            OPENGL
            OPUS
            PULSEAUDIO
            SPEEX
            SSH
            SSL
            SVG
            THEORA
            VORBIS
            WEBP
            X
            X265
            XML
            ZLIB"

: ${ALSA:=yes}
: ${BLURAY:=no}
: ${BZIP2:=yes}
: ${CRYPTO:=no}
: ${FONTCONFIG:=no}
: ${FREETYPE:=no}
: ${FRIBIDI:=no}
: ${GMP:=no}
: ${JACK:=no}
: ${LZMA:=yes}
: ${MP3:=yes}
: ${OPENGL:=no}
: ${OPUS:=no}
: ${PULSEAUDIO:=no}
: ${SPEEX:=no}
: ${SSH:=no}
: ${SSL:=no}
: ${SVG:=no}
: ${THEORA:=no}
: ${VORBIS:=no}
: ${WEBP:=no}
: ${X265:=no}
: ${X:=no}
: ${XML:=no}
: ${ZLIB:=no}

if [ "$ALSA" = "yes" ]; then
	PKGDEPENDS="audio/alsa-lib $PKGDEPENDS"
	with_alsa="--enable-alsa"
else
	with_alsa="--disable-alsa"
fi

if [ "$BLURAY" = "yes" ]; then
	PKGDEPENDS="multimedia/libbluray $PKGDEPENDS"
	with_bluray="--enable-libbluray"
else
	with_bluray="--disable-libbluray"
fi

if [ "$BZIP2" = "yes" ]; then
	PKGDEPENDS="compression/bzip2 $PKGDEPENDS"
	with_bzip2="--enable-bzlib"
else
	with_bzip2="--disable-bzlib"
fi

if [ "$CRYPTO" = "yes" ]; then
	PKGDEPENDS="crypto/libgcrypt $PKGDEPENDS"
	with_crypto="--enable-gcrypt"
else
	with_crypto="--disable-gcrypt"
fi

if [ "$FONTCONFIG" = "yes" ]; then
	PKGDEPENDS="fonts/fontconfig $PKGDEPENDS"
	with_fontconfig="--enable-fontconfig"
else
	with_fontconfig="--disable-fontconfig"
fi

if [ "$FREETYPE" = "yes" ]; then
	PKGDEPENDS="fonts/freetype $PKGDEPENDS"
	with_freetype="--enable-libfreetype"
else
	with_freetype="--disable-libfreetype"
fi

if [ "$FRIBIDI" = "yes" ]; then
	PKGDEPENDS="fonts/fribidi $PKGDEPENDS"
	with_fribidi="--enable-libfribidi"
else
	with_fribidi="--disable-libfribidi"
fi

if [ "$GMP" = "yes" ]; then
	PKGDEPENDS="lib/gmp $PKGDEPENDS"
	with_gmp="--enable-gmp"
else
	with_gmp="--disable-gmp"
fi

if [ "$JACK" = "yes" ]; then
	PKGDEPENDS="audio/jack $PKGDEPENDS"
	with_jack="--enable-libjack"
else
	with_jack="--disable-libjack"
fi

if [ "$LZMA" = "yes" ]; then
	PKGDEPENDS="compression/xz $PKGDEPENDS"
	with_lzma="--enable-lzma"
else
	with_lzma="--disable-lzma"
fi

if [ "$MP3" = "yes" ]; then
	PKGDEPENDS="audio/lame $PKGDEPENDS"
	with_mp3="--enable-libmp3lame"
else
	with_mp3="--disable-libmp3lame"
fi

if [ "$OPENGL" = "yes" ]; then
	PKGDEPENDS="graphics/mesa $PKGDEPENDS"
	with_opengl="--enable-opengl"
else
	with_opengl="--disable-opengl"
fi

if [ "$OPUS" = "yes" ]; then
	PKGDEPENDS="audio/opus $PKGDEPENDS"
	with_opus="--enable-libopus"
else
	with_opus="--disable-libopus"
fi

if [ "$PULSEAUDIO" = "yes" ]; then
	PKGDEPENDS="audio/pulseaudio $PKGDEPENDS"
	with_pulseaudio="--enable-libpulse"
else
	with_pulseaudio="--disable-libpulse"
fi

if [ "$SPEEX" = "yes" ]; then
	PKGDEPENDS="audio/speex $PKGDEPENDS"
	with_speex="--enable-libspeex"
else
	with_speex="--disable-libspeex"
fi

if [ "$SSH" = "yes" ]; then
	PKGDEPENDS="network/libssh $PKGDEPENDS"
	with_ssh="--enable-libssh"
else
	with_ssh="--disable-libssh"
fi

if [ "$SSL" = "yes" ] || [ "$SSL" = "libressl" ]; then
	PKGDEPENDS="crypto/libressl $PKGDEPENDS"
	with_ssl="--enable-libtls"
elif [ "$SSL" = "gnutls" ]; then
	PKGDEPENDS="crypto/gnutls $PKGDEPENDS"
	with_ssl="--enable-gnutls"
else
	with_ssl="--disable-gnutls --disable-libtls --disable-openssl --disable-mbedtls"
fi

if [ "$SVG" = "yes" ]; then
	PKGDEPENDS="graphics/librsvg $PKGDEPENDS"
	with_svg="--enable-librsvg"
else
	with_svg="--disable-librsvg"
fi

if [ "$THEORA" = "yes" ]; then
	PKGDEPENDS="multimedia/libtheora $PKGDEPENDS"
	with_theora="--enable-libtheora"
else
	with_theora="--disable-libtheora"
fi

if [ "$VORBIS" = "yes" ]; then
	PKGDEPENDS="audio/libvorbis $PKGDEPENDS"
	with_vorbis="--enable-libvorbis"
else
	with_vorbis="--disable-libvorbis"
fi

if [ "$WEBP" = "yes" ]; then
	PKGDEPENDS="graphics/libwebp $PKGDEPENDS"
	with_webp="--enable-libwebp"
else
	with_webp="--disable-libwebp"
fi

if [ "$X265" = "yes" ]; then
	PKGDEPENDS="multimedia/x265 $PKGDEPENDS"
	with_x265="--enable-libx265"
else
	with_x265="--disable-libx265"
fi

if [ "$X" = "yes" ]; then
	PKGDEPENDS="x11/libx11 x11/libxcb $PKGDEPENDS"
	with_x="--enable-xlib"
	with_x="--enable-libxcb $with_x"
	with_x="--enable-libxcb-shm $with_x"
	with_x="--enable-libxcb-xfixes $with_x"
	with_x="--enable-libxcb-shape $with_x"
else
	with_x="--disable-xlib"
	with_x="--disable-libxcb $with_x"
	with_x="--disable-libxcb-shm $with_x"
	with_x="--disable-libxcb-xfixes $with_x"
	with_x="--disable-libxcb-shape $with_x"
fi

if [ "$XML" = "yes" ]; then
	PKGDEPENDS="text/libxml2 $PKGDEPENDS"
	with_xml="--enable-libxml2"
else
	with_xml="--disable-libxml2"
fi

if [ "$ZLIB" = "yes" ]; then
	PKGDEPENDS="compression/zlib $PKGDEPENDS"
	with_zlib="--enable-zlib"
else
	with_zlib="--disable-zlib"
fi

: ${CC:=clang}
: ${CFLAGS:=-O2}
: ${CXX:=clang++}
: ${CXXFLAGS:=-O2}
: ${LDFLAGS:=}
: ${LIBS:=}

build()
{
	rm -rf $PKGNAME-$PKGVERSION
	tar xvf $PKGNAME-$PKGVERSION.tar.bz2
	cd $PKGNAME-$PKGVERSION

	sed -i -e 's|prefix_default="/usr/local"|prefix_default=|' configure
	CC="$CC" \
	CFLAGS="$CFLAGS" \
	CXX="$CXX" \
	CXXFLAGS="$CXXFLAGS" \
	LDFLAGS="$LDFLAGS" \
	LIBS="$LIBS" \
	./configure \
		--enable-shared \
		--logfile=/dev/null \
		$with_alsa \
		$with_bluray \
		$with_bzip2 \
		$with_crypto \
		$with_fontconfig \
		$with_freetype \
		$with_fribidi \
		$with_gmp \
		$with_jack \
		$with_lzma \
		$with_mp3 \
		$with_opengl \
		$with_opus \
		$with_pulseaudio \
		$with_speex \
		$with_ssh \
		$with_ssl \
		$with_svg \
		$with_theora \
		$with_vorbis \
		$with_webp \
		$with_x265 \
		$with_x \
		$with_xml \
		$with_zlib
	make
	make install DESTDIR=$DESTDIR

	cd ..
	rm -rf $PKGNAME-$PKGVERSION
}