# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="2" inherit eutils flag-o-matic DESCRIPTION="Network focused portable C++ class library providing high level functions" HOMEPAGE="http://www.opalvoip.org/" SRC_URI="mirror://sourceforge/opalvoip/${P}.tar.bz2 doc? ( mirror://sourceforge/opalvoip/${P}-htmldoc.tar.bz2 )" LICENSE="MPL-1.0" SLOT="0" KEYWORDS="~ppc ~x86" # default enabled are features from 'minsize', the most used according to ptlib IUSE="alsa +asn +audio config-file debug dns doc dtmf esd examples ftp +http http-forms http-server ieee1394 ipv6 jabber +ldap mail odbc oss pch pipechan qos remote sasl sdl serial shmvideo snmp soap socks ssl +stun telnet tts +url v4l v4l2 +video vxml wav xml xmlrpc" RDEPEND="audio? ( alsa? ( media-libs/alsa-lib ) esd? ( media-sound/esound ) ) ldap? ( net-nds/openldap ) odbc? ( dev-db/unixODBC ) sasl? ( dev-libs/cyrus-sasl:2 ) sdl? ( media-libs/libsdl ) ssl? ( dev-libs/openssl ) video? ( ieee1394? ( media-libs/libdv sys-libs/libavc1394 media-libs/libdc1394:1 ) v4l2? ( media-libs/libv4l ) ) xml? ( dev-libs/expat )" DEPEND="${RDEPEND} dev-util/pkgconfig sys-devel/bison sys-devel/flex video? ( v4l? ( sys-kernel/linux-headers ) v4l2? ( sys-kernel/linux-headers ) ) !!dev-libs/pwlib" # NOTES: # media-libs/libdc1394:2 should be supported but headers location have changed # looks to have an auto-magic dep with medialibs, but not in the tree so... # tools/ directory seems to be only for windows pkg_setup() { local warning=false # ekiga can't use, at least, alsa plugin with --as-needed # users where experiencing issues with --as-needed, see bug 238617 # TODO: should be re-tested and, if possible, fixed in a cleanier way append-ldflags -Wl,--no-as-needed # warn user about use flag that are gonna override other ones if ! use audio; then ewarn "disabling audio will remove all audio support" ewarn "even if other audio features have been enabled" warning=true fi if ! use video; then if use sdl; then # video disabled and sdl disabled make compilation to crash # upstream has been contacted, see bug 2696064 in their bugtracker eerror "video has been disabled and sdl has been enabled" eerror "${PN} can't build with this configuration" eerror "please, enablde video or disable sdl and re-emerge" die else ewarn "disabling video will remove all video support" ewarn "even if other video features have been enabled" warning=true fi fi if use jabber && ! use xml; then ewarn "jabber support needs xml support: jabber has been disabled" ewarn "enable xml support if you want to use the jabber protocol" warning=true fi if use http && ! use url; then ewarn "http support needs url support: http support has been disabled" ewarn "enable url support if you want to use the http protocol" warning=true fi if use http-forms; then if ! use http; then ewarn "http-forms support needs http support: http-forms support has been disabled" ewarn "enable http support if you want to use http-forms" warning=true fi if ! use config-file; then ewarn "http-forms support needs config-file support: http-forms support has been disabled" ewarn "enable config-file support if you want to use http-forms" warning=true fi fi if use http-server && ! use http-forms; then ewarn "http-server support needs http-forms support: http-server support has been disabled" ewarn "enable http-forms support if you want to use http-server" warning=true fi if use vxml; then if ! use xml; then ewarn "vxml support needs xml support: vxml support has been disabled" ewarn "enable xml support if you want to use vxml" warning=true fi if ! use http; then ewarn "vxml support needs http support: vxml support has been disabled" ewarn "enable http support if you want to use vxml" warning=true fi fi if use xmlrpc; then if ! use xml; then ewarn "xmlrpc support needs xml support: xmlrpc support has been disabled" ewarn "enable xml support if you want to use xmlrpc" warning=true fi if ! use http; then ewarn "xmlrpc support needs http support: xmlrpc support has been disabled" ewarn "enable http support if you want to use xmlrpc" warning=true fi fi if use soap; then if ! use xml; then ewarn "soap support needs xml support: soap support has been disabled" ewarn "enable xml support if you want to use soap" warning=true fi if ! use http; then ewarn "soap support needs http support: soap support has been disabled" ewarn "enable http support if you want to use soap" warning=true fi fi if ${warning}; then echo ewarn "If one of the warnings above is not volunteer, hit Ctrl+C now" ewarn "and re-emerge ${PN} with the desired USE flags" echo ebeep epause fi } src_prepare() { # move files from ${P}-htmldoc.tar.gz if use doc; then mv ../html . || die "moving doc files failed" fi # remove visual studio related files from samples/ if use examples; then rm -f samples/*/*.vcproj rm -f samples/*/*.sln rm -f samples/*/*.dsp rm -f samples/*/*.dsw fi # this patch fixes bug 145424 # upstream has been contacted, see bug 2657924 in upstream bugtracker # TODO: check for fix by upstream when bumping #epatch "${FILESDIR}"/${PN}-asm.patch # --enable-ansi-bool and --disable-ansi-bool are the same # we want to enable it so to prevent eautoreconf, a sed script is enough # upstream has been contacted with a patch, see bug 2685609 in patch tracker } src_configure() { local myconf="" # plugins disable only if ! audio and ! video # minsize, openh323, opal: presets of features (overwritten by use flags) # ansi-bool, atomicity: there is no reason to disable those features # internalregex: we want to use external one # sunaudio and bsdvideo are respectively for SunOS and BSD's # appshare, vfw: only for windows # sockagg: always enabled, see bug 2685379 in upstream bugtracker # samples: no need to build sample econf --enable-stun --enable-v4l2 --enable-ffvdev --enable-video \ --enable-remconn --enable-socks --enable-pipechan --enable-url \ --enable-opal --enable-openh323 } src_compile() { local makeopts="" use debug && makeopts="debug" emake ${makeopts} || die "emake failed" } src_install() { local makeopts="" use debug && makeopts="DEBUG=1" emake DESTDIR="${D}" ${makeopts} install || die "emake install failed" if use doc; then dohtml -r html/* || die "dohtml failed" fi dodoc History.txt ReadMe.txt ReadMe_QOS.txt || die "dodoc failed" # 2.4.5 has only one ChangeLog dodoc ChangeLog-${PN}-v${PV//./_}.txt || die "dodoc failed" if use examples; then local exampledir="/usr/share/doc/${PF}/examples" local basedir="samples" local sampledirs="`ls samples --hide=Makefile`" # first, install Makefile insinto ${exampledir}/ doins ${basedir}/Makefile || die "doins failed" # now, all examples for x in ${sampledirs}; do insinto ${exampledir}/${x}/ doins ${basedir}/${x}/* || die "doins failed" done fi } pkg_postinst() { if use examples; then ewarn "all examples have been installed, some of them will not work on your system" ewarn "it will depend of the enabled use flags" ewarn "to test examples, you have to run PTLIBDIR=/usr/share/ptlib make" fi }