# Template file for 'pjproject'
# no-third-party.patch comes from Alpine,
# and this template is heavily based on Alpine's APKBUILD.
pkgname=pjproject
version=2.13
revision=2
build_style=gnu-configure
configure_args="--enable-shared \
	--enable-libsamplerate \
	--with-external-speex \
	--with-external-gsm \
	--with-external-srtp \
	--disable-libyuv --disable-libwebrtc"
# Disable libyuv and webrtc echo cancelation.  Optional.  We don't have
# libyuv packaged for Void.  Thought I could be smart and use
# webrtc-audio-processing, but it doesn't have what I need.  Using the
# bundled versions would also pollute build with libyuv and libwebrtc (yuck).
makedepends="openssl-devel alsa-lib-devel libgsm-devel speex-devel speexdsp-devel
 libsrtp-devel libsamplerate-devel"
short_desc="Open source SIP and media stack"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="https://www.pjsip.org/"
distfiles="https://github.com/pjsip/pjproject/archive/refs/tags/${version}.tar.gz"
checksum=4178bb9f586299111463fc16ea04e461adca4a73e646f8ddef61ea53dafa92d9
disable_parallel_build=yes

pre_configure() {
	export LD="${CC}"
	# Remove target name from lib names
	sed -i -e 's/-$(TARGET_NAME)//g' \
		-e 's/= $(TARGET_NAME).a/= .a/g' \
		-e 's/-$(LIB_SUFFIX)/$(LIB_SUFFIX)/g' \
		$(find . -name '*.mak*' -o -name Makefile) || return 1

	# Fix hardcoded prefix and flags
	sed -i \
		-e 's/poll@/poll@\nexport PREFIX := @prefix@\n/g' \
		-e 's!prefix = /usr/local!prefix = $(PREFIX)!' \
		-e '/PJLIB_CFLAGS/ s/(_CFLAGS)/(_CFLAGS) -fPIC/g' \
		-e '/PJLIB_UTIL_CFLAGS/ s/(_CFLAGS)/(_CFLAGS) -fPIC/g' \
		Makefile \
		build.mak.in || return 1

	# Use libsamplerate instead of bundled resample
	sed -i -e "s/resample//" third_party/build/Makefile
	sed -i -e "s#../../third_party/libsamplerate/src/samplerate.h#samplerate.h#" pjmedia/src/pjmedia/resample_libsamplerate.c
	echo "#define PJ_HAS_IPV6 1" >> "pjlib/include/pj/config_site.h"
}

post_install() {
	vbin pjsip-apps/bin/pjsua
}

pjproject-devel_package() {
	depends="${makedepends} pjproject>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
		vmove usr/lib/pkgconfig
	}
}
