123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- # Copyright 1999-2016 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI="5"
- inherit eutils
- 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/${PN}-2.10.10-htmldoc.tar.bz2 )"
- LICENSE="MPL-1.0"
- SLOT="0/${PV}"
- KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 sparc x86"
- # default enabled are features from 'minsize', the most used according to ptlib
- IUSE="alsa +asn debug doc +dtmf examples ffmpeg ftp +http ipv6
- xmpp ldap lua mail odbc oss pch pulseaudio qos remote sasl sdl serial
- shmvideo snmp soap socks +sound ssl static-libs +stun telnet tts v4l +video
- vxml +wav +xml xmlrpc"
- CDEPEND="
- ldap? ( net-nds/openldap )
- lua? ( dev-lang/lua )
- odbc? ( dev-db/unixODBC )
- pulseaudio? ( media-sound/pulseaudio )
- sasl? ( dev-libs/cyrus-sasl:2 )
- sdl? ( media-libs/libsdl )
- sound? ( alsa? ( media-libs/alsa-lib ) )
- ssl? ( dev-libs/openssl )
- video? ( v4l? ( media-libs/libv4l ) )
- xml? ( dev-libs/expat )
- !!dev-libs/pwlib"
- RDEPEND="${CDEPEND}
- ffmpeg? ( virtual/ffmpeg )"
- DEPEND="${CDEPEND}
- virtual/pkgconfig
- sys-devel/bison
- sys-devel/flex
- video? ( v4l? ( sys-kernel/linux-headers ) )"
- # NOTES:
- # media-libs/libdc1394:2 should be supported but headers location have changed
- # tools/ directory is ignored
- # avc plugin is disabled to fix bug 276514, see upstream bug 2821744
- conditional_use_warn_msg() {
- ewarn "To enable ${1} USE flag, you need ${2} USE flag to be enabled"
- ewarn "Please, enable ${2} or disable ${1}"
- }
- REQUIRED_USE="sdl? ( video )
- xmpp? ( xml )
- vxml? ( http tts xml )
- xmlrpc? ( http xml )
- soap? ( http xml )"
- src_prepare() {
- epatch "${FILESDIR}/${PN}-2.10.9-svn_revision_override.patch" \
- "${FILESDIR}/${PN}-2.10.9-pkgconfig_ldflags.patch" \
- "${FILESDIR}/${PN}-2.10.9-respect_cxxflags.patch" \
- "${FILESDIR}/${PN}-2.10.10-mga-bison-parameter.patch" \
- "${FILESDIR}/${PN}-2.10.10-respect_cflags_cxxflags.patch"
- if ! use telnet; then
- epatch "${FILESDIR}/${PN}-2.10.9-disable-telnet-symbols.patch"
- 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
- if [[ ! -z ${TARGET+set} ]]; then
- ewarn "TARGET variable is set. Removing as it would break the build, bug #465722."
- unset TARGET
- fi
- }
- src_configure() {
- local myconf=""
- # plugins are disabled only if ! sound and ! video
- if ! use sound && ! use video; then
- myconf="${myconf} --disable-plugins"
- else
- myconf="${myconf} --enable-plugins"
- fi
- # minsize: presets of features (overwritten by use flags)
- # ansi-bool, atomicity: there is no reason to disable those features
- # internalregex: we want to use system one
- # sunaudio and bsdvideo are respectively for SunOS and BSD's
- # appshare, vfw: only for windows
- # samples: no need to build samples
- # avc: disabled, bug 276514, upstream bug 2821744
- # mlib: SUN mediaLibs. Not in tree.
- # pipechan, configfile, resolver, url: force enabling
- econf ${myconf} \
- --disable-minsize \
- --enable-ansi-bool \
- --enable-atomicity \
- --disable-internalregex \
- --disable-sunaudio \
- --disable-bsdvideo \
- --disable-appshare \
- --disable-vfw \
- --disable-samples \
- --disable-avc \
- --disable-mlib \
- --enable-configfile \
- --enable-pipechan \
- --enable-resolver \
- --enable-url \
- $(use_enable alsa) \
- $(use_enable asn) \
- $(use_enable debug exceptions) \
- $(use_enable debug memcheck) \
- $(use_enable debug tracing) \
- $(use_enable dtmf) \
- --disable-esd \
- $(use_enable ffmpeg ffvdev) \
- $(use_enable ftp) \
- $(use_enable http) \
- $(use_enable http httpforms) \
- $(use_enable http httpsvc) \
- --disable-dc \
- $(use_enable ipv6) \
- $(use_enable xmpp jabber) \
- $(use_enable ldap openldap) \
- $(use_enable lua) \
- $(use_enable mail pop3smtp) \
- $(use_enable pulseaudio pulse) \
- $(use_enable odbc) \
- $(use_enable oss) \
- $(use_enable pch) \
- $(use_enable qos) \
- $(use_enable remote remconn) \
- $(use_enable sasl) \
- $(use_enable sdl) \
- $(use_enable serial) \
- $(use_enable shmvideo) \
- $(use_enable snmp) \
- $(use_enable soap) \
- $(use_enable socks) \
- $(use_enable sound audio) \
- $(use_enable ssl openssl) \
- $(use_enable stun) \
- $(use_enable telnet) \
- $(use_enable tts) \
- --disable-v4l \
- $(use_enable v4l v4l2) \
- $(use_enable video) $(use_enable video vidfile) \
- $(use_enable vxml) \
- $(use_enable wav wavfile) \
- $(use_enable xml expat) \
- $(use_enable xmlrpc)
- }
- src_compile() {
- local makeopts=""
- tc-env_build
- use debug && makeopts="debug"
- emake ${makeopts} V=1 || die "emake failed"
- }
- src_install() {
- local makeopts=""
- use debug && makeopts="DEBUG=1"
- emake DESTDIR="${D}" ${makeopts} install || die "emake install failed"
- # Get rid of static libraries if not requested
- # There seems to be no easy way to disable this in the build system
- if ! use static-libs; then
- rm -v "${D}"/usr/lib*/*.a || die
- fi
- if use doc; then
- dohtml -r "${WORKDIR}"/html/* || die "dohtml failed"
- fi
- dodoc History.txt ReadMe.txt ReadMe_QOS.txt || die "dodoc failed"
- if use sound || use video; then
- newdoc plugins/ReadMe.txt ReadMe-Plugins.txt || die "newdoc failed"
- fi
- 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
- if ! use sound || ! use video; then
- ewarn "You have disabled sound or video USE flags."
- ewarn "Most audio/video have been disabled silently even if enabled via USE flags."
- ewarn "Having a feature enabled via use flag but disabled can lead to issues."
- fi
- }
|