configure: Add --with-download-cache option

To make building without an internet connection easier, a new
./configure option '--with-download-cache' was added that sets
the cache for externals (like pjproject, the codecs and the DPMA),
AND the sounds files.  It can also be specified as an environment
variable named "AST_DOWNLOAD_CACHE".  The existing
'--with-sounds-cache' option / SOUNDS_CACHE_DIR env variable and
'--with-externals-cache' option / EXTERNALS_CACHE_DIR env variable
remain and if specified, will override '--with-downloads-cache'.

Change-Id: I5c3cf15ee61e8fe191b52732303e969854f8d861
14
George Joseph 8 years ago
parent 2c23f8719e
commit d91c93c226

@ -17,6 +17,13 @@ Core
* VP9 is now a supported passthrough video codec and it can be used by * VP9 is now a supported passthrough video codec and it can be used by
specifying "vp9" in the allow line. specifying "vp9" in the allow line.
Build System
------------------
* A '--with-download-cache' option is now available which is equivalent to
setting '--with-sounds-cache' and '--with-externals-cache' to the same
value. The download cache can also be set via the AST_DOWNLOAD_CACHE
environment variable.
res_pjsip res_pjsip
------------------ ------------------
* The "external_media_address" on transports is now resolved using dnsmgr and * The "external_media_address" on transports is now resolved using dnsmgr and

@ -26,7 +26,11 @@ if [[ -z "${tmpdir}" ]] ; then
fi fi
trap "rm -rf ${tmpdir}" EXIT trap "rm -rf ${tmpdir}" EXIT
sed -r -e "s/^([^ =]+)\s*=\s*(.*)$/\1=\"\2\"/g" ${ASTTOPDIR}/makeopts >${tmpdir}/makeopts # We have to pre-process the makeopts file so it will be parsable by bash
# Surround values with double quotes
# Convert make $(or) functions to bash ${name:-value}
sed -r -e "s/^([^ =]+)\s*=\s*(.*)$/\1=\"\2\"/g" \
-e 's/^([^ =]+)="\$\(or ([^,]*),([^)]+)\)"/_tmp="\2"\n\1="${_tmp:-\3}"/g' ${ASTTOPDIR}/makeopts >${tmpdir}/makeopts
source ${tmpdir}/makeopts source ${tmpdir}/makeopts
if [[ -z "${ASTMODDIR}" ]] ; then if [[ -z "${ASTMODDIR}" ]] ; then
echo "${module_name}: Unable to parse ${ASTTOPDIR}/makeopts." echo "${module_name}: Unable to parse ${ASTTOPDIR}/makeopts."

@ -14,7 +14,11 @@ if [[ -z "${tmpdir}" ]] ; then
fi fi
trap "rm -rf ${tmpdir}" EXIT trap "rm -rf ${tmpdir}" EXIT
sed -r -e "s/^([^ =]+)\s*=\s*(.*)$/\1=\"\2\"/g" ${ASTTOPDIR}/makeopts >${tmpdir}/makeopts # We have to pre-process the makeopts file so it will be parsable by bash
# Surround values with double quotes
# Convert make $(or) functions to bash ${name:-value}
sed -r -e "s/^([^ =]+)\s*=\s*(.*)$/\1=\"\2\"/g" \
-e 's/^([^ =]+)="\$\(or ([^,]*),([^)]+)\)"/_tmp="\2"\n\1="${_tmp:-\3}"/g' ${ASTTOPDIR}/makeopts >${tmpdir}/makeopts
source ${tmpdir}/makeopts source ${tmpdir}/makeopts
if [[ -z "${ASTMODDIR}" ]] ; then if [[ -z "${ASTMODDIR}" ]] ; then
echo "${module_name}: Unable to parse ${ASTTOPDIR}/makeopts." echo "${module_name}: Unable to parse ${ASTTOPDIR}/makeopts."

35
configure vendored

@ -1216,6 +1216,7 @@ AST_NESTED_FUNCTIONS
AST_CODE_COVERAGE AST_CODE_COVERAGE
EXTERNALS_CACHE_DIR EXTERNALS_CACHE_DIR
SOUNDS_CACHE_DIR SOUNDS_CACHE_DIR
AST_DOWNLOAD_CACHE
AST_DEVMODE_STRICT AST_DEVMODE_STRICT
AST_DEVMODE AST_DEVMODE
NOISY_BUILD NOISY_BUILD
@ -1369,6 +1370,7 @@ ac_user_opts='
enable_option_checking enable_option_checking
with_gnu_ld with_gnu_ld
enable_dev_mode enable_dev_mode
with_download_cache
with_sounds_cache with_sounds_cache
with_externals_cache with_externals_cache
enable_coverage enable_coverage
@ -2113,6 +2115,9 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-download-cache=PATH
use cached sound AND external module tarfiles in
PATH
--with-sounds-cache=PATH --with-sounds-cache=PATH
use cached sound tarfiles in PATH use cached sound tarfiles in PATH
--with-externals-cache=PATH --with-externals-cache=PATH
@ -9037,6 +9042,30 @@ fi
# Check whether --with-download-cache was given.
if test "${with_download_cache+set}" = set; then :
withval=$with_download_cache;
case ${withval} in
n|no)
unset AST_DOWNLOAD_CACHE
;;
*)
if test "x${withval}" = "x"; then
:
else
AST_DOWNLOAD_CACHE="${withval}"
fi
;;
esac
else
:
fi
# Check whether --with-sounds-cache was given. # Check whether --with-sounds-cache was given.
if test "${with_sounds_cache+set}" = set; then : if test "${with_sounds_cache+set}" = set; then :
withval=$with_sounds_cache; withval=$with_sounds_cache;
@ -9299,11 +9328,11 @@ $as_echo "configuring" >&6; }
PJPROJECT_CONFIGURE_OPTS+=" --host=$host" PJPROJECT_CONFIGURE_OPTS+=" --host=$host"
fi fi
export TAR PATCH SED NM EXTERNALS_CACHE_DIR DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT export TAR PATCH SED NM EXTERNALS_CACHE_DIR AST_DOWNLOAD_CACHE DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT
export NOISY_BUILD export NOISY_BUILD
${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \ ${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \
PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \ PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \
EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" \ EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" \
configure configure
if test $? -ne 0 ; then if test $? -ne 0 ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
@ -9316,7 +9345,7 @@ $as_echo "$as_me: Unable to configure ${PJPROJECT_DIR}" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bundled pjproject" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bundled pjproject" >&5
$as_echo_n "checking for bundled pjproject... " >&6; } $as_echo_n "checking for bundled pjproject... " >&6; }
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_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" echo_cflags)
PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE" PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE"
PBX_PJPROJECT=1 PBX_PJPROJECT=1

@ -407,6 +407,7 @@ AC_SUBST(NOISY_BUILD)
AC_SUBST(AST_DEVMODE) AC_SUBST(AST_DEVMODE)
AC_SUBST(AST_DEVMODE_STRICT) AC_SUBST(AST_DEVMODE_STRICT)
AST_OPTION_ONLY([download-cache], [AST_DOWNLOAD_CACHE], [cached sound AND external module tarfiles], [])
AST_OPTION_ONLY([sounds-cache], [SOUNDS_CACHE_DIR], [cached sound tarfiles], []) AST_OPTION_ONLY([sounds-cache], [SOUNDS_CACHE_DIR], [cached sound tarfiles], [])
AST_OPTION_ONLY([externals-cache], [EXTERNALS_CACHE_DIR], [cached external module tarfiles], []) AST_OPTION_ONLY([externals-cache], [EXTERNALS_CACHE_DIR], [cached external module tarfiles], [])

@ -29,8 +29,9 @@ FETCH=@FETCH@
DOWNLOAD=@DOWNLOAD@ DOWNLOAD=@DOWNLOAD@
DOWNLOAD_TO_STDOUT=@DOWNLOAD_TO_STDOUT@ DOWNLOAD_TO_STDOUT=@DOWNLOAD_TO_STDOUT@
DOWNLOAD_TIMEOUT=@DOWNLOAD_TIMEOUT@ DOWNLOAD_TIMEOUT=@DOWNLOAD_TIMEOUT@
SOUNDS_CACHE_DIR=@SOUNDS_CACHE_DIR@ AST_DOWNLOAD_CACHE=@AST_DOWNLOAD_CACHE@
EXTERNALS_CACHE_DIR=@EXTERNALS_CACHE_DIR@ SOUNDS_CACHE_DIR=$(or @SOUNDS_CACHE_DIR@,${AST_DOWNLOAD_CACHE})
EXTERNALS_CACHE_DIR=$(or @EXTERNALS_CACHE_DIR@,${AST_DOWNLOAD_CACHE})
RUBBER=@RUBBER@ RUBBER=@RUBBER@
CATDVI=@CATDVI@ CATDVI=@CATDVI@
KPATHSEA=@KPATHSEA@ KPATHSEA=@KPATHSEA@

@ -49,11 +49,11 @@ AC_DEFUN([_PJPROJECT_CONFIGURE],
PJPROJECT_CONFIGURE_OPTS+=" --host=$host" PJPROJECT_CONFIGURE_OPTS+=" --host=$host"
fi fi
export TAR PATCH SED NM EXTERNALS_CACHE_DIR DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT export TAR PATCH SED NM EXTERNALS_CACHE_DIR AST_DOWNLOAD_CACHE DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT
export NOISY_BUILD export NOISY_BUILD
${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \ ${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} \
PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \ PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" \
EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR}" \ EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" \
configure configure
if test $? -ne 0 ; then if test $? -ne 0 ; then
AC_MSG_RESULT(failed) AC_MSG_RESULT(failed)
@ -63,7 +63,7 @@ AC_DEFUN([_PJPROJECT_CONFIGURE],
AC_MSG_CHECKING(for bundled pjproject) AC_MSG_CHECKING(for bundled pjproject)
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_INCLUDE=$(${GNU_MAKE} --quiet --no-print-directory -C ${PJPROJECT_DIR} PJPROJECT_CONFIGURE_OPTS="$PJPROJECT_CONFIGURE_OPTS" EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" echo_cflags)
PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE" PJPROJECT_CFLAGS="$PJPROJECT_INCLUDE"
PBX_PJPROJECT=1 PBX_PJPROJECT=1

Loading…
Cancel
Save