summaryrefslogtreecommitdiff
path: root/third-party/pjproject
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2016-10-31 15:12:57 -0600
committerGeorge Joseph <gjoseph@digium.com>2016-10-31 15:12:57 -0600
commita36a7d0cf4e73bd9f934e063ee5e4dc057921744 (patch)
tree8ea13bc8cb9b93eb99f9274721e63b4a932e2a2d /third-party/pjproject
parent55435e211bed8f6c887c69b37b7be0ac85c1a2e6 (diff)
pjproject_bundled: Fix compile of pjsua so it handles audio
In order for pjsua and its python binding to actually negotiate audio for the testsuite tests, it needs g711 and resample. The pj* libraries themselves do not. Unfortunately, pjproject relies on a brand new libresample that most distros don't ship so we need to use the libresample already bundled with pjproject. Only the pjsua executable and the _pjsua.so python library are linked with it so it shouldn't interfere with asterisk itself. Also it was pointed out that apply_patches couldn't handle multiple patches that depended on each other during the dry-run, so the dry-run was removed. Change-Id: I24f397462b486dcdde0dcafe40e6c55a6593f098
Diffstat (limited to 'third-party/pjproject')
-rw-r--r--third-party/pjproject/Makefile10
-rw-r--r--third-party/pjproject/Makefile.rules4
-rwxr-xr-xthird-party/pjproject/apply_patches10
-rw-r--r--third-party/pjproject/patches/0000-remove-third-party.patch33
4 files changed, 21 insertions, 36 deletions
diff --git a/third-party/pjproject/Makefile b/third-party/pjproject/Makefile
index 07a6c9cd6..209e681cd 100644
--- a/third-party/pjproject/Makefile
+++ b/third-party/pjproject/Makefile
@@ -125,11 +125,17 @@ libpj%.a: .rebuild_needed source/build.mak
$(CMD_PREFIX) $(MAKE) -C $(dir $(shell dirname $@))/build $(@F) $(REALLY_QUIET)
-@rm -rf .rebuild_needed
+# pjsua needs resample and g711 to successfully run the testsuite
+libresample%.a: .rebuild_needed source/build.mak
+ $(ECHO_PREFIX) Compiling lib $(@F)
+ $(CMD_PREFIX) $(MAKE) -C $(dir $(shell dirname $@))/build/resample all $(REALLY_QUIET)
+ -@rm -rf .rebuild_needed
+
# We need to compile pjlib, then pjlib-util, then the rest
# so we separate them out and create the dependencies
PJLIB_LIB_FILES = $(foreach lib,$(PJ_LIB_FILES),$(if $(findstring libpj-,$(lib)),$(lib),))
PJLIB_UTIL_LIB_FILES = $(foreach lib,$(PJ_LIB_FILES),$(if $(findstring libpjlib-util,$(lib)),$(lib),))
-PJSIP_LIB_FILES = $(filter-out $(PJLIB_LIB_FILES) $(PJLIB_UTIL_LIB_FILES),$(PJ_LIB_FILES))
+PJSIP_LIB_FILES = $(filter-out $(PJLIB_LIB_FILES) $(PJLIB_UTIL_LIB_FILES) $(APP_THIRD_PARTY_LIB_FILES),$(PJ_LIB_FILES))
ALL_LIB_FILES = $(PJLIB_LIB_FILES) $(PJLIB_UTIL_LIB_FILES) $(PJSIP_LIB_FILES)
$(PJLIB_UTIL_LIB_FILES): $(PJLIB_LIB_FILES)
@@ -152,7 +158,7 @@ source/pjsip-apps/lib/libasterisk_malloc_debug.a: source/pjsip-apps/lib/asterisk
$(CMD_PREFIX) ar qs $@ $< >/dev/null 2>&1
$(apps): APP = $(filter pj%,$(subst -, ,$(notdir $@)))
-$(apps): pjproject.symbols
+$(apps): pjproject.symbols $(APP_THIRD_PARTY_LIB_FILES)
$(ECHO_PREFIX) Compiling $(APP)
$(CMD_PREFIX) +$(MAKE) -C source/pjsip-apps/build $(filter pj%,$(subst -, ,$(notdir $@))) $(REALLY_QUIET)
diff --git a/third-party/pjproject/Makefile.rules b/third-party/pjproject/Makefile.rules
index 62d5a4653..531a259d3 100644
--- a/third-party/pjproject/Makefile.rules
+++ b/third-party/pjproject/Makefile.rules
@@ -9,7 +9,6 @@ PJPROJECT_CONFIG_OPTS = --prefix=/opt/pjproject \
--disable-gsm-codec \
--disable-ilbc-codec \
--disable-l16-codec \
- --disable-g711-codec \
--disable-g722-codec \
--disable-g7221-codec \
--disable-opencore-amr \
@@ -23,7 +22,6 @@ PJPROJECT_CONFIG_OPTS = --prefix=/opt/pjproject \
--disable-oss \
--disable-sdl \
--disable-libyuv \
- --disable-resample \
--disable-ffmpeg \
--disable-openh264 \
--disable-ipp \
@@ -31,5 +29,5 @@ PJPROJECT_CONFIG_OPTS = --prefix=/opt/pjproject \
--without-external-srtp
ifeq ($(shell uname -s),Linux)
- PJPROJECT_CONFIG_OPTS += --enable-epoll
+ PJPROJECT_CONFIG_OPTS += --enable-epoll
endif
diff --git a/third-party/pjproject/apply_patches b/third-party/pjproject/apply_patches
index 69a0ad0c1..5f9fde283 100755
--- a/third-party/pjproject/apply_patches
+++ b/third-party/pjproject/apply_patches
@@ -28,16 +28,6 @@ if [ ! "$(ls -A $patchdir/*.patch 2>/dev/null)" ] ; then
exit 0
fi
-if patch --dry-run </dev/null >/dev/null 2>&1 ; then
- DRY_RUN=--dry-run
-else
- DRY_RUN=-C
-fi
-
-for patchfile in $patchdir/*.patch ; do
- ${PATCH} -d $sourcedir -p1 -s -r- -f -N $DRY_RUN -i "$patchfile" || (echo "Patchfile $(basename $patchfile) failed to apply" >&2 ; exit 1) || exit 1
-done
-
for patchfile in "$patchdir"/*.patch ; do
[ -z $quiet ] && echo "Applying patch $(basename $patchfile)"
${PATCH} -d "$sourcedir" -p1 -s -i "$patchfile" || exit 1
diff --git a/third-party/pjproject/patches/0000-remove-third-party.patch b/third-party/pjproject/patches/0000-remove-third-party.patch
index aca7f0198..2e3bb5f9f 100644
--- a/third-party/pjproject/patches/0000-remove-third-party.patch
+++ b/third-party/pjproject/patches/0000-remove-third-party.patch
@@ -1,5 +1,5 @@
diff --git a/build.mak.in b/build.mak.in
-index 802211c..006d887 100644
+index 802211c..25fd05e 100644
--- a/build.mak.in
+++ b/build.mak.in
@@ -1,4 +1,3 @@
@@ -7,7 +7,7 @@ index 802211c..006d887 100644
include $(PJDIR)/version.mak
export PJ_DIR := $(PJDIR)
-@@ -9,7 +9,7 @@ export HOST_NAME := unix
+@@ -9,7 +8,7 @@ export HOST_NAME := unix
export CC_NAME := gcc
export TARGET_NAME := @target@
export CROSS_COMPILE := @ac_cross_compile@
@@ -16,7 +16,7 @@ index 802211c..006d887 100644
export SHLIB_SUFFIX := @ac_shlib_suffix@
export prefix := @prefix@
-@@ -28,114 +28,6 @@ export APP_THIRD_PARTY_EXT :=
+@@ -28,19 +27,6 @@ export APP_THIRD_PARTY_EXT :=
export APP_THIRD_PARTY_LIBS :=
export APP_THIRD_PARTY_LIB_FILES :=
@@ -33,22 +33,13 @@ index 802211c..006d887 100644
-endif
-endif
-
--ifeq (@ac_pjmedia_resample@,libresample)
--APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)
--ifeq ($(PJ_SHARED_LIBRARIES),)
--ifeq (@ac_resample_dll@,1)
--export PJ_RESAMPLE_DLL := 1
--APP_THIRD_PARTY_LIBS += -lresample
--APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
--else
--APP_THIRD_PARTY_LIBS += -lresample-$(TARGET_NAME)
--endif
--else
--APP_THIRD_PARTY_LIBS += -lresample
--APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
--endif
--endif
--
+ ifeq (@ac_pjmedia_resample@,libresample)
+ APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)
+ ifeq ($(PJ_SHARED_LIBRARIES),)
+@@ -57,85 +43,6 @@ APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFI
+ endif
+ endif
+
-ifneq (@ac_no_gsm_codec@,1)
-ifeq (@ac_external_gsm@,1)
-# External GSM library
@@ -131,7 +122,7 @@ index 802211c..006d887 100644
# Additional flags
@ac_build_mak_vars@
-@@ -149,7 +41,7 @@ SDL_CFLAGS = @ac_sdl_cflags@
+@@ -149,7 +56,7 @@ SDL_CFLAGS = @ac_sdl_cflags@
SDL_LDFLAGS = @ac_sdl_ldflags@
# FFMPEG flags
@@ -140,7 +131,7 @@ index 802211c..006d887 100644
FFMPEG_LDFLAGS = @ac_ffmpeg_ldflags@
# Video4Linux2
-@@ -157,7 +49,7 @@ V4L2_CFLAGS = @ac_v4l2_cflags@
+@@ -157,7 +64,7 @@ V4L2_CFLAGS = @ac_v4l2_cflags@
V4L2_LDFLAGS = @ac_v4l2_ldflags@
# OPENH264 flags