#!/bin/bash
# $Id: ffmpeg3-compat.SlackBuild,v 1.96 2019/07/18 22:03:47 root Exp root $
# 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_}

