summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2016-11-03 10:55:06 -0600
committerGeorge Joseph <gjoseph@digium.com>2016-11-03 10:55:06 -0600
commitaa04c453b8201405217e359481158cf70e620887 (patch)
tree2f8646e3e1240baac60bf5d13b21a91e6e891057
parent7d8b18d3fb79977fc59715defd2457c274084225 (diff)
pjproject_bundled: Fix issue with libasteriskpj needing libresample
libresample is only needed by pjproject if we're building pjsua, which we only do if TEST_FRAMEWORK is selected. It's required by pjsua to process audio which is needed by some testsuite tests. Unfortunately, pjproject relies on a newer version of libresample than the version that ships by most distros so we need to compile the version that's bundled with pjproject. Since we only need it for pjsua, we DON'T want it's symbols exposed when we actually build asterisk. There was a problem however... TEST_FRAMEWORK is only known AFTER we've already run ./configure on both asterisk and pjproject but pjproject's ./configure needs to test it to know whether to set up to build libresample or not. The previous way of figuring this out was to always tell ./configure "yes" but not actually build the library. This caused an issue where building libasteriskpj was being told to include libresample but it wasn't actually there. The solution is to still do a default pjproject configure during an asterisk ./configure but if makeopts or menuselect.makeopts changes subsequently, we now reconfigure pjproject, taking into account the current state of TEST_FRAMEWORK. Previously, if makeopts or menuselect.makeopts changed, only a recompile of pjproject was done. Change-Id: I9b5d84c61384a3ae07fe30e85c49698378cc4685
-rw-r--r--third-party/pjproject/Makefile14
-rw-r--r--third-party/pjproject/Makefile.rules4
2 files changed, 11 insertions, 7 deletions
diff --git a/third-party/pjproject/Makefile b/third-party/pjproject/Makefile
index 209e681cd..106938b6c 100644
--- a/third-party/pjproject/Makefile
+++ b/third-party/pjproject/Makefile
@@ -103,7 +103,12 @@ source/pjlib/include/pj/%.h: patches/%.h
$(ECHO_PREFIX) Applying custom include file $<
$(CMD_PREFIX) cp -f $< source/pjlib/include/pj/
-source/build.mak: Makefile.rules source/version.mak source/user.mak $(addprefix source/pjlib/include/pj/,$(notdir $(wildcard patches/*.h)))
+.rebuild_needed: $(wildcard ../../makeopts) $(wildcard ../../menuselect.makeopts)
+ $(ECHO_PREFIX) Rebuilding
+ $(CMD_PREFIX) $(MAKE) clean $(REALLY_QUIET)
+ @touch .rebuild_needed
+
+source/build.mak: Makefile.rules source/version.mak source/user.mak $(addprefix source/pjlib/include/pj/,$(notdir $(wildcard patches/*.h))) .rebuild_needed
$(ECHO_PREFIX) Configuring with $(PJPROJECT_CONFIG_OPTS)
$(CMD_PREFIX) (cd source ; ./aconfigure $(QUIET_CONFIGURE) $(PJPROJECT_CONFIG_OPTS))
@@ -115,12 +120,7 @@ configure: source/build.mak
echo_cflags: source/build.mak
@echo $(PJ_CFLAGS)
-.rebuild_needed: ../../makeopts ../../menuselect.makeopts
- $(ECHO_PREFIX) Rebuilding
- $(CMD_PREFIX) $(MAKE) clean $(REALLY_QUIET)
- @touch .rebuild_needed
-
-libpj%.a: .rebuild_needed source/build.mak
+libpj%.a: source/build.mak
$(ECHO_PREFIX) Compiling lib $(@F)
$(CMD_PREFIX) $(MAKE) -C $(dir $(shell dirname $@))/build $(@F) $(REALLY_QUIET)
-@rm -rf .rebuild_needed
diff --git a/third-party/pjproject/Makefile.rules b/third-party/pjproject/Makefile.rules
index 531a259d3..ae4b6a5f9 100644
--- a/third-party/pjproject/Makefile.rules
+++ b/third-party/pjproject/Makefile.rules
@@ -28,6 +28,10 @@ PJPROJECT_CONFIG_OPTS = --prefix=/opt/pjproject \
--without-external-pa \
--without-external-srtp
+ifeq ($(findstring TEST_FRAMEWORK,$(MENUSELECT_CFLAGS)),)
+ PJPROJECT_CONFIG_OPTS += --disable-resample --disable-g711-codec
+endif
+
ifeq ($(shell uname -s),Linux)
PJPROJECT_CONFIG_OPTS += --enable-epoll
endif