# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit autotools flag-o-matic DESCRIPTION="Open source SIP, Media, and NAT Traversal Library" HOMEPAGE="https://www.pjsip.org/" SRC_URI="https://www.pjsip.org/release/${PV}/${P}.tar.bz2" KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" LICENSE="GPL-2" SLOT="0" # g729 not included due to special bcg729 handling. CODEC_FLAGS="g711 g722 g7221 gsm ilbc speex l16" VIDEO_FLAGS="sdl ffmpeg v4l2 openh264 libyuv" SOUND_FLAGS="alsa portaudio" IUSE="amr debug epoll examples ipv6 libressl opus resample silk ssl static-libs webrtc ${CODEC_FLAGS} g729 ${VIDEO_FLAGS} ${SOUND_FLAGS}" PATCHES=( "${FILESDIR}/pjproject-2.9-ssl-enable.patch" ) RDEPEND="net-libs/libsrtp:= alsa? ( media-libs/alsa-lib ) amr? ( media-libs/opencore-amr ) ffmpeg? ( media-video/ffmpeg:= ) g729? ( media-libs/bcg729 ) gsm? ( media-sound/gsm ) ilbc? ( media-libs/libilbc ) openh264? ( media-libs/openh264 ) opus? ( media-libs/opus ) portaudio? ( media-libs/portaudio ) resample? ( media-libs/libsamplerate ) sdl? ( media-libs/libsdl ) speex? ( media-libs/speexdsp ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) " DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" src_prepare() { default rm configure || die "Unable to remove unwanted wrapper" mv aconfigure.ac configure.ac || die "Unable to rename configure script source" eautoreconf cp "${FILESDIR}/pjproject-2.9-config_site.h" "${S}/pjlib/include/pj/config_site.h" || die "Unable to create config_site.h" } src_configure() { local myconf=() local videnable="--disable-video" local t use debug || append-cflags -DNDEBUG=1 use ipv6 && append-cflags -DPJ_HAS_IPV6=1 append-cflags -DPJMEDIA_HAS_SRTP=1 for t in ${CODEC_FLAGS}; do myconf+=( $(use_enable ${t} ${t}-codec) ) done myconf+=( $(use_enable g729 bcg729) ) for t in ${VIDEO_FLAGS}; do myconf+=( $(use_enable ${t}) ) use "${t}" && videnable="--enable-video" done [ "${videnable}" = "--enable-video" ] && append-cflags -DPJMEDIA_HAS_VIDEO=1 LD="$(tc-getCC)" econf \ --enable-shared \ --with-external-srtp \ ${videnable} \ $(use_enable alsa sound) \ $(use_enable amr opencore-amr) \ $(use_enable epoll) \ $(use_enable opus) \ $(use_enable portaudio ext-sound) \ $(use_enable resample libsamplerate) \ $(use_enable resample resample-dll) \ $(use_enable resample) \ $(use_enable silk) \ $(use_enable speex speex-aec) \ $(use_enable ssl) \ $(use_with gsm external-gsm) \ $(use_with portaudio external-pa) \ $(use_with speex external-speex) \ $(usex webrtc '' --disable-libwebrtc) \ "${myconf[@]}" } src_compile() { emake dep LD="$(tc-getCC)" emake LD="$(tc-getCC)" } src_install() { default newbin pjsip-apps/bin/pjsua-${CHOST} pjsua newbin pjsip-apps/bin/pjsystest-${CHOST} pjsystest if use examples; then insinto "/usr/share/doc/${PF}/examples" doins -r pjsip-apps/src/samples fi use static-libs || rm "${ED}/usr/$(get_libdir)"/*.a || die "Error removing static archives" }