summaryrefslogtreecommitdiffstats
path: root/ffmpeg3-compat
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2019-07-18 22:03:47 +0000
committer Eric Hameleers <alien@slackware.com>2019-07-18 22:03:47 +0000
commita537d1c58345ebe5efc62f0493a907caf2e009d7 (patch)
tree94d549cacc6d8e9ebf32dfe99e1b6a56b22f16a0 /ffmpeg3-compat
parent13f319fc64203c039aafc907d09cc900dfc6edb2 (diff)
downloadasb-a537d1c58345ebe5efc62f0493a907caf2e009d7.tar.gz
asb-a537d1c58345ebe5efc62f0493a907caf2e009d7.tar.xz
ffmpeg3-compat: first release, based on ffmpeg.SlackBuild for 3.4.6
Diffstat (limited to 'ffmpeg3-compat')
-rwxr-xr-xffmpeg3-compat/build/ffmpeg3-compat.SlackBuild1597
1 files changed, 1597 insertions, 0 deletions
diff --git a/ffmpeg3-compat/build/ffmpeg3-compat.SlackBuild b/ffmpeg3-compat/build/ffmpeg3-compat.SlackBuild
new file mode 100755
index 00000000..012ab654
--- /dev/null
+++ b/ffmpeg3-compat/build/ffmpeg3-compat.SlackBuild
@@ -0,0 +1,1597 @@
+#!/bin/bash
+# $Id$
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Eric Hameleers, Eindhoven, NL
+# All rights reserved.
+#
+# Permission to use, copy, modify, and 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.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+# -----------------------------------------------------------------------------
+#
+# Slackware SlackBuild script
+# ===========================
+# By: Eric Hameleers <alien@slackware.com>
+# For: ffmpeg3-compat
+# Descr: software to record, convert and stream audio and video
+# URL: http://ffmpeg.org/
+# Needs:
+# Changelog:
+# 3.4.6-1: 30/mar/2019 by Eric Hameleers <alien@slackware.com>
+# * Created (re-using my ffmpeg.SlackBuild script).
+# This package only contains ffmpeg3 libraries, and no
+# programs, headers or configuration files.
+#
+# Run 'sh ffmpeg3-compat.SlackBuild' to build a Slackware package.
+# The package (.txz) plus descriptive .txt file are created in /tmp .
+# Install using 'installpkg'.
+#
+# -----------------------------------------------------------------------------
+
+
+PRGNAM=ffmpeg3-compat
+SRCNAM=ffmpeg
+VERSION=${VERSION:-3.4.6}
+BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:-"-j$(nproc)"}
+TAG=${TAG:-"alien"}
+
+# -- PATENT ALERT! --
+# FFmpeg can be built with AAC audio encoder (used in MP4) but this library is
+# 'contaminated' with patents from Apple etc.
+# You can build these patended algorithms into ffmpeg, and if you are an
+# ordinary end user, no one will bother you for using them.
+# For the binaries based on this SlackBuild that I distribute, it is a
+# different story. I am not allowed to distribute binary packages that
+# incorporate non-free code. So here you go. My Slackware package was built
+# with "USE_PATENTS=NO" i.e. without using the aac libs.
+USE_PATENTS=${USE_PATENTS:-"NO"}
+
+# I don't care if the user says "no" or "NO":
+USE_PATENTS=$(echo $USE_PATENTS | tr 'a-z' 'A-Z')
+
+if pkg-config --exists libpulse 2>/dev/null ; then
+ # Explicitly enable pulseaudio or it will not be picked up:
+ USE_PULSE="--enable-libpulse"
+else
+ USE_PULSE=""
+fi
+
+if pkg-config --exists OpenCL 2>/dev/null ; then
+ # Enable opencl only when present:
+ USE_OPENCL="--enable-opencl"
+else
+ USE_OPENCL=""
+fi
+
+if pkg-config --exists libbluray 2>/dev/null ; then
+ # Slackware 15.0 and newer have libbluray:
+ USE_BLURAY="--enable-libbluray"
+else
+ USE_BLURAY=""
+fi
+
+if pkg-config --exists libwebp 2>/dev/null ; then
+ # Slackware 15.0 and newer have libwebp:
+ USE_WEBP="--enable-libwebp"
+else
+ USE_WEBP=""
+fi
+
+DOCS="COPYING* CREDITS Changelog MAINTAINERS RELEASE* VERSION *.md \
+ doc/*.txt doc/*.html"
+DOCS_AMR="COPYING ChangeLog README"
+DOCS_AMRWBENC="COPYING ChangeLog NOTICE README"
+DOCS_ASS="COPYING Changelog"
+DOCS_AVC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
+DOCS_DC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
+DOCS_FDKAAC="ChangeLog NOTICE"
+DOCS_MFX="COPYING README.md"
+DOCS_FRIBIDI="AUTHORS COPYING ChangeLog NEWS README THANKS TODO"
+DOCS_GSM="COPYRIGHT ChangeLog* INSTALL MACHINES MANIFEST README"
+DOCS_LAME="API COPYING ChangeLog HACKING LICENSE README STYLEGUIDE TODO USAGE"
+DOCS_LIBVA="COPYING"
+DOCS_LIBZVBI="AUTHORS BUGS COPYING COPYING.LIB ChangeLog INSTALL NEWS README TODO"
+DOCS_OPUS="AUTHORS COPYING ChangeLog NEWS README"
+DOCS_ORC="COPYING README TODO"
+DOCS_RAW1394="AUTHORS ChangeLog INSTALL NEWS README"
+DOCS_RTMP="AUTHORS COPYING ChangeLog README"
+DOCS_SCHROEDINGER="AUTHORS COPYING* NEWS TODO"
+DOCS_SDL2="*.txt"
+DOCS_SPEEX="AUTHORS COPYING ChangeLog NEWS README* TODO"
+DOCS_V4L2="COPYING* ChangeLog README* TODO"
+DOCS_VDPAU="AUTHORS COPYING ChangeLog NEWS README"
+DOCS_VPX="AUTHORS CHANGELOG LICENSE README"
+DOCS_X264="AUTHORS COPYING"
+DOCS_X265="AUTHORS COPYING"
+
+# Support libraries:
+AMRWBENC=0.1.3
+AMR=0.1.3
+ASS=0.14.0
+AVC1394=0.5.4
+DC1394=2.1.2
+FDKAAC=2.0.0
+MFX=1.25
+FRIBIDI=1.0.5
+GSM=1.0.16
+LAME=3.100
+LIBVA=2.5.0
+LIBZVBI=0.2.35
+OPUS=1.3.1
+ORC=0.4.29
+RAW1394=2.0.5
+RTMP=2.3
+SCHROEDINGER=1.0.11
+SDL2=2.0.9
+SPEEX=1.2.0
+V4L=1.16.5
+VDPAU=1.2
+VPX=1.8.1
+X264=20190717-2245
+X265=3.1.1
+
+# Where do we look for sources?
+SRCDIR=$(cd $(dirname $0); pwd)
+
+# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
+TMP=${TMP:-/tmp/build}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+# Check for yasm, abort if not found:
+if ! which yasm >/dev/null 2>&1 ; then
+ echo "##"
+ echo "## The 'yasm' program does not seem to be installed."
+ echo "## The X264/VP8 codec compilation needs yasm (nasm will not do)!"
+ echo "## Aborting the build."
+ echo "##"
+ exit 1
+fi
+
+# ---------------------------------------------------------------------------
+# Source tarballs and source URLs.
+# Sources which are not patented should have SRCPAT[n]="NO"
+# Sources which are patented should have SRCPAT[n]="YES" which prevents then
+# from being downloaded and used if we build a patent-free package.
+# ---------------------------------------------------------------------------
+
+# FFMPEG sources:
+if [ "$VERSION" == "HEAD" ]; then
+ # We check out git's HEAD:
+ BRANCH="master"
+ GITURI=git://git.videolan.org/ffmpeg.git
+ SRCVER=$(date +%Y%m%d)
+ SRCURL[0]=""
+elif [ "$(echo $VERSION | cut -c1-2)" == "20" ]; then
+ # We check out git at a specific date:
+ BRANCH="master"
+ GITURI=git://git.videolan.org/ffmpeg.git
+ SRCVER=$VERSION
+ SRCURL[0]=""
+else
+ BRANCH=""
+ GITURI=""
+ SRCVER=$VERSION
+ SRCURL[0]="http://ffmpeg.org/releases/ffmpeg-${SRCVER}.tar.bz2"
+fi
+
+SOURCE[0]="$SRCDIR/sources/ffmpeg-${SRCVER}.tar.bz2"
+SRCPAT[0]="NO"
+
+# VDPAU for video hardware acceleration:
+SOURCE[1]="$SRCDIR/sources/libvdpau-${VDPAU}.tar.bz2"
+SRCURL[1]="http://people.freedesktop.org/~aplattner/vdpau/libvdpau-${VDPAU}.tar.bz2"
+SRCPAT[1]="NO"
+
+# SDL2 is required by ffplay:
+SOURCE[2]="$SRCDIR/sources/SDL2-${SDL2}.tar.gz"
+SRCURL[2]="http://www.libsdl.org/release/SDL2-${SDL2}.tar.gz"
+SRCPAT[2]="NO"
+
+# SPEEX audio codec:
+SOURCE[3]="$SRCDIR/sources/speex-${SPEEX}.tar.gz"
+SRCURL[3]="http://downloads.us.xiph.org/releases/speex/speex-${SPEEX}.tar.gz"
+SRCPAT[3]="NO"
+
+# X264 encoder - for H264/AVC video streams, for static linking
+SOURCE[4]="$SRCDIR/sources/x264-snapshot-${X264}.tar.bz2"
+SRCURL[4]="https://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264}.tar.bz2"
+SRCPAT[4]="NO"
+
+# fdk-aac en/decoder from the Android Open Source Project (opencore-amr):
+SOURCE[5]="$SRCDIR/sources/fdk-aac-${FDKAAC}.tar.gz"
+SRCURL[5]="https://downloads.sourceforge.net/opencore-amr/fdk-aac-${FDKAAC}.tar.gz"
+SRCPAT[5]="YES"
+
+# GSM support:
+SOURCE[6]="$SRCDIR/sources/gsm-$GSM.tar.gz"
+SRCURL[6]="http://www.quut.com/gsm/gsm-$GSM.tar.gz"
+SRCPAT[6]="NO"
+
+# Lame is used for the audio in FLV videos; will statically link with ffmpeg
+SOURCE[7]="$SRCDIR/sources/lame-$LAME.tar.gz"
+SRCURL[7]="https://downloads.sourceforge.net/lame/lame-$LAME.tar.gz"
+SRCPAT[7]="NO"
+
+# Library to support the AVC (Audio/Video Control) Digital Interface Command Set
+SOURCE[8]="$SRCDIR/sources/libavc1394-${AVC1394}.tar.gz"
+SRCURL[8]="https://downloads.sourceforge.net/libavc1394/libavc1394-${AVC1394}.tar.gz"
+SRCPAT[8]="NO"
+
+# Library needed to control IEEE 1394 (firewire-) based cameras
+SOURCE[9]="$SRCDIR/sources/libraw1394-${RAW1394}.tar.gz"
+SRCURL[9]="https://downloads.sourceforge.net/libraw1394/libraw1394-${RAW1394}.tar.gz"
+SRCPAT[9]="NO"
+
+SOURCE[10]="$SRCDIR/sources/libdc1394-${DC1394}.tar.gz"
+SRCURL[10]="https://downloads.sourceforge.net/libdc1394/libdc1394-${DC1394}.tar.gz"
+SRCPAT[10]="NO"
+
+# librtmp library, supporting RTMP streams
+SOURCE[11]="$SRCDIR/sources/rtmpdump-${RTMP}.tgz"
+SRCURL[11]="http://rtmpdump.mplayerhq.hu/download/rtmpdump-${RTMP}.tgz"
+SRCPAT[11]="NO"
+
+# libvpx library, containing the VP8 codec
+SOURCE[12]="$SRCDIR/sources/libvpx-${VPX}.tar.gz"
+SRCURL[12]="https://github.com/webmproject/libvpx/archive/v${VPX}.tar.gz"
+SRCPAT[12]="NO"
+
+# Library supporting VAAPI (GPU-accelerated video playback interface)
+SOURCE[13]="$SRCDIR/sources/libva-${LIBVA}.tar.bz2"
+SRCURL[13]="https://github.com/01org/libva/releases/download/${LIBVA}/libva-${LIBVA}.tar.bz2"
+SRCPAT[13]="NO"
+
+# AMR-WB encoder libraries used to encode 3GPP audio
+SOURCE[14]="$SRCDIR/sources/vo-amrwbenc-${AMRWBENC}.tar.gz"
+SRCURL[14]="http://downloads.sourceforge.net/opencore-amr/vo-amrwbenc-${AMRWBENC}.tar.gz"
+SRCPAT[14]="NO"
+
+# AMR-NB de/encoder and WB decoder libraries used to de/encode 3GPP audio
+SOURCE[15]="$SRCDIR/sources/opencore-amr-${AMR}.tar.gz"
+SRCURL[15]="http://downloads.sourceforge.net/opencore-amr/opencore-amr-${AMR}.tar.gz"
+SRCPAT[15]="NO"
+
+# Videolan's HEVC (x265) codec:
+SOURCE[16]="$SRCDIR/sources/x265-${X265}.tar.gz"
+SRCURL[16]="http://github.com/videolan/x265/archive/${X265}.tar.gz"
+SRCPAT[16]="NO"
+
+# Unicode BiDirectional algorithm library, requirement for libass.
+SOURCE[17]="$SRCDIR/sources/fribidi-${FRIBIDI}.tar.bz2"
+SRCURL[17]="https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI}/fribidi-${FRIBIDI}.tar.bz2"
+SRCPAT[17]="NO"
+
+# Libass - portable library for SSA/ASS subtitles rendering
+SOURCE[18]="$SRCDIR/sources/libass-$ASS.tar.xz"
+SRCURL[18]="https://github.com/libass/libass/releases/download/${ASS}/libass-$ASS.tar.xz"
+SRCPAT[18]="NO"
+
+# Collection of video4linux support libraries
+SOURCE[19]="$SRCDIR/sources/v4l-utils-${V4L}.tar.bz2"
+SRCURL[19]="http://linuxtv.org/downloads/v4l-utils/v4l-utils-${V4L}.tar.bz2"
+SRCPAT[19]="NO"
+
+# opus codec:
+SOURCE[20]="$SRCDIR/sources/opus-${OPUS}.tar.gz"
+SRCURL[20]="http://downloads.xiph.org/releases/opus/opus-${OPUS}.tar.gz"
+SRCPAT[20]="NO"
+
+# mfx_dispatch library, for HW-accelerated playback on Intel GPUs:
+SOURCE[21]="$SRCDIR/sources/mfx_dispatch-${MFX}.tar.xz"
+SRCURL[21]="https://github.com/lu-zero/mfx_dispatch/archive/${MFX}.tar.gz"
+SRCPAT[21]="NO"
+
+# libzvbi for teletext subtitle processing:
+SOURCE[22]="$SRCDIR/sources/zvbi-${LIBZVBI}.tar.bz2"
+SRCURL[22]="http://downloads.sourceforge.net/zapping/zvbi-${LIBZVBI}.tar.bz2"
+SRCPAT[22]="NO"
+
+
+# Use the src_checkout() function if no downloadable tarball exists.
+# This function checks out sources from SVN/CVS and creates a tarball of them.
+src_checkout() {
+ # Param #1 : index in the SOURCE[] array.
+ # Param #2 : full path to where SOURCE[$i] tarball should be created.
+ # Determine the tarball extension:
+ PEXT=$(echo "${2}" | sed -r -e 's/.*[^.].(tar.xz|tar.gz|tar.bz2|tgz).*/\1/')
+ case "$PEXT" in
+ "tar.xz") TARCOMP="J" ;;
+ "tar.gz") TARCOMP="z" ;;
+ "tgz") TARCOMP="z" ;;
+ "tar.bz2") TARCOMP="j" ;;
+ *) echo "Archive can only have extension 'tar.xz', '.tar.gz' '.tar.bz2' or '.tgz'" ; exit 1 ;;
+ esac
+ case ${1} in
+ 0) # ffmpeg-${VERSION}
+ mkdir ${SRCNAM}_temp_checkout_$$ \
+ && cd ${SRCNAM}_temp_checkout_$$
+
+ if [ "$VERSION" = "HEAD" ]; then
+ # Checkout without downloading version history (fast!):
+ echo "Checking out HEAD from '$GITURI':"
+ git clone --depth=1 ${GITURI} ${SRCNAM}-${SRCVER}
+ else
+ # Checkout code from a certain branch and/or date; this will take a
+ # long time because we have to clone the complete git-repository first:
+ echo "Checking out $BRANCH at date $SRCVER from '$GITURI':"
+ git clone ${GITURI} ${SRCNAM}-${SRCVER} \
+ && cd ${SRCNAM}-${SRCVER} \
+ && git checkout $BRANCH \
+ && git checkout $(git rev-list -n 1 --before="`date -d $SRCVER`" $BRANC
+H) \
+ && cd ..
+ fi
+ chown -R root:root . \
+ && tar --exclude .git -${TARCOMP}cf ${2} ${SRCNAM}-${SRCVER}
+ cd ..
+ rm -rf ${SRCNAM}_temp_checkout_$$
+ # If VERSION was "HEAD" we still want a date to appear in the pkgname:
+ VERSION=${SRCVER}
+ ;;
+ 13) # We clone the git of libvpx at a certain date:
+ mkdir libvpx-${VPX} \
+ && cd libvpx-${VPX} \
+ && git clone git://review.webmproject.org/libvpx.git . \
+ && git checkout $(git rev-list -n 1 --before="`date -d $VPX`" master) \
+ && chown -R root:root . \
+ && cd .. \
+ && tar --exclude .git -${TARCOMP}cf ${2} libvpx-${VPX}
+ rm -rf libvpx-${VPX}
+ ;;
+ 24) # We clone the git of mfx_dispatch at a certain date:
+ mkdir mfx_dispatch-${MFX} \
+ && cd mfx_dispatch-${MFX} \
+ && git clone https://github.com/lu-zero/mfx_dispatch.git . \
+ && git checkout $(git rev-list -n 1 --before="`date -d $MFX`" master) \
+ && chown -R root:root . \
+ && cd .. \
+ && tar --exclude .git -${TARCOMP}cf ${2} mfx_dispatch-${MFX}
+ rm -rf mfx_dispatch-${MFX}
+ ;;
+ *) # Do nothing
+ ;;
+ esac
+}
+
+if [ "${USE_PATENTS}" == "YES" ]; then
+ echo ""
+ echo "**"
+ echo "** This build uses patented code (AAC encoder)"
+ echo "** Run the command 'USE_PATENTS=NO $0 $*' to avoid patent issues."
+ echo "**"
+ echo ""
+ sleep 1
+fi
+
+##
+## --- with a little luck, you won't have to edit below this point --- ##
+##
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+case "$ARCH" in
+ i?86) SLKCFLAGS="-O2 -march=${ARCH} -mtune=i686"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ x86_64) SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64 -fPIC"; LIBDIRSUFFIX="64"
+ ;;
+ arm*) SLKCFLAGS="-O2 -march=armv5te"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ *) SLKCFLAGS="-O2"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+esac
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+# Exit the script on errors:
+set -e
+trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR
+# Catch unitialized variables:
+set -u
+P1=${1:-1}
+
+# Save old umask and set to 0022:
+_UMASK_=$(umask)
+umask 0022
+
+# Create working directories:
+mkdir -p $TMP/tmp-$PRGNAM # location to build the source
+if [ "$P1" != "--oldbuild" ]; then
+ # If the "--oldbuild" parameter is present, we keep
+ # the old build files and continue;
+ # By default we remove the remnants of previous build and continue:
+ rm -rf $TMP/tmp-$PRGNAM/* $OUTPUT/*${PRGNAM}*.log
+fi
+mkdir -p $PKG # place for the package to be built
+rm -rf $PKG/* # We always erase old package's contents:
+mkdir -p $OUTPUT # place for the package to be saved
+
+# Source file availability:
+
+# Regular URL downloads follow:
+for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
+ # Only download patented code if we are allowing it:
+ if [ "${USE_PATENTS}" == "YES" -o "${SRCPAT[$i]}" != "YES" ]; then
+ if ! [ -f ${SOURCE[$i]} ]; then
+ echo "Source '$(basename ${SOURCE[$i]})' not available yet..."
+ # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
+ [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})"
+ if ! [ "x${SRCURL[$i]}" == "x" ]; then
+ echo "Will download file to $(dirname $SOURCE[$i])"
+ if ! $(wget --no-check-certificate -nv -T 20 -O "${SOURCE[$i]}" "${SRCURL[$i]}"); then
+ echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build."
+ mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL
+ exit 1
+ fi
+ else
+ # Try if we have a SVN/CVS download routine for ${SOURCE[$i]}
+ echo "Will checkout sources to $(dirname $SOURCE[$i])"
+ src_checkout $i "${SOURCE[$i]}"
+ fi
+ if [ ! -f "${SOURCE[$i]}" -o ! -s "${SOURCE[$i]}" ]; then
+ echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build."
+ exit 1
+ fi
+ fi
+ fi
+done
+
+if [ "$P1" == "--download" ]; then
+ echo "Download complete."
+ exit 0
+fi
+
+# --- PACKAGE BUILDING ---
+
+echo "++"
+echo "|| $PRGNAM-$VERSION"
+echo "++"
+
+cd $TMP/tmp-$PRGNAM
+if [ "$P1" != "--oldbuild" ]; then
+ echo "Extracting the source archive(s) for $PRGNAM..."
+ for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
+ # Only extract patented code if we are allowing it:
+ if [ "${USE_PATENTS}" == "YES" -o "${SRCPAT[$i]}" != "YES" ]; then
+ if $(file ${SOURCE[$i]} | grep -qi ": zip"); then
+ unzip ${SOURCE[$i]}
+ else
+ tar -xvf ${SOURCE[$i]}
+ fi
+ fi
+ done
+fi
+chown -R root:root *
+chmod -R u+w,go+r-w,a+X-s *
+
+# --- BUILDING ---
+
+echo Building ...
+
+# We will be installing static libs into the following directory:
+# (when linking ffmpeg together, these libs will be found & used)
+mkdir -p $TMP/tmp-$PRGNAM/ffmpegdeps/usr/{bin,include,lib,man}
+FFMPEGDEPSDIR="$TMP/tmp-$PRGNAM/ffmpegdeps"
+
+# -----------------------------------------------------------------------------
+# Compile lame libraries
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_lame()
+{
+echo -e "**\n** lame ...\n**"
+cd $TMP/tmp-$PRGNAM/lame-${LAME}
+## Fix compilation on x86 (xmmintrin.h error: inlining failed)
+#cat $SRCDIR/patches/lame_x86-xmmintrin.patch | patch -p1 --verbose \
+# 2>&1 | tee $OUTPUT/patch-${PRGNAM}_lame.log
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_lame.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_lame.log
+# Install lame into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_lame.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/lame
+cp -a $DOCS_LAME $FFMPEGDEPSDIR/doc/lame/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile amr wideband/narrowband library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_amr()
+{
+echo -e "**\n** amr ...\n**"
+cd $TMP/tmp-$PRGNAM/opencore-amr-${AMR}
+LDFLAGS="$SLKLDFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_amr.log
+make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}_amr.log
+make install DESTDIR=$FFMPEGDEPSDIR PREFIX=/usr LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_amr.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/amr
+cp -a $DOCS_AMR $FFMPEGDEPSDIR/doc/amr || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile VisualOn amr wideband encoder library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_amrwbenc()
+{
+echo -e "**\n** amrwbenc ...\n**"
+cd $TMP/tmp-$PRGNAM/vo-amrwbenc-${AMRWBENC}
+LDFLAGS="$SLKLDFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_amrwbenc.log
+make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}_amrwbenc.log
+make install DESTDIR=$FFMPEGDEPSDIR PREFIX=/usr LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_amrwbenc.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/amrwbenc
+cp -a $DOCS_AMRWBENC $FFMPEGDEPSDIR/doc/amrwbenc || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile fdk-aac library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_fdkaac()
+{
+echo -e "**\n** fdkaac ...\n**"
+cd $TMP/tmp-$PRGNAM/fdk-aac-${FDKAAC}
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_fdkaac.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_fdkaac.log
+# Install fdkaac into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_fdkaac.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/fdkaac
+cp -a $DOCS_FDKAAC $FFMPEGDEPSDIR/doc/fdkaac || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile x265 library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_x265()
+{
+echo -e "**\n** x265 ...\n**"
+PREVDIR=$(pwd)
+cd $TMP/tmp-$PRGNAM/x265-${X265}
+
+## Apply upstream patch to make ffmpeg compile (api.cpp:(.text+0x2c53):
+## undefined reference to `x265_10bit::x265_api_get_143(int)' error):
+## (not applicable until after 2.5 release; applies to git code only)
+#cat $SRCDIR/patches/x265_c_comp.patch | patch -p1 --verbose \
+# 2>&1 | tee $OUTPUT/patch-${PRGNAM}_x265.log
+
+# We follow the build instructions at:
+# https://github.com/videolan/x265/blob/master/build/linux/multilib.sh
+# See also https://bitbucket.org/multicoreware/x265/wiki/Home :
+# Build 10bit and 12bit only on x86_64 for which assembler code exists.
+if [ "$ARCH" = "x86_64" ]; then
+ mkdir build-12
+ cd build-12
+ cmake ../source \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
+ -DHIGH_BIT_DEPTH=ON \
+ -DMAIN12=ON \
+ -DEXPORT_C_API=OFF \
+ -DENABLE_CLI=OFF \
+ -DENABLE_SHARED=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_x265.log
+ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_x265.log
+ cd -
+ mkdir build-10
+ cd build-10
+ cmake ../source \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
+ -DHIGH_BIT_DEPTH=ON \
+ -DEXPORT_C_API=OFF \
+ -DENABLE_CLI=OFF \
+ -DENABLE_SHARED=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}_x265.log
+ make ${NUMJOBS} 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x265.log
+ cd -
+ mkdir build-8
+ cd build-8
+ ln -s ../build-10/libx265.a libx265_main10.a
+ ln -s ../build-12/libx265.a libx265_main12.a
+ cmake ../source \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
+ -DEXTRA_LIB="x265_main10.a;x265_main12.a" \
+ -DEXTRA_LINK_FLAGS="-L." \
+ -DLINKED_10BIT=ON \
+ -DLINKED_12BIT=ON \
+ -DENABLE_SHARED=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}_x265.log
+ make ${NUMJOBS} 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x265.log
+ # Rename the 8bit library, then combine all three into libx265.a using ar:
+ mv libx265.a libx265_main.a
+ ar -M <<EOF
+CREATE libx265.a
+ADDLIB libx265_main.a
+ADDLIB libx265_main10.a
+ADDLIB libx265_main12.a
+SAVE
+END
+EOF
+else
+ mkdir build-8
+ cd build-8
+ cmake ../source \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
+ -DENABLE_SHARED=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_x265.log
+ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_x265.log
+fi
+
+# We were left in the final build directory:
+# Install x265 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x265.log
+cd ..
+
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/x265
+cp -a $DOCS_X265 $FFMPEGDEPSDIR/doc/x265 || true
+cd $PREVDIR
+}
+
+
+
+# -----------------------------------------------------------------------------
+# Compile dc1394, avc1394 and raw1394 libraries
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_1394()
+{
+echo -e "**\n** 1394 ...\n**"
+OLDDIR=$(pwd)
+cd $TMP/tmp-$PRGNAM/libraw1394-${RAW1394}
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_raw1394.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_raw1394.log
+# Install libraw1394 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_raw1394.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/libraw1394
+cp -a $DOCS_RAW1394 $FFMPEGDEPSDIR/doc/libraw1394 || true
+
+echo -e "**\n**"
+
+cd $TMP/tmp-$PRGNAM/libavc1394-${AVC1394}
+
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CPPFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+LIBRAW1394_CFLAGS="-I$FFMPEGDEPSDIR/usr/include" \
+LIBRAW1394_LIBS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} -lraw1394" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_avc1394.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_avc1394.log
+# Install libavc1394 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_avc1394.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/libavc1394
+cp -a $DOCS_AVC1394 $FFMPEGDEPSDIR/doc/libavc1394 || true
+
+echo -e "**\n**"
+
+cd $TMP/tmp-$PRGNAM/libdc1394-${DC1394}
+
+# Make sure that the static libraw1394 is found in the ffmpegdeps:
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CPPFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --disable-examples \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_dc1394.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_dc1394.log
+# Install libdc1394 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dc1394.log
+# Fix the pkgconfig file to get rid of unresolved symbols at runtime:
+sed -i -e "/^Libs:/s/$/ -lavc1394 -lraw1394/" $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig/libdc1394-2.pc
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/libdc1394
+cp -a $DOCS_DC1394 $FFMPEGDEPSDIR/doc/libdc1394 || true
+
+cd $OLDDIR
+}
+
+
+
+# -----------------------------------------------------------------------------
+# Compile SDL2
+# -----------------------------------------------------------------------------
+make_sdl2()
+{
+echo -e "**\n** sdl2 ...\n**"
+cd $TMP/tmp-$PRGNAM/SDL2-$SDL2
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_sdl2.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_sdl2.log
+# Install sdl2 into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_sdl2.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/sdl2/
+cp $DOCS_SDL2 $FFMPEGDEPSDIR/doc/sdl2/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile speex codec
+# -----------------------------------------------------------------------------
+make_speex()
+{
+echo -e "**\n** speex ...\n**"
+cd $TMP/tmp-$PRGNAM/speex-$SPEEX
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_speex.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_speex.log
+# Install speex into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_speex.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/speex/
+cp $DOCS_SPEEX $FFMPEGDEPSDIR/doc/speex/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile x264
+# -----------------------------------------------------------------------------
+make_x264()
+{
+echo -e "**\n** x264 ...\n**"
+
+case "$ARCH" in
+ x86_64|arm*)
+ ARCHOPTS="--enable-pic" ;;
+ *)
+ ARCHOPTS="" ;;
+esac
+
+cd $TMP/tmp-$PRGNAM/x264-snapshot-${X264}
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-cli \
+ $ARCHOPTS \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_x264.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_x264.log
+# Install x264 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x264.log
+
+echo -e "**\n** x264 (10bit) ...\n**"
+echo -e "\n** 10-bit\n**" >> $OUTPUT/configure-${PRGNAM}_x264.log
+echo -e "\n** 10-bit\n**" >> $OUTPUT/make-${PRGNAM}_x264.log
+
+# Now add a x62410b (10-bit decoder) to the depsdir:
+make clean
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-cli \
+ --bit-depth=10 \
+ $ARCHOPTS \
+ 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}_x264.log
+sed -i -e 's/libx264/libx26410b/g' Makefile config.mak
+sed -i -e 's/x264/x26410b/g' x264.pc
+mv x264.pc x26410b.pc
+sed -i -e 's/x264.pc/x26410b.pc/g' Makefile
+make ${NUMJOBS} 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x264.log
+# Install x264 into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x264.log
+
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/x264
+cp -a $DOCS_X264 $FFMPEGDEPSDIR/doc/x264 || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile gsm
+# -----------------------------------------------------------------------------
+make_gsm()
+{
+echo -e "**\n** gsm ...\n**"
+GSMMAJ=$(echo $GSM | cut -d. -f1,2)
+GSMPL=$(echo $GSM | cut -d. -f3)
+mv $TMP/tmp-$PRGNAM/gsm-${GSMMAJ}-pl${GSMPL} $TMP/tmp-$PRGNAM/gsm-${GSM}
+cd $TMP/tmp-$PRGNAM/gsm-${GSM}
+# Without this, x86_64 builds will fail:
+sed -i -e "/^CCFLAGS/s,-O2 ,$SLKCFLAGS ," \
+ -e "s,^# LDFLAGS.*,LDFLAGS = $SLKLDFLAGS," Makefile
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_gsm.log
+# Install gsm into a temp location so ffmpeg can pickup the library
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_gsm.log
+mkdir -p $FFMPEGDEPSDIR/usr/{bin,include/gsm,lib${LIBDIRSUFFIX}}
+cp bin/* $FFMPEGDEPSDIR/usr/bin/
+cp inc/gsm.h $FFMPEGDEPSDIR/usr/include/gsm/
+ln -sf gsm/gsm.h $FFMPEGDEPSDIR/usr/include/gsm.h
+cp lib/* $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/gsm
+cp -a $DOCS_GSM $FFMPEGDEPSDIR/doc/gsm || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile rtmpdump
+# -----------------------------------------------------------------------------
+make_rtmp()
+{
+echo -e "**\n** rtmp ...\n**"
+cd $TMP/tmp-$PRGNAM/rtmpdump-$RTMP
+make -C librtmp prefix=/usr OPT="$SLKCFLAGS" all librtmp.pc \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_rtmp.log
+# Install librtmp into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+mkdir -p $FFMPEGDEPSDIR/usr/{include/librtmp,lib${LIBDIRSUFFIX}/pkgconfig}
+cp -a librtmp/librtmp.a $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}
+cp -a librtmp/{amf.h,http.h,log.h,rtmp.h} $FFMPEGDEPSDIR/usr/include/librtmp
+cp -a librtmp/librtmp.pc $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/rtmp/
+cp -a $DOCS_RTMP $FFMPEGDEPSDIR/doc/rtmp/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile libvdpau
+# -----------------------------------------------------------------------------
+make_vdpau()
+{
+echo -e "**\n** vdpau ...\n**"
+cd $TMP/tmp-$PRGNAM/libvdpau-$VDPAU
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-documentation \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_vdpau.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_vdpau.log
+# Strip the static lib to prevent linking errors in 64-bit,
+find . -name "*.a" | xargs strip --strip-unneeded
+# Install vdpau into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_vdpau.log
+# Remove the .so and .la files; we want static linking:
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libvdpau*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libvdpau*.la
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/vdpau/libvdpau*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/vdpau/libvdpau*.la
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/vdpau/
+cp $DOCS_VDPAU $FFMPEGDEPSDIR/doc/vdpau/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile libmfx
+# -----------------------------------------------------------------------------
+make_mfx()
+{
+echo -e "**\n** mfx ...\n**"
+cd $TMP/tmp-$PRGNAM/mfx_dispatch-$MFX
+
+[ ! -x configure ] && autoreconf -vif
+
+# Note: mfx_dispatch needs libva.
+
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_mfx.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_mfx.log
+# Install mfx into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_mfx.log
+# Remove the .so and .la files; we want static linking:
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libmfx*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libmfx*.la
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/mfx/
+cp $DOCS_MFX $FFMPEGDEPSDIR/doc/mfx/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile VP8
+# -----------------------------------------------------------------------------
+make_vpx()
+{
+echo -e "**\n** vpx ...\n**"
+cd $TMP/tmp-$PRGNAM/libvpx-${VPX}
+
+case "$ARCH" in
+ i?86)
+ ARCHOPTS="--target=x86-linux-gcc"
+ ;;
+ x86_64)
+ ARCHOPTS="--target=${ARCH}-linux-gcc --enable-pic"
+ ;;
+ armv7hl)
+ ARCHOPTS="--target=armv7-linux-gcc --enable-pic"
+ cat $SRCDIR/patches/libvpx_fix-armhf-link.patch | patch -p1 --verbose
+ export AS=as
+ export AR=ar
+ export CROSS="${TARGET}-"
+ ;;
+ arm*)
+ ARCHOPTS="--target=armv5te-linux-gcc --enable-pic"
+ export AS=as
+ export AR=ar
+ export CROSS="${TARGET}-"
+ ;;
+ *)
+ ARCHOPTS="--target=${ARCH}-linux-gcc"
+ ;;
+esac
+
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --disable-examples \
+ --disable-debug-libs \
+ --disable-debug \
+ --disable-unit-tests \
+ --enable-postproc \
+ --enable-runtime-cpu-detect \
+ --enable-vp8 \
+ --enable-vp9 \
+ --enable-vp9-highbitdepth \
+ --enable-vp9-postproc \
+ $ARCHOPTS \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_vpx.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_vpx.log
+# Install libvpx into a temp location so ffmpeg can pickup the library
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_vpx.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/vpx
+cp -a $DOCS_VPX $FFMPEGDEPSDIR/doc/vpx/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile libva
+# -----------------------------------------------------------------------------
+make_libva()
+{
+echo -e "**\n** libva ...\n**"
+cd $TMP/tmp-$PRGNAM/libva-$LIBVA
+
+#
+# == NOTE ON VAAPI ==
+#
+# VAAPI can enable hardware accelerated playback for MPEG-2/4, H.264/AVC
+# and VC-1 video on certain graphics hardware.
+# The VAAPI support in this ffmeeg package depends on VA drivers that you have
+# to install yourself for your specific hardware. The drivers should go into
+# directory /usr/lib${LIBDIRSUFFIX}/va/drivers .
+# If you install my libva package you can get MPEG-2 hardware acceleration on
+# Intel graphics. If you additionally install my vdpau-video package, then you
+# get hardware acceleration on Nvidia graphics (with nvidia's binary driver).
+# If you own an Ati card and use the fglrx driver, then you can achieve
+# hardware acceleration by installing the xvba-video driver from here:
+# http://www.splitted-desktop.com/~gbeauchesne/xvba-video/ (since I do not own
+# Ati hardware I can not build a package for xvba-video myself)
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-shared \
+ --enable-static \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_libva.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_libva.log
+# Strip the static lib to prevent linking errors in 64-bit,
+find . -name "*.a" | xargs strip --strip-unneeded
+# Install libva into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_libva.log
+# Remove the .so and .la files; we want static linking (but still use
+# the drivers in $(libdir)/va/drivers):
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libva*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libva*.la
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/libva
+cp -a $DOCS_LIBVA $FFMPEGDEPSDIR/doc/libva/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile fribidi
+# -----------------------------------------------------------------------------
+make_fribidi()
+{
+echo -e "**\n** fribidi ...\n**"
+cd $TMP/tmp-$PRGNAM/fribidi-$FRIBIDI
+if [ "$ARCH" = "x86_64" ]; then
+ ARCHOPTS="--with-pic"
+else
+ ARCHOPTS=""
+fi
+
+## Allow for internal use of the library:
+#cat $SRCDIR/patches/fribidi.patch | patch -p1 --verbose \
+# 2>&1 | tee $OUTPUT/patch-${PRGNAM}_fribidi.log
+#
+## Fix error on Slackware 14.1, no issue on Slackware 14.2...
+## configure.ac:49: error: possibly undefined macro: AC_CONFIG_MACRO_DIRS
+#sed -i -e "s/AC_CONFIG_MACRO_DIRS/AC_CONFIG_MACRO_DIR/" configure.ac
+#
+## And since we patched the Makefile.am we have to bootstrap:
+#rm -f configure
+#./bootstrap
+
+[ ! -x configure ] && ./autogen.sh
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ $ARCHOPTS \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_fribidi.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_fribidi.log
+# Install fribidi into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_fribidi.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/fribidi
+cp -a $DOCS_FRIBIDI $FFMPEGDEPSDIR/doc/fribidi/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile libass
+# -----------------------------------------------------------------------------
+make_ass()
+{
+echo -e "**\n** ass ...\n**"
+cd $TMP/tmp-$PRGNAM/libass-$ASS
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_ass.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ass.log
+# Install libass into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ass.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/libass
+cp -a $DOCS_ASS $FFMPEGDEPSDIR/doc/libass/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile v4l libraries
+# -----------------------------------------------------------------------------
+make_v4l()
+{
+echo -e "**\n** v4l ...\n**"
+cd $TMP/tmp-$PRGNAM/v4l-utils-${V4L}
+
+mkdir ${FFMPEGDEPSDIR}/etc
+
+export CFLAGS="$SLKCFLAGS"
+export CPPFLAGS="$SLKCFLAGS"
+export LDFLAGS="$SLKLDFLAGS -ljpeg"
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --with-udevdir=/lib/udev \
+ --enable-static \
+ --disable-shared \
+ --disable-libdvbv5 \
+ --enable-libv4l \
+ --disable-v4l-utils \
+ --disable-qv4l2 \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_v4l.log
+
+make ${NUMJOBS} LINKTYPE=static 2>&1 | tee $OUTPUT/make-${PRGNAM}_v4l.log
+# Strip the static lib to prevent linking errors in 64-bit,
+# and fix the pkg-config file (to fix unresolved symbols)
+find . -name "*.a" | xargs strip --strip-unneeded
+sed -i "/^Libs: /s/$/ -lv4l2 -lv4lconvert -ljpeg/" lib/libv4l1/libv4l1.pc
+sed -i "/^Libs: /s/ -lv4l2/ -lv4l2 -lv4lconvert -ljpeg/" lib/libv4l2/libv4l2.pc
+# Install libv4l into a temp directory so that ffmpeg can pick it up later:
+make install LINKTYPE=static \
+ sysconfdir=$FFMPEGDEPSDIR/etc \
+ man1dir=$FFMPEGDEPSDIR/usr/man/man1 \
+ keytablesystemdir=$FFMPEGDEPSDIR/lib/udev/rc_keymaps \
+ udevrulesdir=$FFMPEGDEPSDIR/lib/udev/rules.d \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_v4l.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/v4l-utils
+cp -a $DOCS_V4L2 $FFMPEGDEPSDIR/doc/v4l-utils/ || true
+
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile ogg opus libraries
+# -----------------------------------------------------------------------------
+make_opus()
+{
+echo -e "**\n** opus ...\n**"
+cd $TMP/tmp-$PRGNAM/opus-${OPUS}
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --disable-doc \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_opus.log
+# Install opus into a temp location so ffmpeg can pickup the library
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_opus.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/opus/
+cp $DOCS_OPUS $FFMPEGDEPSDIR/doc/opus/ || true
+cd -
+}
+
+
+# ----------------------------------------------------------------------------
+# Compile libzvbi, a library that allows ffmpeg to process teletext subtitles
+# ----------------------------------------------------------------------------
+
+make_zvbi()
+{
+echo -e "**\n** zvbi ...\n**"
+cd $TMP/tmp-$PRGNAM/zvbi-${LIBZVBI}
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=$FFMPEGDEPSDIR/usr \
+ --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-shared \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_zvbi.log
+make 2>&1 | tee $OUTPUT/make-${PRGNAM}_zvbi.log
+# Install zvbi into a temp location so ffmpeg can pickup the library
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_zvbi.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/zvbi/
+cp $DOCS_LIBZVBI $FFMPEGDEPSDIR/doc/zvbi/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile ffmpeg with additional support for -
+# LAME (MP3), XVID, AAC (MP4), FAAD2 , SPEEX, X264, GSM, SCHROEDINGER
+# -----------------------------------------------------------------------------
+make_ffmpeg()
+{
+echo -e "**\n** ffmpeg ...\n**"
+OLDDIR=$(pwd)
+cd $TMP/tmp-$PRGNAM
+# Take care of snaphot directory:
+if [ -d ffmpeg-export-* ]; then
+ rm -rf ffmpeg-${VERSION}
+ mv ffmpeg-export-* ffmpeg-${VERSION}
+fi
+
+# Only use non-free code if we are allowing it:
+if [ "${USE_PATENTS}" == "YES" ]; then
+ USE_NONFREE=" --enable-libfdk-aac \
+ --enable-openssl \
+ --enable-nonfree"
+else
+ USE_NONFREE="--enable-gnutls"
+fi
+
+cd $TMP/tmp-$PRGNAM/ffmpeg-${VERSION}
+
+# Fix compilation with newer libx264:
+# To actually use the new multi-bitdepth in libx264 we need a newer release
+# of ffmpeg, and then enable 10bit support in make_x264()
+#cat $SRCDIR/patches/x264_bitdepth.patch | patch -p1 --verbose \
+# 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log
+
+# Fix compilation against newer fdk-aac which slightly changed the API
+# (this already landed in ffmpeg 4.x):
+cat $SRCDIR/patches/fdk-aac_v2.patch | patch -p1 --verbose \
+ 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log
+
+if [ "$ARCH" = "x86_64" ]; then
+ ARCHOPTS="--arch=x86_64 --enable-pic"
+else
+ ARCHOPTS=""
+fi
+
+# Stamp the version into the source:
+[ -f version.sh ] && sed -i -e "s/UNKNOWN/$VERSION/" version.sh
+
+TMPDIR="$TMP" \
+CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
+CPPFLAGS="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL" \
+CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL $SLKCFLAGS" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpng -lXext" \
+PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
+PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --shlibdir=/usr/lib${LIBDIRSUFFIX} \
+ --docdir=/usr/doc/${PRGNAM}-${VERSION} \
+ --mandir=/usr/man \
+ --enable-gpl \
+ --enable-version3 \
+ --enable-avfilter \
+ --enable-avresample \
+ --enable-libmp3lame \
+ --enable-libass \
+ --enable-libdc1394 \
+ --enable-libfribidi \
+ --enable-libgsm \
+ --enable-libmfx \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-libopus \
+ --enable-libsmbclient \
+ --enable-libssh \
+ --enable-libspeex \
+ --enable-libtheora \
+ --enable-libv4l2 \
+ --enable-libvo-amrwbenc \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwavpack \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libzvbi \
+ --enable-postproc \
+ --enable-runtime-cpudetect \
+ --enable-sdl2 \
+ --enable-vaapi \
+ --enable-vdpau \
+ --enable-pthreads \
+ --enable-bzlib \
+ --enable-zlib \
+ --enable-shared \
+ --disable-static \
+ --disable-debug \
+ ${USE_BLURAY} \
+ ${USE_WEBP} \
+ ${USE_OPENCL} \
+ ${USE_PULSE} \
+ ${USE_NONFREE} \
+ $ARCHOPTS \
+ --extra-cflags="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL2 -DRUNTIME_CPUDETECT" \
+ --extra-ldflags="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} -ldl -lssl -lcrypto -lz -lusb -ldrm" \
+ --pkg-config-flags="--static" \
+ --disable-programs --disable-manpages \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_ffmpeg.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ffmpeg.log
+
+cd $OLDDIR
+}
+
+#
+# OK, we packaged the compile process for the various software libraries
+# into convenient functions... let's call them one by one now:
+#
+
+#if [ 'xy' != 'xy' ]; then # use this block if you want to skip a lot
+
+# Needed before ffmpeg:
+# Based on the value of $USE_PATENTS enable or disable non-free code:
+if [ "${USE_PATENTS}" = "YES" ]; then
+ make_fdkaac
+fi
+
+make_lame
+make_amr
+make_amrwbenc
+make_1394
+make_v4l
+make_opus
+make_sdl2
+make_speex
+make_gsm
+#make_rtmp
+make_x264
+make_x265
+make_vpx
+make_libva
+make_vdpau
+make_mfx
+make_fribidi
+make_ass
+make_zvbi
+
+#fi # end of 'xy'
+
+# ffmpeg uses the above static libraries:
+make_ffmpeg
+
+# End of compilation, proceed to packaging the binaries:
+cd $TMP/tmp-${PRGNAM}/ffmpeg-${VERSION}
+
+# Install all the needed stuff to the package dir
+make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log
+
+# Remove all the stuff that conflicts with the system version of ffmpeg:
+rm -rf \
+ $PKG/usr/include \
+ $PKG/usr/lib${LIBDIRSUFFIX}/*.so \
+ $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig \
+ $PKG/usr/share
+
+# Add documentation (for all the deps as well)
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
+# Add all the supporting packages' documentation too:
+cp -a $FFMPEGDEPSDIR/doc/* $PKG/usr/doc/$PRGNAM-$VERSION || true
+cp -a $SRCDIR/patches $PKG/usr/doc/$PRGNAM-$VERSION/ 2>/dev/null || true
+cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+find $PKG/usr/doc -type f -exec chmod 644 {} \;
+chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION/*
+
+# Strip binaries
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Add package description:
+mkdir -p $PKG/install
+cat $SRCDIR/slack-desc > $PKG/install/slack-desc
+if [ -f $SRCDIR/doinst.sh ]; then
+ cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
+fi
+
+# Build the package:
+cd $PKG
+makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
+cd $OUTPUT
+md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5
+cd -
+cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
+
+# Restore the original umask:
+umask ${_UMASK_}
+