Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # Slackware build script for ffmpeg
- # Copyright 2010-2017 Heinz Wiesinger, Amsterdam, The Netherlands
- # Copyright 2017 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>
- PRGNAM=ffmpeg
- VERSION=${VERSION:-3.2.4}
- BUILD=${BUILD:-1}
- TAG=${TAG:-_SBo}
- if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
- fi
- CWD=$(pwd)
- TMP=${TMP:-/tmp/SBo}
- PKG=$TMP/package-$PRGNAM
- OUTPUT=${OUTPUT:-/tmp}
- if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -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
- # 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
- # - libva
- # - libvdpau
- # - libX11
- # - libxcb
- # - sdl2
- # - xz
- # - zlib
- mp3lame="" ; [ "${LAME:-no}" != "no" ] && mp3lame="--enable-libmp3lame"
- 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"
- dirac_fast="" ; [ "${SCHROEDINGER:-no}" != "no" ] && dirac_fast="--enable-libschroedinger"
- libspeex="" ; [ "${SPEEX:-no}" != "no" ] && libspeex="--enable-libspeex"
- libxvid="" ; [ "${XVID:-no}" != "no" ] && libxvid="--enable-libxvid"
- libbluray="" ; [ "${BLURAY:-no}" != "no" ] && libbluray="--enable-libbluray"
- 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:-no}" != "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"
- libwebp="" ; [ "${WEBP:-no}" != "no" ] && libwebp="--enable-libwebp"
- 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" ; }
- #s243a Options
- PULSEAUDIO=no
- SAMBA=no
- WAVPACK=no
- X11GRAB=no
- LIBSSH=no
- THEORA=no
- V4L2=no
- VPX=no
- #end s243a options
- # Default enabled features:
- #opencl="" ; [ "${OPENCL:-yes}" != "no" ] && opencl="--enable-opencl"
- 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"
- 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"
- 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"
- x11grab="" ; [ "${X11GRAB:-yes}" != "no" ] && x11grab="--enable-x11grab"
- # Disable patent encumbered features:
- aac="" ; [ "${AAC:-yes}" != "yes" ] && aac="--disable-encoder=aac"
- set -e
- rm -rf $PKG
- mkdir -p $TMP $PKG $OUTPUT
- cd $TMP
- rm -rf $PRGNAM-$VERSION
- tar xvf $CWD/$PRGNAM-$VERSION.tar
- cd $PRGNAM-$VERSION
- 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 {} \;
- # Patch for openjpeg-2.3.0
- patch -p1 < $CWD/ffmpeg-3.2.4-openjpeg2.3.patch
- #patch for libfdk-aac 2.0.0
- patch -p0 < $CWD/ffmpeg-3.2.4-libfdk_aac-2.0.0.patch
- # 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/$PRGNAM-$VERSION/html \
- --mandir=/usr/man \
- --disable-debug \
- --enable-shared \
- --disable-static \
- --enable-gpl \
- --enable-version3 \
- --enable-avresample \
- --arch=$ARCH \
- $non_free \
- $aac \
- $chromaprint \
- $decklink \
- $dirac_fast \
- $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 \
- $opencore_amr \
- $opengl \
- $openjpeg \
- $pulse \
- $rubberband \
- $samba \
- $ssl \
- $tesseract \
- $wavpack \
- $x11grab
- make
- make install DESTDIR=$PKG
- make install-man DESTDIR=$PKG
- 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/$PRGNAM-$VERSION/txt
- cp -a Changelog COPYING* CREDITS INSTALL* LICENSE* MAINTAINERS README* \
- RELEASE VERSION \
- $PKG/usr/doc/$PRGNAM-$VERSION
- cp -a doc/*.txt $PKG/usr/doc/$PRGNAM-$VERSION/txt/
- find . -name "RELEASE_NOTES" -exec cp -a {} $PKG/usr/doc/$PRGNAM-$VERSION/ \;
- cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
- mkdir -p $PKG/install
- cat $CWD/slack-desc > $PKG/install/slack-desc
- cd $PKG
- /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
Add Comment
Please, Sign In to add comment