mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	pjproject_bundled: Allow passing configure options to bundled
There wasn't any good way to pass options like --host or --build down to the pjproject configure which makes cross-compiling difficult. * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used to pass arbitrary options to pjproject configure. * Automatically set the pjproject configure --host and --build options to match those supplied for the asterisk configure. ASTERISK-27097 #close Reported-by: Kinsey Moore Change-Id: I5fa776e110262851173002a26ffe1172e4c35b2e
This commit is contained in:
		
							
								
								
									
										8
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								CHANGES
									
									
									
									
									
								
							@@ -59,6 +59,14 @@ chan_pjsip
 | 
			
		||||
   from the SDP, unless the remote side sends a different codec and we will
 | 
			
		||||
   switch to match.
 | 
			
		||||
 | 
			
		||||
Build System
 | 
			
		||||
------------------
 | 
			
		||||
 * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used
 | 
			
		||||
   to pass arbitrary options to the bundled pjproject configure.
 | 
			
		||||
 | 
			
		||||
 * Automatically set the bundled pjproject configure --host and --build
 | 
			
		||||
   options to match those supplied for the asterisk configure.
 | 
			
		||||
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
--- Functionality changes from Asterisk 14.4.0 to Asterisk 14.5.0 ------------
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -1219,6 +1219,7 @@ PJPROJECT_LIB
 | 
			
		||||
PBX_PJPROJECT
 | 
			
		||||
PJPROJECT_DIR
 | 
			
		||||
PJPROJECT_BUNDLED
 | 
			
		||||
PJPROJECT_CONFIGURE_OPTS
 | 
			
		||||
AST_C_COMPILER_FAMILY
 | 
			
		||||
AST_CLANG_BLOCKS
 | 
			
		||||
AST_CLANG_BLOCKS_LIBS
 | 
			
		||||
@@ -1355,7 +1356,6 @@ infodir
 | 
			
		||||
docdir
 | 
			
		||||
oldincludedir
 | 
			
		||||
includedir
 | 
			
		||||
runstatedir
 | 
			
		||||
localstatedir
 | 
			
		||||
sharedstatedir
 | 
			
		||||
sysconfdir
 | 
			
		||||
@@ -1484,6 +1484,7 @@ CXX
 | 
			
		||||
CXXFLAGS
 | 
			
		||||
CCC
 | 
			
		||||
CXXCPP
 | 
			
		||||
PJPROJECT_CONFIGURE_OPTS
 | 
			
		||||
PKG_CONFIG
 | 
			
		||||
PKG_CONFIG_PATH
 | 
			
		||||
PKG_CONFIG_LIBDIR
 | 
			
		||||
@@ -1539,7 +1540,6 @@ datadir='${datarootdir}'
 | 
			
		||||
sysconfdir='${prefix}/etc'
 | 
			
		||||
sharedstatedir='${prefix}/com'
 | 
			
		||||
localstatedir='${prefix}/var'
 | 
			
		||||
runstatedir='${localstatedir}/run'
 | 
			
		||||
includedir='${prefix}/include'
 | 
			
		||||
oldincludedir='/usr/include'
 | 
			
		||||
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 | 
			
		||||
@@ -1792,15 +1792,6 @@ do
 | 
			
		||||
  | -silent | --silent | --silen | --sile | --sil)
 | 
			
		||||
    silent=yes ;;
 | 
			
		||||
 | 
			
		||||
  -runstatedir | --runstatedir | --runstatedi | --runstated \
 | 
			
		||||
  | --runstate | --runstat | --runsta | --runst | --runs \
 | 
			
		||||
  | --run | --ru | --r)
 | 
			
		||||
    ac_prev=runstatedir ;;
 | 
			
		||||
  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
 | 
			
		||||
  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
 | 
			
		||||
  | --run=* | --ru=* | --r=*)
 | 
			
		||||
    runstatedir=$ac_optarg ;;
 | 
			
		||||
 | 
			
		||||
  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
 | 
			
		||||
    ac_prev=sbindir ;;
 | 
			
		||||
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
 | 
			
		||||
@@ -1938,7 +1929,7 @@ fi
 | 
			
		||||
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 | 
			
		||||
		datadir sysconfdir sharedstatedir localstatedir includedir \
 | 
			
		||||
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 | 
			
		||||
		libdir localedir mandir runstatedir
 | 
			
		||||
		libdir localedir mandir
 | 
			
		||||
do
 | 
			
		||||
  eval ac_val=\$$ac_var
 | 
			
		||||
  # Remove trailing slashes.
 | 
			
		||||
@@ -2091,7 +2082,6 @@ Fine tuning of the installation directories:
 | 
			
		||||
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
 | 
			
		||||
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
 | 
			
		||||
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
 | 
			
		||||
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
 | 
			
		||||
  --libdir=DIR            object code libraries [EPREFIX/lib]
 | 
			
		||||
  --includedir=DIR        C header files [PREFIX/include]
 | 
			
		||||
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
 | 
			
		||||
@@ -2242,6 +2232,8 @@ Some influential environment variables:
 | 
			
		||||
  CXX         C++ compiler command
 | 
			
		||||
  CXXFLAGS    C++ compiler flags
 | 
			
		||||
  CXXCPP      C++ preprocessor
 | 
			
		||||
  PJPROJECT_CONFIGURE_OPTS
 | 
			
		||||
              Additional configure options to pass to bundled pjproject
 | 
			
		||||
  PKG_CONFIG  path to pkg-config utility
 | 
			
		||||
  PKG_CONFIG_PATH
 | 
			
		||||
              directories to add to pkg-config's search path
 | 
			
		||||
@@ -9315,20 +9307,33 @@ $as_echo "configuring" >&6; }
 | 
			
		||||
		as_fn_error $? "cat is required to build bundled pjproject" "$LINENO" 5
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	this_host=$(./config.sub $(./config.guess))
 | 
			
		||||
	if test "$build" != "$this_host" ; then
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS+=" --build=$build"
 | 
			
		||||
	fi
 | 
			
		||||
	if test "$host" != "$this_host" ; then
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS+=" --host=$host"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	export TAR PATCH SED NM EXTERNALS_CACHE_DIR DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT
 | 
			
		||||
	${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} EXTERNALS_CACHE_DIR=${EXTERNALS_CACHE_DIR} configure
 | 
			
		||||
	export NOISY_BUILD
 | 
			
		||||
	${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \
 | 
			
		||||
		EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" \
 | 
			
		||||
		configure
 | 
			
		||||
	if test $? -ne 0 ; then
 | 
			
		||||
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 | 
			
		||||
$as_echo "failed" >&6; }
 | 
			
		||||
		{ $as_echo "$as_me:${as_lineno-$LINENO}: Unable to configure ${PJPROJECT_DIR}" >&5
 | 
			
		||||
$as_echo "$as_me: Unable to configure ${PJPROJECT_DIR}" >&6;}
 | 
			
		||||
		as_fn_error $? "Run \"${GNU_MAKE} -C ${PJPROJECT_DIR} NOISY_BUILD=yes configure\" to see error details." "$LINENO" 5
 | 
			
		||||
		as_fn_error $? "Re-run the ./configure command with 'NOISY_BUILD=yes' appended to see error details." "$LINENO" 5
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bundled pjproject" >&5
 | 
			
		||||
$as_echo_n "checking for bundled pjproject... " >&6; }
 | 
			
		||||
 | 
			
		||||
	PJPROJECT_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} EXTERNALS_CACHE_DIR=${EXTERNALS_CACHE_DIR} echo_cflags)
 | 
			
		||||
	PJPROJECT_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" echo_cflags)
 | 
			
		||||
	PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE"
 | 
			
		||||
	PBX_PJPROJECT=1
 | 
			
		||||
 | 
			
		||||
@@ -14910,7 +14915,7 @@ else
 | 
			
		||||
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 | 
			
		||||
    since some C++ compilers masquerading as C compilers
 | 
			
		||||
    incorrectly reject 9223372036854775807.  */
 | 
			
		||||
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
 | 
			
		||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 | 
			
		||||
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 | 
			
		||||
		       && LARGE_OFF_T % 2147483647 == 1)
 | 
			
		||||
		      ? 1 : -1];
 | 
			
		||||
@@ -14956,7 +14961,7 @@ else
 | 
			
		||||
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 | 
			
		||||
    since some C++ compilers masquerading as C compilers
 | 
			
		||||
    incorrectly reject 9223372036854775807.  */
 | 
			
		||||
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
 | 
			
		||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 | 
			
		||||
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 | 
			
		||||
		       && LARGE_OFF_T % 2147483647 == 1)
 | 
			
		||||
		      ? 1 : -1];
 | 
			
		||||
@@ -14980,7 +14985,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 | 
			
		||||
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 | 
			
		||||
    since some C++ compilers masquerading as C compilers
 | 
			
		||||
    incorrectly reject 9223372036854775807.  */
 | 
			
		||||
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
 | 
			
		||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 | 
			
		||||
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 | 
			
		||||
		       && LARGE_OFF_T % 2147483647 == 1)
 | 
			
		||||
		      ? 1 : -1];
 | 
			
		||||
@@ -15025,7 +15030,7 @@ else
 | 
			
		||||
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 | 
			
		||||
    since some C++ compilers masquerading as C compilers
 | 
			
		||||
    incorrectly reject 9223372036854775807.  */
 | 
			
		||||
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
 | 
			
		||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 | 
			
		||||
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 | 
			
		||||
		       && LARGE_OFF_T % 2147483647 == 1)
 | 
			
		||||
		      ? 1 : -1];
 | 
			
		||||
@@ -15049,7 +15054,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 | 
			
		||||
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 | 
			
		||||
    since some C++ compilers masquerading as C compilers
 | 
			
		||||
    incorrectly reject 9223372036854775807.  */
 | 
			
		||||
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
 | 
			
		||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 | 
			
		||||
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 | 
			
		||||
		       && LARGE_OFF_T % 2147483647 == 1)
 | 
			
		||||
		      ? 1 : -1];
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								third-party/configure.m4
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								third-party/configure.m4
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,7 @@
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# If this file is changed, be sure to run ASTTOPDIR/bootstrap.sh
 | 
			
		||||
# before committing.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([THIRD_PARTY_CONFIGURE],
 | 
			
		||||
[
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								third-party/pjproject/Makefile.rules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								third-party/pjproject/Makefile.rules
									
									
									
									
										vendored
									
									
								
							@@ -1,8 +1,11 @@
 | 
			
		||||
PJPROJECT_URL ?= https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/$(PJPROJECT_VERSION)
 | 
			
		||||
 | 
			
		||||
# PJPROJECT_CONFIGURE_OPTS could come from the command line or could be
 | 
			
		||||
# set/modified by configure.m4 if the build or host tuples aren't the same
 | 
			
		||||
# as the current build environment (cross-compile).
 | 
			
		||||
# Even though we're not installing pjproject, we're setting prefix to /opt/pjproject to be safe
 | 
			
		||||
 | 
			
		||||
PJPROJECT_CONFIG_OPTS = --prefix=/opt/pjproject \
 | 
			
		||||
PJPROJECT_CONFIG_OPTS = $(PJPROJECT_CONFIGURE_OPTS) --prefix=/opt/pjproject \
 | 
			
		||||
	--disable-speex-codec \
 | 
			
		||||
	--disable-speex-aec \
 | 
			
		||||
	--disable-speex-aec \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								third-party/pjproject/configure.m4
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								third-party/pjproject/configure.m4
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,8 @@
 | 
			
		||||
#
 | 
			
		||||
# If this file is changed, be sure to run ASTTOPDIR/bootstrap.sh
 | 
			
		||||
# before committing.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([_PJPROJECT_CONFIGURE],
 | 
			
		||||
[
 | 
			
		||||
	if test "${ac_mandatory_list#*PJPROJECT*}" != "$ac_mandatory_list" ; then
 | 
			
		||||
@@ -35,17 +40,30 @@ AC_DEFUN([_PJPROJECT_CONFIGURE],
 | 
			
		||||
		AC_MSG_ERROR(cat is required to build bundled pjproject)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AC_ARG_VAR([PJPROJECT_CONFIGURE_OPTS],[Additional configure options to pass to bundled pjproject])
 | 
			
		||||
	this_host=$(./config.sub $(./config.guess))
 | 
			
		||||
	if test "$build" != "$this_host" ; then
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS+=" --build=$build"
 | 
			
		||||
	fi
 | 
			
		||||
	if test "$host" != "$this_host" ; then
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS+=" --host=$host"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	export TAR PATCH SED NM EXTERNALS_CACHE_DIR DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT
 | 
			
		||||
	${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} EXTERNALS_CACHE_DIR=${EXTERNALS_CACHE_DIR} configure
 | 
			
		||||
	export NOISY_BUILD
 | 
			
		||||
	${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \
 | 
			
		||||
		PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \
 | 
			
		||||
		EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" \
 | 
			
		||||
		configure
 | 
			
		||||
	if test $? -ne 0 ; then
 | 
			
		||||
		AC_MSG_RESULT(failed)
 | 
			
		||||
		AC_MSG_NOTICE(Unable to configure ${PJPROJECT_DIR})
 | 
			
		||||
		AC_MSG_ERROR(Run "${GNU_MAKE} -C ${PJPROJECT_DIR} NOISY_BUILD=yes configure" to see error details.)
 | 
			
		||||
		AC_MSG_ERROR(Re-run the ./configure command with 'NOISY_BUILD=yes' appended to see error details.)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(for bundled pjproject)
 | 
			
		||||
 | 
			
		||||
	PJPROJECT_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} EXTERNALS_CACHE_DIR=${EXTERNALS_CACHE_DIR} echo_cflags)
 | 
			
		||||
	PJPROJECT_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" echo_cflags)
 | 
			
		||||
	PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE"
 | 
			
		||||
	PBX_PJPROJECT=1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user