summaryrefslogtreecommitdiffstats
path: root/source/l/ffmpeg/ffmpeg.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/ffmpeg/ffmpeg.SlackBuild')
-rwxr-xr-xsource/l/ffmpeg/ffmpeg.SlackBuild275
1 files changed, 275 insertions, 0 deletions
diff --git a/source/l/ffmpeg/ffmpeg.SlackBuild b/source/l/ffmpeg/ffmpeg.SlackBuild
new file mode 100755
index 000000000..cced84807
--- /dev/null
+++ b/source/l/ffmpeg/ffmpeg.SlackBuild
@@ -0,0 +1,275 @@
+#!/bin/bash
+
+# Slackware build script for ffmpeg
+
+# Copyright 2010-2017 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
+
+# Originally written by core (eroc@linuxmail.org)
+# Modified by Robby Workman <rworkman@slackbuilds.org>
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=ffmpeg
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+# If PulseAudio is not found, use the _alsa $TAG and disable it in the build:
+if [ ! -r /usr/lib${LIBDIRSUFFIX}/pkgconfig/libpulse.pc ]; then
+ TAG="_alsa"
+ PULSEAUDIO=no
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD$TAG.txz"
+ exit 0
+fi
+
+# Configure ffmpeg features not autodetected by default.
+# You can enable a lot of optional (not-autodetected) features by
+# passing variables to the script (VAR=yes/no ./ffmpeg.SlackBuild).
+# Unfortunately ffmpeg's configure doesn't support --enable-feature=yes
+# syntax, so we have to do it the complicated way :/
+# Additional optional (autodetected) dependencies are:
+# - jack-audio-connection-kit
+# - libva
+# - libvdpau
+# - libX11
+# - libxcb
+# - sdl2
+# - xz
+# - zlib
+
+libx264="" ; [ "${X264:-no}" != "no" ] && libx264="--enable-libx264"
+libcelt="" ; [ "${CELT:-no}" != "no" ] && libcelt="--enable-libcelt"
+libdc1394="" ; [ "${DC1394:-no}" != "no" ] && libdc1394="--enable-libdc1394"
+libfrei0r="" ; [ "${FREI0R:-no}" != "no" ] && libfrei0r="--enable-frei0r"
+libgsm="" ; [ "${GSM:-no}" != "no" ] && libgsm="--enable-libgsm"
+librtmp="" ; [ "${RTMP:-no}" != "no" ] && librtmp="--enable-librtmp"
+libspeex="" ; [ "${SPEEX:-yes}" != "no" ] && libspeex="--enable-libspeex"
+libxvid="" ; [ "${XVID:-no}" != "no" ] && libxvid="--enable-libxvid"
+libass="" ; [ "${ASS:-no}" != "no" ] && libass="--enable-libass"
+libopenal="" ; [ "${OPENAL:-no}" != "no" ] && libopenal="--enable-openal"
+libiec61883=""; [ "${IEC61883:-no}" != "no" ] && libiec61883="--enable-libiec61883"
+libilbc="" ; [ "${ILBC:-no}" != "no" ] && libilbc="--enable-libilbc"
+libmodplug="" ; [ "${MODPLUG:-no}" != "no" ] && libmodplug="--enable-libmodplug"
+libopus="" ; [ "${OPUS:-yes}" != "no" ] && libopus="--enable-libopus"
+libtwolame="" ; [ "${TWOLAME:-no}" != "no" ] && libtwolame="--enable-libtwolame"
+ladspa="" ; [ "${LADSPA:-no}" != "no" ] && ladspa="--enable-ladspa"
+libflite="" ; [ "${FLITE:-no}" != "no" ] && libflite="--enable-libflite"
+libvidstab="" ; [ "${VIDSTAB:-no}" != "no" ] && libvidstab="--enable-libvidstab"
+libx265="" ; [ "${X265:-no}" != "no" ] && libx265="--enable-libx265"
+libzvbi="" ; [ "${ZVBI:-no}" != "no" ] && libzvbi="--enable-libzvbi"
+libopencv="" ; [ "${OPENCV:-no}" != "no" ] && libopencv="--enable-libopencv"
+libgme="" ; [ "${GME:-no}" != "no" ] && libgme="--enable-libgme"
+libsnappy="" ; [ "${SNAPPY:-no}" != "no" ] && libsnappy="--enable-libsnappy"
+libzmq="" ; [ "${ZMQ:-no}" != "no" ] && libzmq="--enable-libzmq"
+libbs2b="" ; [ "${BS2B:-no}" != "no" ] && libbs2b="--enable-libbs2b"
+libebur128="" ; [ "${EBUR128:-no}" != "no" ] && libebur128="--enable-libebur128"
+rubberband="" ; [ "${RUBBERBAND:-no}" != "no" ] && rubberband="--enable-librubberband"
+tesseract="" ; [ "${TESSERACT:-no}" != "no" ] && tesseract="--enable-libtesseract"
+netcdf="" ; [ "${NETCDF:-no}" != "no" ] && netcdf="--enable-netcdf"
+chromaprint="" ; [ "${CHROMAPRINT:-no}" != "no" ] && chromaprint="--enable-chromaprint"
+opencore_amr="" ; [ "${OPENCORE:-no}" != "no" ] && \
+ opencore_amr="--enable-libopencore-amrnb --enable-libopencore-amrwb"
+fdk="" ; [ "${FDK_AAC:-no}" != "no" ] && \
+ { fdk="--enable-libfdk-aac"; non_free="--enable-nonfree" ; }
+ssl="" ; [ "${OPENSSL:-no}" != "no" ] && \
+ { ssl="--enable-openssl" ; non_free="--enable-nonfree" ; }
+decklink="" ; [ "${DECKLINK:-no}" != "no" ] && \
+ { decklink="--enable-decklink" ; \
+ SLKCFLAGS="$SLKCFLAGS -I/usr/include/decklink" ; }
+
+# Default enabled features:
+fontconfig="" ; [ "${FONTCONFIG:-yes}" != "no" ] && fontconfig="--enable-libfontconfig"
+freetype="" ; [ "${FREETYPE:-yes}" != "no" ] && freetype="--enable-libfreetype"
+fribidi="" ; [ "${FRIBIDI:-yes}" != "no" ] && fribidi="--enable-libfribidi"
+gnutls="" ; [ "${GNUTLS:-yes}" != "no" ] && gnutls="--enable-gnutls"
+libbluray="" ; [ "${BLURAY:-yes}" != "no" ] && libbluray="--enable-libbluray"
+libcaca="" ; [ "${CACA:-yes}" != "no" ] && libcaca="--enable-libcaca"
+libcdio="" ; [ "${LIBCDIO:-yes}" != "no" ] && libcdio="--enable-libcdio"
+libssh="" ; [ "${LIBSSH:-yes}" != "no" ] && libssh="--enable-libssh"
+libtheora="" ; [ "${THEORA:-yes}" != "no" ] && libtheora="--enable-libtheora"
+libv4l2="" ; [ "${V4L2:-yes}" != "no" ] && libv4l2="--enable-libv4l2"
+libvorbis="" ; [ "${VORBIS:-yes}" != "no" ] && libvorbis="--enable-libvorbis"
+libvpx="" ; [ "${VPX:-yes}" != "no" ] && libvpx="--enable-libvpx"
+libwebp="" ; [ "${WEBP:-yes}" != "no" ] && libwebp="--enable-libwebp"
+mp3lame="" ; [ "${LAME:-yes}" != "no" ] && mp3lame="--enable-libmp3lame"
+opencl="" ; [ "${OPENCL:-yes}" != "no" ] && opencl="--enable-opencl"
+opengl="" ; [ "${OPENGL:-yes}" != "no" ] && opengl="--enable-opengl"
+openjpeg="" ; [ "${JP2:-yes}" != "no" ] && openjpeg="--enable-libopenjpeg"
+pulse="" ; [ "${PULSEAUDIO:-yes}" != "no" ] && pulse="--enable-libpulse"
+samba="" ; [ "${SAMBA:-yes}" != "no" ] && samba="--enable-libsmbclient"
+wavpack="" ; [ "${WAVPACK:-yes}" != "no" ] && wavpack="--enable-libwavpack"
+
+# No default patent encumbered features:
+aac="" ; [ "${AAC:-no}" = "no" ] && aac="--disable-encoder=aac"
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Fix linking with flite:
+sed -i "s| -lflite\"| -lflite -lm -lasound\"|" \
+ ./configure
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --shlibdir=/usr/lib${LIBDIRSUFFIX} \
+ --docdir=/usr/doc/$PKGNAM-$VERSION/html \
+ --mandir=/usr/man \
+ --disable-debug \
+ --enable-shared \
+ --disable-static \
+ --enable-gpl \
+ --enable-version3 \
+ --enable-avresample \
+ --arch=$ARCH \
+ $non_free \
+ $aac \
+ $chromaprint \
+ $decklink \
+ $fdk \
+ $fontconfig \
+ $freetype \
+ $fribidi \
+ $gnutls \
+ $ladspa \
+ $libass \
+ $libbluray \
+ $libbs2b \
+ $libcaca \
+ $libcdio \
+ $libcelt \
+ $libdc1394 \
+ $libebur128 \
+ $libflite \
+ $libfrei0r \
+ $libgme \
+ $libgsm \
+ $libiec61883 \
+ $libilbc \
+ $libmodplug \
+ $libopenal \
+ $libopencv \
+ $libopus \
+ $librtmp \
+ $libsnappy \
+ $libspeex \
+ $libssh \
+ $libtheora \
+ $libtwolame \
+ $libv4l2 \
+ $libvidstab \
+ $libvorbis \
+ $libvpx \
+ $libwebp \
+ $libx264 \
+ $libx265 \
+ $libxvid \
+ $libzmq \
+ $libzvbi \
+ $mp3lame \
+ $netcdf \
+ $opencl \
+ $opencore_amr \
+ $opengl \
+ $openjpeg \
+ $pulse \
+ $rubberband \
+ $samba \
+ $ssl \
+ $tesseract \
+ $wavpack || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+make install-man DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/txt
+cp -a \
+ Changelog COPYING* CREDITS INSTALL* LICENSE* MAINTAINERS README* \
+ RELEASE VERSION \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a doc/*.txt $PKG/usr/doc/$PKGNAM-$VERSION/txt/
+find . -name "RELEASE_NOTES" -exec cp -a {} $PKG/usr/doc/$PKGNAM-$VERSION/ \;
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD$TAG.txz