# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/xine-lib-1_rc5-r3.ebuild,v 1.10 2004/09/02 02:26:55 vapier Exp $ inherit eutils flag-o-matic gcc libtool # This should normally be empty string, unless a release has a suffix. MY_PKG_SUFFIX="a" DESCRIPTION="Core libraries for Xine movie player" HOMEPAGE="http://xine.sourceforge.net/" SRC_URI="mirror://sourceforge/xine/${PN}-${PV/_/-}${MY_PKG_SUFFIX}.tar.gz" LICENSE="GPL-2" SLOT="1" KEYWORDS="x86 ppc sparc alpha hppa amd64 ~ia64 ~ppc64" IUSE="arts esd avi nls dvd aalib X directfb oggvorbis alsa gnome sdl speex theora ipv6 altivec ffmpeg" RDEPEND="oggvorbis? ( media-libs/libvorbis ) !amd64? ( X? ( virtual/x11 ) ) amd64? ( X? ( || ( x11-base/xorg-x11 >=x11-base/xfree-4.3.0-r6 ) ) ) avi? ( x86? ( >=media-libs/win32codecs-0.50 media-libs/divx4linux ) ) esd? ( media-sound/esound ) dvd? ( >=media-libs/libdvdcss-1.2.7 ) arts? ( kde-base/arts ) alsa? ( media-libs/alsa-lib ) aalib? ( media-libs/aalib ) !sparc? ( directfb? ( >=dev-libs/DirectFB-0.9.9 dev-util/pkgconfig ) ) gnome? ( >=gnome-base/gnome-vfs-2.0 dev-util/pkgconfig ) >=media-libs/flac-1.0.4 sdl? ( >=media-libs/libsdl-1.1.5 ) >=media-libs/libfame-0.9.0 !ia64? ( >=media-libs/xvid-0.9.0 ) theora? ( media-libs/libtheora ) speex? ( media-libs/speex ) ffmpeg? ( media-video/ffmpeg )" DEPEND="${RDEPEND} nls? ( sys-devel/gettext )" S=${WORKDIR}/${PN}-${PV/_/-}${MY_PKG_SUFFIX} pkg_setup() { # Make sure that the older libraries are not installed (bug #15081). if [ `has_version =media-libs/xine-lib-0.9.13*` ] then eerror "Please uninstall older xine libraries."; eerror "The compilation cannot proceed."; die fi } src_unpack() { unpack ${A} cd ${S} # gcc2 fixes provided by in #26534 #epatch ${FILESDIR}/${P}-gcc2_fix.patch # preserve CFLAGS added by drobbins, -O3 isn't as good as -O2 most of the time epatch ${FILESDIR}/protect-CFLAGS.patch-${PV} # plasmaroo: Kernel 2.6 headers patch epatch ${FILESDIR}/${PN}-2.6.patch # force 32 bit userland [ ${ARCH} = "sparc" ] && epatch ${FILESDIR}/${P}-configure-sparc.patch # epatch ${FILESDIR}/${PN}-ffmpeg.patch # always_inline means inline-or-fail, so it's no suprise that xine-lib # fails to compile with gcc 3.4 when this one inline fails #epatch ${FILESDIR}/xine-lib-gcc34.patch elibtoolize #40317 # Fix building on amd64, #49569 #use amd64 && epatch ${FILESDIR}/configure-64bit-define.patch # Fix detection of hppa2.0 and hppa1.1 CHOST use hppa && sed -e 's/hppa-/hppa*-linux-/' -i ${S}/configure } src_compile() { filter-flags -maltivec -mabi=altivec filter-flags -fstack-protector -fPIC filter-flags -fforce-addr filter-flags -momit-leaf-frame-pointer #46339 filter-flags -funroll-all-loops #55420 if [ "`gcc-major-version`" -ge "3" -a "`gcc-minor-version`" -ge "4" ]; then append-flags -fno-web #49509 filter-flags -fno-unit-at-a-time #55202 append-flags -funit-at-a-time #55202 fi is-flag -O? || append-flags -O1 #31243 # fix build errors with sse2 #49482 if use x86 ; then if [ `gcc-major-version` -eq 3 ] ; then append-flags -mno-sse2 `test_flag -mno-sse3` filter-mfpmath sse fi fi # Use the built-in dvdnav plugin. local myconf="--with-included-dvdnav" # the win32 codec path should ignore $(get_libdir) and always use lib use avi && use x86 \ && myconf="${myconf} --with-w32-path=/usr/lib/win32" \ || myconf="${myconf} --disable-asf" use ffmpeg \ && myconf="${myconf} --without-external-ffmpeg" use sparc \ && myconf="${myconf} --enable-vis --build=${CHOST}" use amd64 \ && myconf="${myconf} --with-xv-path=/usr/X11R6/$(get_libdir)" # Fix compilation-errors on PowerPC #45393 & #55460 if use ppc ; then append-flags -U__ALTIVEC__ myconf="${myconf} `use_enable altivec`" fi # The default CFLAGS (-O) is the only thing working on hppa. if use hppa && [ "`gcc-version`" != "3.4" ] ; then unset CFLAGS else append-flags -ffunction-sections fi # if lib64 is a directory, sometimes the configure will set libdir itself # and the installation fails. see bug #62339 myconf="${myconf} --libdir=/usr/$(get_libdir)" econf \ `use_enable X x11` `use_with X x` `use_enable X shm` `use_enable X xft` \ `use_enable esd` \ `use_enable nls` \ `use_enable alsa` \ `use_enable arts` \ `use_enable aalib` \ `use_enable oggvorbis ogg` `use_enable oggvorbis vorbis` \ `use_enable sdl sdltest` \ `use_enable ipv6` \ `use_enable directfb` \ ${myconf} || die "Configure failed" emake -j1 || die "Parallel make failed" } src_install() { # portage 2.0.50's einstall is broken for handling libdir make DESTDIR=${D} install || die "Install failed" # Xine's makefiles install some file incorrectly. (Gentoo bug #8583, #16112). dodir /usr/share/xine/libxine1/fonts mv ${D}/usr/share/*.xinefont.gz ${D}/usr/share/xine/libxine1/fonts/ dodoc AUTHORS ChangeLog INSTALL README TODO cd ${S}/doc dodoc dataflow.dia README* } pkg_postinst() { einfo einfo "Please note, a new version of xine-lib has been installed." einfo "For library consistency, you need to unmerge old versions" einfo "of xine-lib before merging xine-ui." einfo einfo "This library version 1 is incompatible with the plugins" einfo "designed for the prior library versions such as xine-d4d," einfo "xine-d5d, xine-dmd, and xine-dvdnav." einfo einfo "Also, make sure to remove your ~/.xine if upgrading from" einfo "a previous version." einfo }