add multilib aware ebuilds

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@2784 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one
2010-12-25 17:43:20 +00:00
parent ca658c368a
commit c3102397e6
88 changed files with 11089 additions and 0 deletions

1659
media-video/ffmpeg/ChangeLog Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
DIST ffmpeg-0.6_p25767.tar.bz2 4000052 RMD160 1463e744ca5f6e5535571efe19296f055ba870fb SHA1 219ecd5007eb030945556a7f279beae980a96543 SHA256 a6773c54b528d967f56811866b149ac980ad96f6c06a00e56987f7a48b4d9ff2
EBUILD ffmpeg-0.6_p25767.ebuild 8035 RMD160 176ad09a076b26b01c022e63a1a7d49f51af367e SHA1 c98efe3bd7b54eb16417845d293782f9c1f22e42 SHA256 cdebee41e6c51b89a58b8ec3d2a07a2f8b0798bdcbf903aa5c0d825904e179a2
EBUILD ffmpeg-9999.ebuild 8035 RMD160 176ad09a076b26b01c022e63a1a7d49f51af367e SHA1 c98efe3bd7b54eb16417845d293782f9c1f22e42 SHA256 cdebee41e6c51b89a58b8ec3d2a07a2f8b0798bdcbf903aa5c0d825904e179a2
MISC ChangeLog 57809 RMD160 de766ca8e4d828fe2d32a24ef9112389a7a4270b SHA1 31e3d53d2ee46bf6bac957b69489803309e2fddc SHA256 2bfcc4d08fc47777f23eb701e95cbdd72854887bb9c09850932c786cb760608e
MISC metadata.xml 2265 RMD160 0416ebff8851e2ec715a801a3ecd66a98865578e SHA1 58d9750865481aedecd4d61dcaee9e43e6a27404 SHA256 38a520565c24ca97877c3b2814d685beb0079e3ad4d28e5924667084ba3ffd86

View File

@@ -0,0 +1,268 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-0.6_p25767.ebuild,v 1.4 2010/12/09 16:11:56 rich0 Exp $
EAPI="2"
SCM=""
if [ "${PV#9999}" != "${PV}" ] ; then
SCM="subversion"
ESVN_REPO_URI="svn://svn.ffmpeg.org/ffmpeg/trunk"
fi
inherit eutils flag-o-matic multilib toolchain-funcs ${SCM}
DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec."
HOMEPAGE="http://ffmpeg.org/"
if [ "${PV#9999}" != "${PV}" ] ; then
SRC_URI=""
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
SRC_URI="mirror://gentoo/${P}.tar.bz2"
else # Release
SRC_URI="http://ffmpeg.org/releases/${P}.tar.bz2"
fi
FFMPEG_REVISION="${PV#*_p}"
LICENSE="GPL-3"
SLOT="0"
if [ "${PV#9999}" = "${PV}" ] ; then
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"
fi
IUSE="+3dnow +3dnowext alsa altivec amr bindist +bzip2 cpudetection custom-cflags debug dirac doc +encode faac frei0r gsm +hardcoded-tables ieee1394 jack jpeg2k +mmx +mmxext mp3 network oss pic qt-faststart rtmp schroedinger sdl speex +ssse3 static-libs test theora threads v4l v4l2 vaapi vdpau vorbis vpx X x264 xvid +zlib"
VIDEO_CARDS="nvidia"
for x in ${VIDEO_CARDS}; do
IUSE="${IUSE} video_cards_${x}"
done
RDEPEND="
alsa? ( media-libs/alsa-lib )
amr? ( media-libs/opencore-amr )
bzip2? ( app-arch/bzip2 )
dirac? ( media-video/dirac )
encode? (
faac? ( media-libs/faac )
mp3? ( >=media-sound/lame-3.98.3 )
theora? ( >=media-libs/libtheora-1.1.1[encode] media-libs/libogg )
vorbis? ( media-libs/libvorbis media-libs/libogg )
x264? ( >=media-libs/x264-0.0.20101029 )
xvid? ( >=media-libs/xvid-1.1.0 )
)
frei0r? ( media-plugins/frei0r-plugins )
gsm? ( >=media-sound/gsm-1.0.12-r1 )
ieee1394? ( media-libs/libdc1394 sys-libs/libraw1394 )
jack? ( media-sound/jack-audio-connection-kit )
jpeg2k? ( >=media-libs/openjpeg-1.3-r2 )
rtmp? ( >=media-video/rtmpdump-2.2f )
sdl? ( >=media-libs/libsdl-1.2.13-r1[audio,video] )
schroedinger? ( media-libs/schroedinger )
speex? ( >=media-libs/speex-1.2_beta3 )
vaapi? ( x11-libs/libva )
video_cards_nvidia? ( vdpau? ( x11-libs/libvdpau ) )
vpx? ( media-libs/libvpx )
X? ( x11-libs/libX11 x11-libs/libXext )
zlib? ( sys-libs/zlib )
!media-video/qt-faststart
"
DEPEND="${RDEPEND}
>=sys-devel/make-3.81
dirac? ( dev-util/pkgconfig )
doc? ( app-text/texi2html )
mmx? ( dev-lang/yasm )
rtmp? ( dev-util/pkgconfig )
schroedinger? ( dev-util/pkgconfig )
test? ( net-misc/wget )
v4l? ( sys-kernel/linux-headers )
v4l2? ( sys-kernel/linux-headers )
"
src_prepare() {
if [ "${PV#9999}" != "${PV}" ] ; then
# Set SVN version manually
subversion_wc_info
sed -i -e "s/UNKNOWN/SVN-r${ESVN_WC_REVISION}/" "${S}/version.sh" || die
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
sed -i -e "s/UNKNOWN/SVN-r${FFMPEG_REVISION}/" "${S}/version.sh" || die
fi
}
src_configure() {
local myconf="${EXTRA_FFMPEG_CONF}"
# enabled by default
for i in debug doc network vaapi zlib; do
use ${i} || myconf="${myconf} --disable-${i}"
done
use bzip2 || myconf="${myconf} --disable-bzlib"
use sdl || myconf="${myconf} --disable-ffplay"
use static-libs || myconf="${myconf} --disable-static"
use custom-cflags && myconf="${myconf} --disable-optimizations"
use cpudetection && myconf="${myconf} --enable-runtime-cpudetect"
#for i in h264_vdpau mpeg1_vdpau mpeg_vdpau vc1_vdpau wmv3_vdpau; do
# use video_cards_nvidia || myconf="${myconf} --disable-decoder=${i}"
# use vdpau || myconf="${myconf} --disable-decoder=${i}"
#done
use video_cards_nvidia && use vdpau || myconf="${myconf} --disable-vdpau"
# Encoders
if use encode
then
use mp3 && myconf="${myconf} --enable-libmp3lame"
for i in theora vorbis x264 xvid; do
use ${i} && myconf="${myconf} --enable-lib${i}"
done
if use bindist
then
use faac && ewarn "faac is nonfree and cannot be distributed;
disabling faac support."
else
use faac && myconf="${myconf} --enable-libfaac --enable-nonfree"
fi
else
myconf="${myconf} --disable-encoders"
fi
# libavdevice options
use ieee1394 && myconf="${myconf} --enable-libdc1394"
# Indevs
for i in v4l v4l2 alsa oss jack ; do
use ${i} || myconf="${myconf} --disable-indev=${i}"
done
use X && myconf="${myconf} --enable-x11grab"
# Outdevs
for i in alsa oss ; do
use ${i} || myconf="${myconf} --disable-outdev=${i}"
done
# libavfilter options
use frei0r && myconf="${myconf} --enable-frei0r"
# Threads; we only support pthread for now but ffmpeg supports more
use threads && myconf="${myconf} --enable-pthreads"
# Decoders
use amr && myconf="${myconf} --enable-libopencore-amrwb --enable-libopencore-amrnb"
for i in gsm dirac rtmp schroedinger speex vpx; do
use ${i} && myconf="${myconf} --enable-lib${i}"
done
use jpeg2k && myconf="${myconf} --enable-libopenjpeg"
# CPU features
for i in mmx ssse3 altivec ; do
use ${i} || myconf="${myconf} --disable-${i}"
done
use mmxext || myconf="${myconf} --disable-mmx2"
use 3dnow || myconf="${myconf} --disable-amd3dnow"
use 3dnowext || myconf="${myconf} --disable-amd3dnowext"
# disable mmx accelerated code if PIC is required
# as the provided asm decidedly is not PIC for x86.
if use pic && use x86 ; then
myconf="${myconf} --disable-mmx --disable-mmx2"
fi
# Option to force building pic
use pic && myconf="${myconf} --enable-pic"
# Try to get cpu type based on CFLAGS.
# Bug #172723
# We need to do this so that features of that CPU will be better used
# If they contain an unknown CPU it will not hurt since ffmpeg's configure
# will just ignore it.
for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
[ "${i}" = "native" ] && i="host" # bug #273421
[[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968
myconf="${myconf} --cpu=${i}"
break
done
# Mandatory configuration
myconf="
--enable-gpl
--enable-version3
--enable-postproc
--enable-avfilter
--disable-stripping
${myconf}"
# cross compile support
if tc-is-cross-compiler ; then
myconf="${myconf} --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-"
case ${CHOST} in
*freebsd*)
myconf="${myconf} --target-os=freebsd"
;;
mingw32*)
myconf="${myconf} --target-os=mingw32"
;;
*linux*)
myconf="${myconf} --target-os=linux"
;;
esac
fi
# Misc stuff
use hardcoded-tables && myconf="${myconf} --enable-hardcoded-tables"
# Specific workarounds for too-few-registers arch...
if [[ $(tc-arch) == "x86" ]]; then
filter-flags -fforce-addr -momit-leaf-frame-pointer
append-flags -fomit-frame-pointer
is-flag -O? || append-flags -O2
if (use debug); then
# no need to warn about debug if not using debug flag
ewarn ""
ewarn "Debug information will be almost useless as the frame pointer is omitted."
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
ewarn "difficult to fix. Please have that in mind."
ewarn ""
fi
fi
cd "${S}"
./configure \
--prefix=/usr \
--libdir=/usr/$(get_libdir) \
--shlibdir=/usr/$(get_libdir) \
--mandir=/usr/share/man \
--enable-static --enable-shared \
--cc="$(tc-getCC)" \
--host-cc="$(tc-getCC)" \
--host-cflags="${CFLAGS}" \
--host-ldflags="${LDFLAGS}" \
${myconf} || die
}
src_compile() {
emake version.h || die #252269
emake || die
if use qt-faststart; then
tc-export CC
emake -C tools qt-faststart || die
fi
}
src_install() {
emake DESTDIR="${D}" install install-man || die
dodoc Changelog README INSTALL
dodoc doc/*
if use qt-faststart; then
dobin tools/qt-faststart || die
fi
}
src_test() {
if use encode ; then
for t in codectest lavftest seektest ; do
LD_LIBRARY_PATH="${S}/libavcore:${S}/libpostproc:${S}/libswscale:${S}/libavcodec:${S}/libavdevice:${S}/libavfilter:${S}/libavformat:${S}/libavutil" \
emake ${t} || die "Some tests in ${t} failed"
done
else
ewarn "Tests fail without USE=encode, skipping"
fi
}

View File

@@ -0,0 +1,268 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-0.6_p25767.ebuild,v 1.4 2010/12/09 16:11:56 rich0 Exp $
EAPI="2"
SCM=""
if [ "${PV#9999}" != "${PV}" ] ; then
SCM="subversion"
ESVN_REPO_URI="svn://svn.ffmpeg.org/ffmpeg/trunk"
fi
inherit eutils flag-o-matic multilib toolchain-funcs ${SCM}
DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec."
HOMEPAGE="http://ffmpeg.org/"
if [ "${PV#9999}" != "${PV}" ] ; then
SRC_URI=""
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
SRC_URI="mirror://gentoo/${P}.tar.bz2"
else # Release
SRC_URI="http://ffmpeg.org/releases/${P}.tar.bz2"
fi
FFMPEG_REVISION="${PV#*_p}"
LICENSE="GPL-3"
SLOT="0"
if [ "${PV#9999}" = "${PV}" ] ; then
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"
fi
IUSE="+3dnow +3dnowext alsa altivec amr bindist +bzip2 cpudetection custom-cflags debug dirac doc +encode faac frei0r gsm +hardcoded-tables ieee1394 jack jpeg2k +mmx +mmxext mp3 network oss pic qt-faststart rtmp schroedinger sdl speex +ssse3 static-libs test theora threads v4l v4l2 vaapi vdpau vorbis vpx X x264 xvid +zlib"
VIDEO_CARDS="nvidia"
for x in ${VIDEO_CARDS}; do
IUSE="${IUSE} video_cards_${x}"
done
RDEPEND="
alsa? ( media-libs/alsa-lib )
amr? ( media-libs/opencore-amr )
bzip2? ( app-arch/bzip2 )
dirac? ( media-video/dirac )
encode? (
faac? ( media-libs/faac )
mp3? ( >=media-sound/lame-3.98.3 )
theora? ( >=media-libs/libtheora-1.1.1[encode] media-libs/libogg )
vorbis? ( media-libs/libvorbis media-libs/libogg )
x264? ( >=media-libs/x264-0.0.20101029 )
xvid? ( >=media-libs/xvid-1.1.0 )
)
frei0r? ( media-plugins/frei0r-plugins )
gsm? ( >=media-sound/gsm-1.0.12-r1 )
ieee1394? ( media-libs/libdc1394 sys-libs/libraw1394 )
jack? ( media-sound/jack-audio-connection-kit )
jpeg2k? ( >=media-libs/openjpeg-1.3-r2 )
rtmp? ( >=media-video/rtmpdump-2.2f )
sdl? ( >=media-libs/libsdl-1.2.13-r1[audio,video] )
schroedinger? ( media-libs/schroedinger )
speex? ( >=media-libs/speex-1.2_beta3 )
vaapi? ( x11-libs/libva )
video_cards_nvidia? ( vdpau? ( x11-libs/libvdpau ) )
vpx? ( media-libs/libvpx )
X? ( x11-libs/libX11 x11-libs/libXext )
zlib? ( sys-libs/zlib )
!media-video/qt-faststart
"
DEPEND="${RDEPEND}
>=sys-devel/make-3.81
dirac? ( dev-util/pkgconfig )
doc? ( app-text/texi2html )
mmx? ( dev-lang/yasm )
rtmp? ( dev-util/pkgconfig )
schroedinger? ( dev-util/pkgconfig )
test? ( net-misc/wget )
v4l? ( sys-kernel/linux-headers )
v4l2? ( sys-kernel/linux-headers )
"
src_prepare() {
if [ "${PV#9999}" != "${PV}" ] ; then
# Set SVN version manually
subversion_wc_info
sed -i -e "s/UNKNOWN/SVN-r${ESVN_WC_REVISION}/" "${S}/version.sh" || die
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
sed -i -e "s/UNKNOWN/SVN-r${FFMPEG_REVISION}/" "${S}/version.sh" || die
fi
}
src_configure() {
local myconf="${EXTRA_FFMPEG_CONF}"
# enabled by default
for i in debug doc network vaapi zlib; do
use ${i} || myconf="${myconf} --disable-${i}"
done
use bzip2 || myconf="${myconf} --disable-bzlib"
use sdl || myconf="${myconf} --disable-ffplay"
use static-libs || myconf="${myconf} --disable-static"
use custom-cflags && myconf="${myconf} --disable-optimizations"
use cpudetection && myconf="${myconf} --enable-runtime-cpudetect"
#for i in h264_vdpau mpeg1_vdpau mpeg_vdpau vc1_vdpau wmv3_vdpau; do
# use video_cards_nvidia || myconf="${myconf} --disable-decoder=${i}"
# use vdpau || myconf="${myconf} --disable-decoder=${i}"
#done
use video_cards_nvidia && use vdpau || myconf="${myconf} --disable-vdpau"
# Encoders
if use encode
then
use mp3 && myconf="${myconf} --enable-libmp3lame"
for i in theora vorbis x264 xvid; do
use ${i} && myconf="${myconf} --enable-lib${i}"
done
if use bindist
then
use faac && ewarn "faac is nonfree and cannot be distributed;
disabling faac support."
else
use faac && myconf="${myconf} --enable-libfaac --enable-nonfree"
fi
else
myconf="${myconf} --disable-encoders"
fi
# libavdevice options
use ieee1394 && myconf="${myconf} --enable-libdc1394"
# Indevs
for i in v4l v4l2 alsa oss jack ; do
use ${i} || myconf="${myconf} --disable-indev=${i}"
done
use X && myconf="${myconf} --enable-x11grab"
# Outdevs
for i in alsa oss ; do
use ${i} || myconf="${myconf} --disable-outdev=${i}"
done
# libavfilter options
use frei0r && myconf="${myconf} --enable-frei0r"
# Threads; we only support pthread for now but ffmpeg supports more
use threads && myconf="${myconf} --enable-pthreads"
# Decoders
use amr && myconf="${myconf} --enable-libopencore-amrwb --enable-libopencore-amrnb"
for i in gsm dirac rtmp schroedinger speex vpx; do
use ${i} && myconf="${myconf} --enable-lib${i}"
done
use jpeg2k && myconf="${myconf} --enable-libopenjpeg"
# CPU features
for i in mmx ssse3 altivec ; do
use ${i} || myconf="${myconf} --disable-${i}"
done
use mmxext || myconf="${myconf} --disable-mmx2"
use 3dnow || myconf="${myconf} --disable-amd3dnow"
use 3dnowext || myconf="${myconf} --disable-amd3dnowext"
# disable mmx accelerated code if PIC is required
# as the provided asm decidedly is not PIC for x86.
if use pic && use x86 ; then
myconf="${myconf} --disable-mmx --disable-mmx2"
fi
# Option to force building pic
use pic && myconf="${myconf} --enable-pic"
# Try to get cpu type based on CFLAGS.
# Bug #172723
# We need to do this so that features of that CPU will be better used
# If they contain an unknown CPU it will not hurt since ffmpeg's configure
# will just ignore it.
for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
[ "${i}" = "native" ] && i="host" # bug #273421
[[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968
myconf="${myconf} --cpu=${i}"
break
done
# Mandatory configuration
myconf="
--enable-gpl
--enable-version3
--enable-postproc
--enable-avfilter
--disable-stripping
${myconf}"
# cross compile support
if tc-is-cross-compiler ; then
myconf="${myconf} --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-"
case ${CHOST} in
*freebsd*)
myconf="${myconf} --target-os=freebsd"
;;
mingw32*)
myconf="${myconf} --target-os=mingw32"
;;
*linux*)
myconf="${myconf} --target-os=linux"
;;
esac
fi
# Misc stuff
use hardcoded-tables && myconf="${myconf} --enable-hardcoded-tables"
# Specific workarounds for too-few-registers arch...
if [[ $(tc-arch) == "x86" ]]; then
filter-flags -fforce-addr -momit-leaf-frame-pointer
append-flags -fomit-frame-pointer
is-flag -O? || append-flags -O2
if (use debug); then
# no need to warn about debug if not using debug flag
ewarn ""
ewarn "Debug information will be almost useless as the frame pointer is omitted."
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
ewarn "difficult to fix. Please have that in mind."
ewarn ""
fi
fi
cd "${S}"
./configure \
--prefix=/usr \
--libdir=/usr/$(get_libdir) \
--shlibdir=/usr/$(get_libdir) \
--mandir=/usr/share/man \
--enable-static --enable-shared \
--cc="$(tc-getCC)" \
--host-cc="$(tc-getCC)" \
--host-cflags="${CFLAGS}" \
--host-ldflags="${LDFLAGS}" \
${myconf} || die
}
src_compile() {
emake version.h || die #252269
emake || die
if use qt-faststart; then
tc-export CC
emake -C tools qt-faststart || die
fi
}
src_install() {
emake DESTDIR="${D}" install install-man || die
dodoc Changelog README INSTALL
dodoc doc/*
if use qt-faststart; then
dobin tools/qt-faststart || die
fi
}
src_test() {
if use encode ; then
for t in codectest lavftest seektest ; do
LD_LIBRARY_PATH="${S}/libavcore:${S}/libpostproc:${S}/libswscale:${S}/libavcodec:${S}/libavdevice:${S}/libavfilter:${S}/libavformat:${S}/libavutil" \
emake ${t} || die "Some tests in ${t} failed"
done
else
ewarn "Tests fail without USE=encode, skipping"
fi
}

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>video</herd>
<maintainer>
<email>media-video@gentoo.org</email>
</maintainer>
<use>
<flag name="3dnowext">
Enable manually-optimised routines using the AMD 3DNow!Ex SIMD
instruction set, present in modern AMD CPUs. (Check for
3dnowext in /proc/cpuinfo to know whether your CPU supports it).
</flag>
<flag name="amr">Enables Adaptive Multi-Rate Audio support</flag>
<flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag>
<flag name="dirac">Enable Dirac video support (an advanced royalty-free video compression format) via the reference library: dirac.</flag>
<flag name="faac">Use external faac library for AAC encoding</flag>
<flag name="faad">Use external faad library for AAC decoding (instead of internal libavcodec support)</flag>
<flag name="frei0r">Enable frei0r wrapping in libavfilter</flag>
<flag name="hardcoded-tables">Use pre-calculated tables rather than calculating them on the fly.</flag>
<flag name="mmxext">Enables mmx2 support</flag>
<flag name="network">Enables network streaming support</flag>
<flag name="pic">Force shared libraries to be built as PIC (this is slower)</flag>
<flag name="qt-faststart">Build and install qt-faststart application</flag>
<flag name="rtmp">Enable Real Time Messaging Protocol using librtmp</flag>
<flag name="schroedinger">Enable Dirac video support (an advanced royalty-free video compression format) via libschroedinger (high-speed implementation in C of the Dirac codec).</flag>
<flag name="ssse3">faster floating point optimization for SSSE3 capable chips (Intel Core 2 and later chips)</flag>
<flag name="vaapi">Enables VAAPI (Video Acceleration API) for hardware decoding</flag>
<flag name="vdpau">Enables VDPAU decoders (requires nVidia video cards to offload CPU processing to video card</flag>
<flag name="vpx">Enables vp8 codec support using libvpx: Decoding vp8 does not require this to be enabled but libvpx can also be used for decoding; encoding vp8 requires this useflag to be enabled though.</flag>
</use>
</pkgmetadata>