summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2016-08-01 19:55:33 -0600
committerGeorge Joseph <gjoseph@digium.com>2016-09-06 10:39:19 -0500
commit117a7741c856886c52ce014e3034993cc02f0358 (patch)
treed619054adda0a50f2eee3fbd24aa27256087441c /configure
parent1b752842b902b2215e9b1d6ea4b0b0c8e23ecc08 (diff)
build: Add download capability for external packages
The DPMA and g729a, silk, siren7 and siren14 codecs hosted at http://downloads.digium.com/pub/telephony/ are now listed in the "External" sections of the "Resource Modules" and "Codec Translators" pages in menuselect. Any that are selected will automatically be downloaded and installed when "make install" is run. Their LICENSE and README (if avaialble) files will be installed to ASTVARLIBDIR/documentation/thirdparty/<product_name>. Example use with codecs: The codecs/codecs.xml file is a menuselect style xml file that lists the codecs to be included. Their support levels are 'external', which triggers the download and install, and defaultenabled is no. Also because codec_g729a is actually in a directory named codec_g729 on the download server, the newly added 'member_data' element is used to override the default of the directory name being the package name. You can use the 'directory_name' attribute to keep default base URL (http://downloads.digium.com/pub/telephony/) but use the new directory, or you use the 'remote_url' attribute to specify a full URL to the download directory. In this case, you must still follow the same subdirectory naming conventions as that used for the packages located at 'http://downloads.digium.com/pub/telephony'. A new configure option '--with-externals-cache' was added and like '--with-sounds-cache' it allows the installer to cache tarballs so they're not downloaded every time. To assist with the download and install process, each external package now has a manifest.xml file that, among other things, contains a package version and checksums for each file in the tarball. The manifest is saved to both the cache directory and ASTMODDIR and together with the manifest.xml on the downloads site, tells the install scripts whether a download and/or update is needed. bash and xmlstarlet are required for downloader operation. If they're not installed, the external items in menuselect will be unavailable. Change-Id: Id3dcf1289ffd3cb0bbd7dfab3cafbb87be60323a
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure86
1 files changed, 86 insertions, 0 deletions
diff --git a/configure b/configure
index 7f6b5dddf..d4ebdc98d 100755
--- a/configure
+++ b/configure
@@ -802,6 +802,7 @@ PBX_SPANDSP
SPANDSP_DIR
SPANDSP_INCLUDE
SPANDSP_LIB
+EXTERNALS_CACHE_DIR
SOUNDS_CACHE_DIR
PBX_SDL_IMAGE
SDL_IMAGE_DIR
@@ -1178,6 +1179,8 @@ PTHREAD_CC
ax_pthread_config
MD5
SOXMIX
+PBX_BASH
+PBX_XMLSTARLET
PBX_FLEX
PBX_BISON
OPENSSL
@@ -1187,6 +1190,7 @@ DOWNLOAD
FETCH
ALEMBIC
GIT
+BASH
XMLSTARLET
XMLLINT
KPATHSEA
@@ -1373,6 +1377,7 @@ with_resample
with_sdl
with_SDL_image
with_sounds_cache
+with_externals_cache
with_spandsp
with_ss7
with_speex
@@ -2117,6 +2122,8 @@ Optional Packages:
--with-SDL_image=PATH use Sdl Image files in PATH
--with-sounds-cache=PATH
use cached sound tarfiles in PATH
+ --with-externals-cache=PATH
+ use cached external module tarfiles in PATH
--with-spandsp=PATH use SPANDSP files in PATH
--with-ss7=PATH use ISDN SS7 files in PATH
--with-speex=PATH use Speex files in PATH
@@ -7458,6 +7465,47 @@ $as_echo "no" >&6; }
fi
+# Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BASH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_BASH" && ac_cv_path_BASH=":"
+ ;;
+esac
+fi
+BASH=$ac_cv_path_BASH
+if test -n "$BASH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
+$as_echo "$BASH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
# Extract the first word of "git", so it can be a program name with args.
set dummy git; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -7765,6 +7813,20 @@ else
fi
+if test "x${XMLSTARLET}" = "x:" ; then
+ PBX_XMLSTARLET=0
+else
+ PBX_XMLSTARLET=1
+fi
+
+
+if test "x${BASH}" = "x:" ; then
+ PBX_BASH=0
+else
+ PBX_BASH=1
+fi
+
+
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}soxmix", so it can be a program name with args.
set dummy ${ac_tool_prefix}soxmix; ac_word=$2
@@ -11463,6 +11525,30 @@ fi
+
+# Check whether --with-externals-cache was given.
+if test "${with_externals_cache+set}" = set; then :
+ withval=$with_externals_cache;
+ case ${withval} in
+ n|no)
+ unset EXTERNALS_CACHE_DIR
+ ;;
+ *)
+ if test "x${withval}" = "x"; then
+ :
+ else
+ EXTERNALS_CACHE_DIR="${withval}"
+ fi
+ ;;
+ esac
+
+else
+ :
+fi
+
+
+
+
SPANDSP_DESCRIP="SPANDSP"
SPANDSP_OPTION="spandsp"
PBX_SPANDSP=0