mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 06:28:55 +02:00
- enable SDL2 dependency (auto-detected) - This results in libavdevice and commands depending on SDL2, so split them in separate packages (this way Haiku does not depend on SDL2).
218 lines
6.1 KiB
Bash
218 lines
6.1 KiB
Bash
SUMMARY="Audio and video recording, conversion, and streaming library"
|
|
DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert \
|
|
and stream audio and video. It includes libavcodec - the leading audio/video \
|
|
codec library."
|
|
HOMEPAGE="https://ffmpeg.org/"
|
|
COPYRIGHT="2000-2003 Fabrice Bellard
|
|
2003-2017 the FFmpeg developers"
|
|
LICENSE="GNU LGPL v2.1
|
|
GNU GPL v2"
|
|
REVISION="3"
|
|
SOURCE_URI="https://ffmpeg.org/releases/ffmpeg-$portVersion.tar.xz"
|
|
CHECKSUM_SHA256="aeee06e4d8b18d852c61ebbfe5e1bb7014b1e118e8728c1c2115f91e51bffbef"
|
|
PATCHES="ffmpeg-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="!x86_gcc2 x86 x86_64"
|
|
SECONDARY_ARCHITECTURES="!x86_gcc2 ?x86" #do we really need !x86_gcc2 in here?
|
|
|
|
PROVIDES="
|
|
ffmpeg$secondaryArchSuffix = $portVersion compat >= 3.2
|
|
lib:libavutil$secondaryArchSuffix = 55.78.100 compat >= 55
|
|
lib:libavcodec$secondaryArchSuffix = 57.107.100 compat >= 57
|
|
lib:libavformat$secondaryArchSuffix = 57.83.100 compat >= 57
|
|
lib:libavfilter$secondaryArchSuffix = 6.107.100 compat >= 6
|
|
lib:libavresample$secondaryArchSuffix = 3.7.0 compat >= 3
|
|
lib:libswscale$secondaryArchSuffix = 4.8.100 compat >= 4
|
|
lib:libswresample$secondaryArchSuffix = 2.9.100 compat >= 2
|
|
lib:libpostproc$secondaryArchSuffix = 54.7.100 compat >= 54
|
|
"
|
|
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libbz2$secondaryArchSuffix
|
|
lib:libogg$secondaryArchSuffix
|
|
lib:libspeex$secondaryArchSuffix
|
|
lib:libmodplug$secondaryArchSuffix
|
|
lib:libtheoradec$secondaryArchSuffix
|
|
lib:libtheoraenc$secondaryArchSuffix
|
|
lib:libvorbis$secondaryArchSuffix
|
|
lib:libvorbisenc$secondaryArchSuffix
|
|
lib:libvpx$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
CONFLICTS="
|
|
ffmpeg_legacy$secondaryArchSuffix
|
|
ffmpeg2${secondaryArchSuffix}_bin
|
|
"
|
|
|
|
PROVIDES_avdevice="
|
|
ffmpeg${secondaryArchSuffix}_avdevice = $portVersion compat >= 3.2
|
|
lib:libavdevice$secondaryArchSuffix = 57.10.100 compat >= 57
|
|
"
|
|
|
|
REQUIRES_avdevice="
|
|
haiku$secondaryArchSuffix
|
|
lib:libSDL2_2.0$secondaryArchSuffix
|
|
lib:libavcodec$secondaryArchSuffix == 57.107.100
|
|
lib:libavfilter$secondaryArchSuffix == 6.107.100
|
|
lib:libavformat$secondaryArchSuffix == 57.83.100
|
|
lib:libavutil$secondaryArchSuffix == 55.78.100
|
|
"
|
|
|
|
PROVIDES_tools="
|
|
ffmpeg${secondaryArchSuffix}_ffplay = $portVersion
|
|
cmd:ffplay = $portVersion compat >= 3.2
|
|
cmd:ffmpeg = $portVersion compat >= 3.2
|
|
cmd:ffprobe = $portVersion compat >= 3.2
|
|
cmd:ffserver = $portVersion compat >= 3.2
|
|
"
|
|
REQUIRES_tools="
|
|
haiku$secondaryArchSuffix
|
|
lib:libSDL2_2.0$secondaryArchSuffix
|
|
lib:libavcodec$secondaryArchSuffix == 57.107.100
|
|
lib:libavdevice$secondaryArchSuffix == 57.10.100
|
|
lib:libavfilter$secondaryArchSuffix == 6.107.100
|
|
lib:libavformat$secondaryArchSuffix == 57.83.100
|
|
lib:libavutil$secondaryArchSuffix == 55.78.100
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
ffmpeg${secondaryArchSuffix}_devel = $portVersion compat >= 3.2
|
|
devel:libavutil$secondaryArchSuffix = 55.78.100 compat >= 55
|
|
devel:libavcodec$secondaryArchSuffix = 57.107.100 compat >= 57
|
|
devel:libavformat$secondaryArchSuffix = 57.83.100 compat >= 57
|
|
devel:libavdevice$secondaryArchSuffix = 57.10.100 compat >= 57
|
|
devel:libavfilter$secondaryArchSuffix = 6.107.100 compat >= 6
|
|
devel:libavresample$secondaryArchSuffix = 3.7.0 compat >= 3
|
|
devel:libswscale$secondaryArchSuffix = 4.8.100 compat >= 4
|
|
devel:libswresample$secondaryArchSuffix = 2.9.100 compat >= 2
|
|
devel:libpostproc$secondaryArchSuffix = 54.7.100 compat >= 54
|
|
"
|
|
REQUIRES_devel="
|
|
ffmpeg$secondaryArchSuffix == $portVersion base
|
|
devel:libspeex$secondaryArchSuffix
|
|
"
|
|
CONFLICTS_devel="
|
|
ffmpeg_legacy${secondaryArchSuffix}_devel
|
|
ffmpeg2${secondaryArchSuffix}_devel
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libbz2$secondaryArchSuffix
|
|
devel:libmodplug$secondaryArchSuffix
|
|
devel:libogg$secondaryArchSuffix
|
|
devel:libsdl2$secondaryArchSuffix
|
|
devel:libspeex$secondaryArchSuffix
|
|
devel:libtheora$secondaryArchSuffix
|
|
devel:libvorbis$secondaryArchSuffix
|
|
devel:libvpx$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:gcc$secondaryArchSuffix >= 5
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:awk
|
|
cmd:cmp
|
|
cmd:grep
|
|
cmd:make
|
|
cmd:perl
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
cmd:sed
|
|
cmd:texi2html
|
|
cmd:yasm
|
|
"
|
|
|
|
GLOBAL_WRITABLE_FILES="
|
|
settings/ffserver.conf
|
|
"
|
|
|
|
PATCH()
|
|
{
|
|
# patch hard-coded config file path
|
|
sed -i "s,/etc/ffserver.conf,$sysconfDir/ffserver.conf," \
|
|
fftools/ffserver.c \
|
|
doc/ffserver.texi
|
|
|
|
# patch hard-coded paths to perl
|
|
sed -i "s,/usr/bin/perl,$portPackageLinksDir/cmd~perl/bin/perl," \
|
|
doc/Doxyfile \
|
|
doc/texi2pod.pl
|
|
}
|
|
|
|
BUILD()
|
|
{
|
|
# not an autotools configure
|
|
./configure \
|
|
--prefix=$prefix \
|
|
--bindir=$prefix/bin \
|
|
--datadir=$dataDir/$portName \
|
|
--incdir=$includeDir \
|
|
--libdir=$libDir \
|
|
--shlibdir=$libDir \
|
|
--mandir=$manDir \
|
|
--disable-debug \
|
|
--enable-shared \
|
|
--enable-libmodplug \
|
|
--enable-libvorbis \
|
|
--enable-libspeex \
|
|
--enable-libtheora \
|
|
--enable-libvpx \
|
|
--enable-gpl \
|
|
--enable-avresample
|
|
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
make install
|
|
|
|
prepareInstalledDevelLibs \
|
|
libavcodec \
|
|
libavdevice \
|
|
libavfilter \
|
|
libavformat \
|
|
libavresample \
|
|
libavutil \
|
|
libswresample \
|
|
libswscale \
|
|
libpostproc
|
|
fixPkgconfig
|
|
|
|
# The pkgconfig file reference other libraries using the wrong paths, which
|
|
# creates a lot of confusion. Fix them so correct paths are used.
|
|
local develPackageName="${portName}_devel-$portFullVersion"
|
|
local packageLinksDir=$(dirname $portPackageLinksDir)
|
|
local linksDir="$packageLinksDir/${develPackageName}/devel~libspeex$secondaryArchSuffix/$relativeDevelopLibDir"
|
|
sed -i -e "s,^\(Libs.private.*\)-L.*speex.* \(-lspeex.*\),\1-L$linksDir \2," \
|
|
$developLibDir/pkgconfig/libavcodec.pc \
|
|
$developLibDir/pkgconfig/libavdevice.pc \
|
|
$developLibDir/pkgconfig/libavfilter.pc \
|
|
$developLibDir/pkgconfig/libavformat.pc
|
|
|
|
# include the documented ffserver.conf
|
|
mkdir -p $docDir
|
|
cp doc/ffserver.conf $docDir
|
|
|
|
# Move html docs to the right place.
|
|
mv $prefix/share/doc/ffmpeg $docDir
|
|
rm -r $prefix/share
|
|
|
|
# Split out libs and executables which need libSDL
|
|
packageEntries tools $prefix/bin
|
|
packageEntries avdevice $libDir/libavdevice*
|
|
|
|
# devel package
|
|
packageEntries devel \
|
|
$dataDir/ffmpeg$secondaryArchSuffix/examples \
|
|
$manDir/man3 \
|
|
$docDir \
|
|
$developDir
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
make check
|
|
}
|