Add libjwt to third-party
The current STIR/SHAKEN implementation is not currently usable due to encryption issues. Rather than trying to futz with OpenSSL and the the current code, we can take advantage of the existing capabilities of libjwt but we first need to add it to the third-party infrastructure already in place for jansson and pjproject. A few tweaks were also made to the third-party infrastructure as a whole. The jansson "dest" install directory was renamed "dist" to better match convention, and the third-party Makefile was updated to clean all product directories not just the ones currently in use. Resolves: #349
This commit is contained in:
parent
b47200ddf0
commit
15ef050d0a
|
@ -28,6 +28,7 @@ URIPARSER=@PBX_URIPARSER@
|
||||||
KQUEUE=@PBX_KQUEUE@
|
KQUEUE=@PBX_KQUEUE@
|
||||||
LDAP=@PBX_LDAP@
|
LDAP=@PBX_LDAP@
|
||||||
LIBEDIT=@PBX_LIBEDIT@
|
LIBEDIT=@PBX_LIBEDIT@
|
||||||
|
LIBJWT=@PBX_LIBJWT@
|
||||||
LIBXML2=@PBX_LIBXML2@
|
LIBXML2=@PBX_LIBXML2@
|
||||||
LIBXSLT=@PBX_LIBXSLT@
|
LIBXSLT=@PBX_LIBXSLT@
|
||||||
XMLSTARLET=@PBX_XMLSTARLET@
|
XMLSTARLET=@PBX_XMLSTARLET@
|
||||||
|
|
|
@ -705,6 +705,8 @@ DISABLE_XMLDOC
|
||||||
CONFIG_LIBXML2
|
CONFIG_LIBXML2
|
||||||
LIBXML2_LIBS
|
LIBXML2_LIBS
|
||||||
LIBXML2_CFLAGS
|
LIBXML2_CFLAGS
|
||||||
|
LIBJWT_LIBS
|
||||||
|
LIBJWT_CFLAGS
|
||||||
JANSSON_LIBS
|
JANSSON_LIBS
|
||||||
JANSSON_CFLAGS
|
JANSSON_CFLAGS
|
||||||
UUID_LIB
|
UUID_LIB
|
||||||
|
@ -1049,6 +1051,7 @@ PBX_LIBXML2
|
||||||
LIBXML2_DIR
|
LIBXML2_DIR
|
||||||
LIBXML2_INCLUDE
|
LIBXML2_INCLUDE
|
||||||
LIBXML2_LIB
|
LIBXML2_LIB
|
||||||
|
LIBJWT_DIR
|
||||||
PBX_LIBEDIT_IS_UNICODE
|
PBX_LIBEDIT_IS_UNICODE
|
||||||
LIBEDIT_IS_UNICODE_DIR
|
LIBEDIT_IS_UNICODE_DIR
|
||||||
LIBEDIT_IS_UNICODE_INCLUDE
|
LIBEDIT_IS_UNICODE_INCLUDE
|
||||||
|
@ -1162,6 +1165,11 @@ PBX_BFD
|
||||||
BFD_DIR
|
BFD_DIR
|
||||||
BFD_INCLUDE
|
BFD_INCLUDE
|
||||||
BFD_LIB
|
BFD_LIB
|
||||||
|
LIBJWT_INCLUDE
|
||||||
|
LIBJWT_LIB
|
||||||
|
PBX_LIBJWT
|
||||||
|
LIBJWT_BUNDLED
|
||||||
|
LIBJWT_CONFIGURE_OPTS
|
||||||
PJPROJECT_INCLUDE
|
PJPROJECT_INCLUDE
|
||||||
PJPROJECT_LIB
|
PJPROJECT_LIB
|
||||||
PBX_PJPROJECT
|
PBX_PJPROJECT
|
||||||
|
@ -1330,7 +1338,6 @@ infodir
|
||||||
docdir
|
docdir
|
||||||
oldincludedir
|
oldincludedir
|
||||||
includedir
|
includedir
|
||||||
runstatedir
|
|
||||||
localstatedir
|
localstatedir
|
||||||
sharedstatedir
|
sharedstatedir
|
||||||
sysconfdir
|
sysconfdir
|
||||||
|
@ -1362,6 +1369,7 @@ with_externals_cache
|
||||||
enable_coverage
|
enable_coverage
|
||||||
with_jansson_bundled
|
with_jansson_bundled
|
||||||
with_pjproject_bundled
|
with_pjproject_bundled
|
||||||
|
with_libjwt_bundled
|
||||||
with_crypto
|
with_crypto
|
||||||
with_ssl
|
with_ssl
|
||||||
with_bfd
|
with_bfd
|
||||||
|
@ -1391,6 +1399,7 @@ with_kqueue
|
||||||
with_ldap
|
with_ldap
|
||||||
with_libcurl
|
with_libcurl
|
||||||
with_libedit
|
with_libedit
|
||||||
|
with_libjwt
|
||||||
with_libxml2
|
with_libxml2
|
||||||
with_libxslt
|
with_libxslt
|
||||||
with_lua
|
with_lua
|
||||||
|
@ -1456,11 +1465,14 @@ OPENSSL_CFLAGS
|
||||||
OPENSSL_LIBS
|
OPENSSL_LIBS
|
||||||
JANSSON_CONFIGURE_OPTS
|
JANSSON_CONFIGURE_OPTS
|
||||||
PJPROJECT_CONFIGURE_OPTS
|
PJPROJECT_CONFIGURE_OPTS
|
||||||
|
LIBJWT_CONFIGURE_OPTS
|
||||||
LUA_VERSIONS
|
LUA_VERSIONS
|
||||||
LIBEDIT_CFLAGS
|
LIBEDIT_CFLAGS
|
||||||
LIBEDIT_LIBS
|
LIBEDIT_LIBS
|
||||||
JANSSON_CFLAGS
|
JANSSON_CFLAGS
|
||||||
JANSSON_LIBS
|
JANSSON_LIBS
|
||||||
|
LIBJWT_CFLAGS
|
||||||
|
LIBJWT_LIBS
|
||||||
LIBXML2_CFLAGS
|
LIBXML2_CFLAGS
|
||||||
LIBXML2_LIBS
|
LIBXML2_LIBS
|
||||||
ILBC_CFLAGS
|
ILBC_CFLAGS
|
||||||
|
@ -1517,7 +1529,6 @@ datadir='${datarootdir}'
|
||||||
sysconfdir='${prefix}/etc'
|
sysconfdir='${prefix}/etc'
|
||||||
sharedstatedir='${prefix}/com'
|
sharedstatedir='${prefix}/com'
|
||||||
localstatedir='${prefix}/var'
|
localstatedir='${prefix}/var'
|
||||||
runstatedir='${localstatedir}/run'
|
|
||||||
includedir='${prefix}/include'
|
includedir='${prefix}/include'
|
||||||
oldincludedir='/usr/include'
|
oldincludedir='/usr/include'
|
||||||
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||||||
|
@ -1770,15 +1781,6 @@ do
|
||||||
| -silent | --silent | --silen | --sile | --sil)
|
| -silent | --silent | --silen | --sile | --sil)
|
||||||
silent=yes ;;
|
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)
|
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||||
ac_prev=sbindir ;;
|
ac_prev=sbindir ;;
|
||||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||||
|
@ -1916,7 +1918,7 @@ fi
|
||||||
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||||
datadir sysconfdir sharedstatedir localstatedir includedir \
|
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||||
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||||
libdir localedir mandir runstatedir
|
libdir localedir mandir
|
||||||
do
|
do
|
||||||
eval ac_val=\$$ac_var
|
eval ac_val=\$$ac_var
|
||||||
# Remove trailing slashes.
|
# Remove trailing slashes.
|
||||||
|
@ -2069,7 +2071,6 @@ Fine tuning of the installation directories:
|
||||||
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||||
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
|
||||||
--libdir=DIR object code libraries [EPREFIX/lib]
|
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||||
--includedir=DIR C header files [PREFIX/include]
|
--includedir=DIR C header files [PREFIX/include]
|
||||||
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||||
|
@ -2130,6 +2131,7 @@ Optional Packages:
|
||||||
--with-jansson-bundled Use bundled jansson library
|
--with-jansson-bundled Use bundled jansson library
|
||||||
--with-pjproject-bundled
|
--with-pjproject-bundled
|
||||||
Use bundled pjproject libraries (default)
|
Use bundled pjproject libraries (default)
|
||||||
|
--with-libjwt-bundled Use bundled libjwt library
|
||||||
--with-crypto=PATH use OpenSSL Cryptography files in PATH
|
--with-crypto=PATH use OpenSSL Cryptography files in PATH
|
||||||
--with-ssl=PATH use OpenSSL Secure Sockets Layer files in PATH
|
--with-ssl=PATH use OpenSSL Secure Sockets Layer files in PATH
|
||||||
--with-bfd=PATH use Debug symbol decoding files in PATH
|
--with-bfd=PATH use Debug symbol decoding files in PATH
|
||||||
|
@ -2162,6 +2164,7 @@ Optional Packages:
|
||||||
--with-libcurl=PREFIX look for the curl library in PREFIX/lib and headers
|
--with-libcurl=PREFIX look for the curl library in PREFIX/lib and headers
|
||||||
in PREFIX/include
|
in PREFIX/include
|
||||||
--with-libedit=PATH use NetBSD Editline library files in PATH
|
--with-libedit=PATH use NetBSD Editline library files in PATH
|
||||||
|
--with-libjwt=PATH use LIBJWT files in PATH
|
||||||
--with-libxml2=PATH use LibXML2 files in PATH
|
--with-libxml2=PATH use LibXML2 files in PATH
|
||||||
--with-libxslt=PATH use LibXSLT files in PATH
|
--with-libxslt=PATH use LibXSLT files in PATH
|
||||||
--with-lua=PATH use Lua files in PATH
|
--with-lua=PATH use Lua files in PATH
|
||||||
|
@ -2227,6 +2230,8 @@ Some influential environment variables:
|
||||||
Additional configure options to pass to bundled jansson
|
Additional configure options to pass to bundled jansson
|
||||||
PJPROJECT_CONFIGURE_OPTS
|
PJPROJECT_CONFIGURE_OPTS
|
||||||
Additional configure options to pass to bundled pjproject
|
Additional configure options to pass to bundled pjproject
|
||||||
|
LIBJWT_CONFIGURE_OPTS
|
||||||
|
Additional configure options to pass to bundled libjwt
|
||||||
LUA_VERSIONS
|
LUA_VERSIONS
|
||||||
A space separated list of target lua versions to test.
|
A space separated list of target lua versions to test.
|
||||||
LIBEDIT_CFLAGS
|
LIBEDIT_CFLAGS
|
||||||
|
@ -2237,6 +2242,9 @@ Some influential environment variables:
|
||||||
C compiler flags for JANSSON, overriding pkg-config
|
C compiler flags for JANSSON, overriding pkg-config
|
||||||
JANSSON_LIBS
|
JANSSON_LIBS
|
||||||
linker flags for JANSSON, overriding pkg-config
|
linker flags for JANSSON, overriding pkg-config
|
||||||
|
LIBJWT_CFLAGS
|
||||||
|
C compiler flags for LIBJWT, overriding pkg-config
|
||||||
|
LIBJWT_LIBS linker flags for LIBJWT, overriding pkg-config
|
||||||
LIBXML2_CFLAGS
|
LIBXML2_CFLAGS
|
||||||
C compiler flags for LIBXML2, overriding pkg-config
|
C compiler flags for LIBXML2, overriding pkg-config
|
||||||
LIBXML2_LIBS
|
LIBXML2_LIBS
|
||||||
|
@ -9316,6 +9324,17 @@ if test "${with_pjproject}" = "no" || test "${with_pjproject}" = "n" ; then
|
||||||
PJPROJECT_BUNDLED=no
|
PJPROJECT_BUNDLED=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
LIBJWT_BUNDLED=no
|
||||||
|
|
||||||
|
# Check whether --with-libjwt-bundled was given.
|
||||||
|
if test "${with_libjwt_bundled+set}" = set; then :
|
||||||
|
withval=$with_libjwt_bundled; case "${withval}" in
|
||||||
|
y|ye|yes) LIBJWT_BUNDLED=yes ;;
|
||||||
|
*) LIBJWT_BUNDLED=no ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# OpenSSL stuff has to be done here because we want to pass
|
# OpenSSL stuff has to be done here because we want to pass
|
||||||
# any resulting CFLAGS and LDFLAGS to the bundled pjproject
|
# any resulting CFLAGS and LDFLAGS to the bundled pjproject
|
||||||
|
@ -10062,9 +10081,9 @@ $as_echo "$as_me: Unable to configure ${JANSSON_DIR}" >&6;}
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bundled jansson" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bundled jansson" >&5
|
||||||
$as_echo_n "checking for bundled jansson... " >&6; }
|
$as_echo_n "checking for bundled jansson... " >&6; }
|
||||||
|
|
||||||
JANSSON_INCLUDE=-I${JANSSON_DIR}/dest/include
|
JANSSON_INCLUDE=-I${JANSSON_DIR}/dist/usr/include
|
||||||
JANSSON_CFLAGS="$JANSSON_INCLUDE"
|
JANSSON_CFLAGS="$JANSSON_INCLUDE"
|
||||||
JANSSON_LIB="-L${JANSSON_DIR}/dest/lib -ljansson"
|
JANSSON_LIB="-L${JANSSON_DIR}/dist/usr/lib -ljansson"
|
||||||
PBX_JANSSON=1
|
PBX_JANSSON=1
|
||||||
|
|
||||||
# We haven't run install yet
|
# We haven't run install yet
|
||||||
|
@ -10314,6 +10333,99 @@ $as_echo "yes" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test "$LIBJWT_BUNDLED" = "yes" ; then
|
||||||
|
|
||||||
|
if test "${ac_mandatory_list#*LIBJWT*}" != "$ac_mandatory_list" ; then
|
||||||
|
as_fn_error $? "--with-libjwt and --with-libjwt-bundled can't both be specified" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
|
||||||
|
ac_mandatory_list="$ac_mandatory_list LIBJWT"
|
||||||
|
LIBJWT_DIR="${ac_pwd}/third-party/libjwt"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for embedded libjwt (may have to download)" >&5
|
||||||
|
$as_echo_n "checking for embedded libjwt (may have to download)... " >&6; }
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring" >&5
|
||||||
|
$as_echo "configuring" >&6; }
|
||||||
|
|
||||||
|
if test "x${DOWNLOAD_TO_STDOUT}" = "x" ; then
|
||||||
|
as_fn_error $? "A download utility (wget, curl, or fetch) is required to download bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${GZIP}" = ":" ; then
|
||||||
|
as_fn_error $? "gzip is required to extract the libjwt tar file" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${TAR}" = ":" ; then
|
||||||
|
as_fn_error $? "tar is required to extract the libjwt tar file" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${PATCH}" = ":" ; then
|
||||||
|
as_fn_error $? "patch is required to configure bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${SED}" = ":" ; then
|
||||||
|
as_fn_error $? "sed is required to configure bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${NM}" = ":" ; then
|
||||||
|
as_fn_error $? "nm is required to build bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${MD5}" = ":" ; then
|
||||||
|
as_fn_error $? "md5sum is required to build bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${CAT}" = ":" ; then
|
||||||
|
as_fn_error $? "cat is required to build bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${CUT}" = ":" ; then
|
||||||
|
as_fn_error $? "cut is required to build bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test "${GREP}" = ":" ; then
|
||||||
|
as_fn_error $? "grep is required to build bundled libjwt" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
this_host=$(./config.sub $(./config.guess))
|
||||||
|
if test "$build" != "$this_host" ; then
|
||||||
|
LIBJWT_CONFIGURE_OPTS+=" --build=$build_alias"
|
||||||
|
fi
|
||||||
|
if test "$host" != "$this_host" ; then
|
||||||
|
LIBJWT_CONFIGURE_OPTS+=" --host=$host_alias"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export TAR PATCH SED NM EXTERNALS_CACHE_DIR AST_DOWNLOAD_CACHE DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT CUT GREP
|
||||||
|
export NOISY_BUILD
|
||||||
|
export JANSSON_CFLAGS
|
||||||
|
export JANSSON_LIBS="${JANSSON_LIB}"
|
||||||
|
${GNU_MAKE} --quiet --no-print-directory -C ${LIBJWT_DIR} \
|
||||||
|
LIBJWT_CONFIGURE_OPTS="$LIBJWT_CONFIGURE_OPTS" \
|
||||||
|
EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" \
|
||||||
|
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 ${LIBJWT_DIR}" >&5
|
||||||
|
$as_echo "$as_me: Unable to configure ${LIBJWT_DIR}" >&6;}
|
||||||
|
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 libjwt" >&5
|
||||||
|
$as_echo_n "checking for bundled libjwt... " >&6; }
|
||||||
|
|
||||||
|
LIBJWT_INCLUDE=-I${LIBJWT_DIR}/dist/usr/include
|
||||||
|
LIBJWT_CFLAGS="$LIBJWT_INCLUDE"
|
||||||
|
LIBJWT_LIB="-L${LIBJWT_DIR}/dist/usr/lib -ljwt"
|
||||||
|
PBX_LIBJWT=1
|
||||||
|
|
||||||
|
# We haven't run install yet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_LIBJWT_BUNDLED 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# AST_EXT_LIB_SETUP is used to tell configure to handle variables for
|
# AST_EXT_LIB_SETUP is used to tell configure to handle variables for
|
||||||
# various packages.
|
# various packages.
|
||||||
|
@ -11572,6 +11684,38 @@ PBX_LIBEDIT_IS_UNICODE=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LIBJWT_DESCRIP="LIBJWT"
|
||||||
|
LIBJWT_OPTION="libjwt"
|
||||||
|
PBX_LIBJWT=0
|
||||||
|
|
||||||
|
# Check whether --with-libjwt was given.
|
||||||
|
if test "${with_libjwt+set}" = set; then :
|
||||||
|
withval=$with_libjwt;
|
||||||
|
case ${withval} in
|
||||||
|
n|no)
|
||||||
|
USE_LIBJWT=no
|
||||||
|
# -1 is a magic value used by menuselect to know that the package
|
||||||
|
# was disabled, other than 'not found'
|
||||||
|
PBX_LIBJWT=-1
|
||||||
|
;;
|
||||||
|
y|ye|yes)
|
||||||
|
ac_mandatory_list="${ac_mandatory_list} LIBJWT"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
LIBJWT_DIR="${withval}"
|
||||||
|
ac_mandatory_list="${ac_mandatory_list} LIBJWT"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LIBXML2_DESCRIP="LibXML2"
|
LIBXML2_DESCRIP="LibXML2"
|
||||||
LIBXML2_OPTION="libxml2"
|
LIBXML2_OPTION="libxml2"
|
||||||
PBX_LIBXML2=0
|
PBX_LIBXML2=0
|
||||||
|
@ -14560,6 +14704,101 @@ else
|
||||||
PBX_JANSSON=1
|
PBX_JANSSON=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source ./third-party/versions.mak
|
||||||
|
# Find required JWT support if bundled is not enabled.
|
||||||
|
if test "$LIBJWT_BUNDLED" = "no" ; then
|
||||||
|
|
||||||
|
if test "x${PBX_LIBJWT}" != "x1" -a "${USE_LIBJWT}" != "no"; then
|
||||||
|
|
||||||
|
pkg_failed=no
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBJWT" >&5
|
||||||
|
$as_echo_n "checking for LIBJWT... " >&6; }
|
||||||
|
|
||||||
|
if test -n "$LIBJWT_CFLAGS"; then
|
||||||
|
pkg_cv_LIBJWT_CFLAGS="$LIBJWT_CFLAGS"
|
||||||
|
elif test -n "$PKG_CONFIG"; then
|
||||||
|
if test -n "$PKG_CONFIG" && \
|
||||||
|
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjwt >= \$LIBJWT_VERSION\""; } >&5
|
||||||
|
($PKG_CONFIG --exists --print-errors "libjwt >= $LIBJWT_VERSION") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
test $ac_status = 0; }; then
|
||||||
|
pkg_cv_LIBJWT_CFLAGS=`$PKG_CONFIG --cflags "libjwt >= $LIBJWT_VERSION" 2>/dev/null`
|
||||||
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
|
else
|
||||||
|
pkg_failed=yes
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
pkg_failed=untried
|
||||||
|
fi
|
||||||
|
if test -n "$LIBJWT_LIBS"; then
|
||||||
|
pkg_cv_LIBJWT_LIBS="$LIBJWT_LIBS"
|
||||||
|
elif test -n "$PKG_CONFIG"; then
|
||||||
|
if test -n "$PKG_CONFIG" && \
|
||||||
|
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjwt >= \$LIBJWT_VERSION\""; } >&5
|
||||||
|
($PKG_CONFIG --exists --print-errors "libjwt >= $LIBJWT_VERSION") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
test $ac_status = 0; }; then
|
||||||
|
pkg_cv_LIBJWT_LIBS=`$PKG_CONFIG --libs "libjwt >= $LIBJWT_VERSION" 2>/dev/null`
|
||||||
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
|
else
|
||||||
|
pkg_failed=yes
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
pkg_failed=untried
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test $pkg_failed = yes; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
|
||||||
|
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||||
|
_pkg_short_errors_supported=yes
|
||||||
|
else
|
||||||
|
_pkg_short_errors_supported=no
|
||||||
|
fi
|
||||||
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
|
LIBJWT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libjwt >= $LIBJWT_VERSION" 2>&1`
|
||||||
|
else
|
||||||
|
LIBJWT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libjwt >= $LIBJWT_VERSION" 2>&1`
|
||||||
|
fi
|
||||||
|
# Put the nasty error message in config.log where it belongs
|
||||||
|
echo "$LIBJWT_PKG_ERRORS" >&5
|
||||||
|
|
||||||
|
|
||||||
|
PBX_LIBJWT=0
|
||||||
|
|
||||||
|
|
||||||
|
elif test $pkg_failed = untried; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
|
||||||
|
PBX_LIBJWT=0
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
LIBJWT_CFLAGS=$pkg_cv_LIBJWT_CFLAGS
|
||||||
|
LIBJWT_LIBS=$pkg_cv_LIBJWT_LIBS
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
|
||||||
|
PBX_LIBJWT=1
|
||||||
|
LIBJWT_INCLUDE=$(echo ${LIBJWT_CFLAGS} | $SED -e "s|-std=c99||g")
|
||||||
|
LIBJWT_LIB="$LIBJWT_LIBS"
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_LIBJWT 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
PBX_LIBJWT=1
|
||||||
|
fi
|
||||||
|
|
||||||
# See if clock_gettime is in librt
|
# See if clock_gettime is in librt
|
||||||
|
|
||||||
if test "x${PBX_RT}" != "x1" -a "${USE_RT}" != "no"; then
|
if test "x${PBX_RT}" != "x1" -a "${USE_RT}" != "no"; then
|
||||||
|
@ -15280,7 +15519,7 @@ else
|
||||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
since some C++ compilers masquerading as C compilers
|
since some C++ compilers masquerading as C compilers
|
||||||
incorrectly reject 9223372036854775807. */
|
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
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
|
@ -15326,7 +15565,7 @@ else
|
||||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
since some C++ compilers masquerading as C compilers
|
since some C++ compilers masquerading as C compilers
|
||||||
incorrectly reject 9223372036854775807. */
|
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
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
|
@ -15350,7 +15589,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
since some C++ compilers masquerading as C compilers
|
since some C++ compilers masquerading as C compilers
|
||||||
incorrectly reject 9223372036854775807. */
|
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
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
|
@ -15395,7 +15634,7 @@ else
|
||||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
since some C++ compilers masquerading as C compilers
|
since some C++ compilers masquerading as C compilers
|
||||||
incorrectly reject 9223372036854775807. */
|
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
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
|
@ -15419,7 +15658,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
since some C++ compilers masquerading as C compilers
|
since some C++ compilers masquerading as C compilers
|
||||||
incorrectly reject 9223372036854775807. */
|
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
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
|
@ -16684,8 +16923,6 @@ main ()
|
||||||
if (*(data + i) != *(data3 + i))
|
if (*(data + i) != *(data3 + i))
|
||||||
return 14;
|
return 14;
|
||||||
close (fd);
|
close (fd);
|
||||||
free (data);
|
|
||||||
free (data3);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
18
configure.ac
18
configure.ac
|
@ -463,6 +463,15 @@ if test "${with_pjproject}" = "no" || test "${with_pjproject}" = "n" ; then
|
||||||
PJPROJECT_BUNDLED=no
|
PJPROJECT_BUNDLED=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
LIBJWT_BUNDLED=no
|
||||||
|
AC_ARG_WITH([libjwt-bundled],
|
||||||
|
[AS_HELP_STRING([--with-libjwt-bundled],
|
||||||
|
[Use bundled libjwt library])],
|
||||||
|
[case "${withval}" in
|
||||||
|
y|ye|yes) LIBJWT_BUNDLED=yes ;;
|
||||||
|
*) LIBJWT_BUNDLED=no ;;
|
||||||
|
esac])
|
||||||
|
|
||||||
#
|
#
|
||||||
# OpenSSL stuff has to be done here because we want to pass
|
# OpenSSL stuff has to be done here because we want to pass
|
||||||
# any resulting CFLAGS and LDFLAGS to the bundled pjproject
|
# any resulting CFLAGS and LDFLAGS to the bundled pjproject
|
||||||
|
@ -553,6 +562,7 @@ AST_EXT_LIB_SETUP([LDAP], [OpenLDAP], [ldap])
|
||||||
AST_LIBCURL_CHECK_CONFIG([], [7.10.1])
|
AST_LIBCURL_CHECK_CONFIG([], [7.10.1])
|
||||||
AST_EXT_LIB_SETUP([LIBEDIT], [NetBSD Editline library], [libedit])
|
AST_EXT_LIB_SETUP([LIBEDIT], [NetBSD Editline library], [libedit])
|
||||||
AST_EXT_LIB_SETUP_OPTIONAL([LIBEDIT_IS_UNICODE], [Libedit compiled for unicode], [LIBEDIT], [libedit])
|
AST_EXT_LIB_SETUP_OPTIONAL([LIBEDIT_IS_UNICODE], [Libedit compiled for unicode], [LIBEDIT], [libedit])
|
||||||
|
AST_EXT_LIB_SETUP([LIBJWT], [LIBJWT], [libjwt])
|
||||||
AST_EXT_LIB_SETUP([LIBXML2], [LibXML2], [libxml2])
|
AST_EXT_LIB_SETUP([LIBXML2], [LibXML2], [libxml2])
|
||||||
AST_EXT_LIB_SETUP([LIBXSLT], [LibXSLT], [libxslt])
|
AST_EXT_LIB_SETUP([LIBXSLT], [LibXSLT], [libxslt])
|
||||||
AST_EXT_LIB_SETUP_OPTIONAL([LIBXSLT_CLEANUP], [LibXSLT Library Cleanup Function], [LIBXSLT], [libxslt])
|
AST_EXT_LIB_SETUP_OPTIONAL([LIBXSLT_CLEANUP], [LibXSLT Library Cleanup Function], [LIBXSLT], [libxslt])
|
||||||
|
@ -736,6 +746,14 @@ else
|
||||||
PBX_JANSSON=1
|
PBX_JANSSON=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source ./third-party/versions.mak
|
||||||
|
# Find required JWT support if bundled is not enabled.
|
||||||
|
if test "$LIBJWT_BUNDLED" = "no" ; then
|
||||||
|
AST_PKG_CONFIG_CHECK([LIBJWT], [libjwt >= $LIBJWT_VERSION])
|
||||||
|
else
|
||||||
|
PBX_LIBJWT=1
|
||||||
|
fi
|
||||||
|
|
||||||
# See if clock_gettime is in librt
|
# See if clock_gettime is in librt
|
||||||
AST_EXT_LIB_CHECK([RT], [rt], [clock_gettime], [])
|
AST_EXT_LIB_CHECK([RT], [rt], [clock_gettime], [])
|
||||||
|
|
||||||
|
|
|
@ -432,6 +432,12 @@
|
||||||
/* Define to 1 if you have the <libintl.h> header file. */
|
/* Define to 1 if you have the <libintl.h> header file. */
|
||||||
#undef HAVE_LIBINTL_H
|
#undef HAVE_LIBINTL_H
|
||||||
|
|
||||||
|
/* Define if your system has the LIBJWT libraries. */
|
||||||
|
#undef HAVE_LIBJWT
|
||||||
|
|
||||||
|
/* Define if your system has LIBJWT_BUNDLED */
|
||||||
|
#undef HAVE_LIBJWT_BUNDLED
|
||||||
|
|
||||||
/* Define to 1 if you have the `m' library (-lm). */
|
/* Define to 1 if you have the `m' library (-lm). */
|
||||||
#undef HAVE_LIBM
|
#undef HAVE_LIBM
|
||||||
|
|
||||||
|
|
|
@ -186,6 +186,11 @@ JANSSON_BUNDLED=@JANSSON_BUNDLED@
|
||||||
JANSSON_INCLUDE=@JANSSON_INCLUDE@
|
JANSSON_INCLUDE=@JANSSON_INCLUDE@
|
||||||
JANSSON_LIB=@JANSSON_LIB@
|
JANSSON_LIB=@JANSSON_LIB@
|
||||||
|
|
||||||
|
LIBJWT_BUNDLED=@LIBJWT_BUNDLED@
|
||||||
|
LIBJWT_INCLUDE=@LIBJWT_INCLUDE@
|
||||||
|
LIBJWT_LIB=@LIBJWT_LIB@
|
||||||
|
LIBJWT_CONFIGURE_OPTS=@LIBJWT_CONFIGURE_OPTS@
|
||||||
|
|
||||||
URIPARSER_INCLUDE=@URIPARSER_INCLUDE@
|
URIPARSER_INCLUDE=@URIPARSER_INCLUDE@
|
||||||
URIPARSER_LIB=@URIPARSER_LIB@
|
URIPARSER_LIB=@URIPARSER_LIB@
|
||||||
|
|
||||||
|
|
|
@ -698,7 +698,6 @@ infodir
|
||||||
docdir
|
docdir
|
||||||
oldincludedir
|
oldincludedir
|
||||||
includedir
|
includedir
|
||||||
runstatedir
|
|
||||||
localstatedir
|
localstatedir
|
||||||
sharedstatedir
|
sharedstatedir
|
||||||
sysconfdir
|
sysconfdir
|
||||||
|
@ -782,7 +781,6 @@ datadir='${datarootdir}'
|
||||||
sysconfdir='${prefix}/etc'
|
sysconfdir='${prefix}/etc'
|
||||||
sharedstatedir='${prefix}/com'
|
sharedstatedir='${prefix}/com'
|
||||||
localstatedir='${prefix}/var'
|
localstatedir='${prefix}/var'
|
||||||
runstatedir='${localstatedir}/run'
|
|
||||||
includedir='${prefix}/include'
|
includedir='${prefix}/include'
|
||||||
oldincludedir='/usr/include'
|
oldincludedir='/usr/include'
|
||||||
docdir='${datarootdir}/doc/${PACKAGE}'
|
docdir='${datarootdir}/doc/${PACKAGE}'
|
||||||
|
@ -1035,15 +1033,6 @@ do
|
||||||
| -silent | --silent | --silen | --sile | --sil)
|
| -silent | --silent | --silen | --sile | --sil)
|
||||||
silent=yes ;;
|
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)
|
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||||
ac_prev=sbindir ;;
|
ac_prev=sbindir ;;
|
||||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||||
|
@ -1181,7 +1170,7 @@ fi
|
||||||
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||||
datadir sysconfdir sharedstatedir localstatedir includedir \
|
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||||
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||||
libdir localedir mandir runstatedir
|
libdir localedir mandir
|
||||||
do
|
do
|
||||||
eval ac_val=\$$ac_var
|
eval ac_val=\$$ac_var
|
||||||
# Remove trailing slashes.
|
# Remove trailing slashes.
|
||||||
|
@ -1334,7 +1323,6 @@ Fine tuning of the installation directories:
|
||||||
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||||
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
|
||||||
--libdir=DIR object code libraries [EPREFIX/lib]
|
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||||
--includedir=DIR C header files [PREFIX/include]
|
--includedir=DIR C header files [PREFIX/include]
|
||||||
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
-include ../makeopts
|
-include ../makeopts
|
||||||
include Makefile.rules
|
include Makefile.rules
|
||||||
|
|
||||||
|
TP_ALL_SUBDIRS := jansson pjproject libjwt
|
||||||
|
|
||||||
TP_SUBDIRS :=
|
TP_SUBDIRS :=
|
||||||
# Sub directories that contain special install/uninstall targets must be explicitly listed
|
# Sub directories that contain special install/uninstall targets must be explicitly listed
|
||||||
# to prevent accidentally running the package's default install target.
|
# to prevent accidentally running the package's default install target.
|
||||||
|
@ -17,18 +19,31 @@ TP_SUBDIRS += jansson
|
||||||
TP_INSTALL_SUBDIRS += jansson
|
TP_INSTALL_SUBDIRS += jansson
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: all dist-clean distclean install clean moduleinfo makeopts uninstall $(TP_SUBDIRS)
|
ifeq ($(LIBJWT_BUNDLED),yes)
|
||||||
|
TP_SUBDIRS += libjwt
|
||||||
ifneq ($(TP_SUBDIRS),)
|
TP_INSTALL_SUBDIRS += libjwt
|
||||||
|
libjwt: jansson
|
||||||
|
export JANSSON_CFLAGS=$(JANSSON_INCLUDE)
|
||||||
|
export JANSSON_LIBS=$(JANSSON_LIB)
|
||||||
|
endif
|
||||||
|
|
||||||
override MAKECMDGOALS?=all
|
override MAKECMDGOALS?=all
|
||||||
|
|
||||||
MAKECMDGOALS:=$(subst dist-clean,distclean,$(MAKECMDGOALS))
|
MAKECMDGOALS:=$(subst dist-clean,distclean,$(MAKECMDGOALS))
|
||||||
|
|
||||||
all distclean dist-clean install uninstall clean : $(TP_SUBDIRS)
|
.PHONY: all dist-clean distclean install clean moduleinfo makeopts uninstall $(TP_ALL_SUBDIRS)
|
||||||
install uninstall: $(TP_INSTALL_SUBDIRS)
|
|
||||||
|
|
||||||
$(TP_SUBDIRS):
|
ifeq ($(findstring clean,$(MAKECMDGOALS)),clean)
|
||||||
|
distclean dist-clean clean : $(TP_ALL_SUBDIRS)
|
||||||
|
TP_RUN_SUBDIRS := $(TP_ALL_SUBDIRS)
|
||||||
|
else
|
||||||
|
all install uninstall : $(TP_SUBDIRS)
|
||||||
|
install uninstall: $(TP_INSTALL_SUBDIRS)
|
||||||
|
TP_RUN_SUBDIRS := $(TP_SUBDIRS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(TP_RUN_SUBDIRS),)
|
||||||
|
|
||||||
|
$(TP_RUN_SUBDIRS):
|
||||||
+$(CMD_PREFIX) $(SUBMAKE) -C $@ $(MAKECMDGOALS)
|
+$(CMD_PREFIX) $(SUBMAKE) -C $@ $(MAKECMDGOALS)
|
||||||
|
|
||||||
endif
|
endif
|
|
@ -7,4 +7,5 @@ AC_DEFUN([THIRD_PARTY_CONFIGURE],
|
||||||
[
|
[
|
||||||
JANSSON_CONFIGURE()
|
JANSSON_CONFIGURE()
|
||||||
PJPROJECT_CONFIGURE()
|
PJPROJECT_CONFIGURE()
|
||||||
|
LIBJWT_CONFIGURE()
|
||||||
])
|
])
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
source/
|
source/
|
||||||
dest/
|
dist/
|
||||||
**.bz2
|
**.bz2
|
||||||
.rebuild_needed
|
.rebuild_needed
|
||||||
|
|
|
@ -39,7 +39,7 @@ ifeq ($(SPECIAL_TARGETS),)
|
||||||
$(warning ASTTOPDIR/menuselect hasn't been run yet. Can't find debug options.)
|
$(warning ASTTOPDIR/menuselect hasn't been run yet. Can't find debug options.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: dest/include/jansson.h
|
all: dist/usr/lib/libjansson.a
|
||||||
else
|
else
|
||||||
all:
|
all:
|
||||||
endif
|
endif
|
||||||
|
@ -57,10 +57,10 @@ endif
|
||||||
ECHO_PREFIX := $(ECHO_PREFIX) echo '[jansson] '
|
ECHO_PREFIX := $(ECHO_PREFIX) echo '[jansson] '
|
||||||
SHELL_ECHO_PREFIX := echo '[jansson] '
|
SHELL_ECHO_PREFIX := echo '[jansson] '
|
||||||
|
|
||||||
dest/include/jansson.h: source/config.status
|
dist/usr/lib/libjansson.a: source/config.status
|
||||||
$(ECHO_PREFIX) Building bundled jansson.
|
$(ECHO_PREFIX) Building bundled jansson.
|
||||||
$(CMD_PREFIX) (cd source; make $(REALLY_QUIET))
|
$(CMD_PREFIX) (cd source; make $(REALLY_QUIET))
|
||||||
$(CMD_PREFIX) (cd source; make install DESTDIR= $(REALLY_QUIET))
|
$(CMD_PREFIX) (cd source; make install DESTDIR=$(JANSSON_DIR)/dist $(REALLY_QUIET))
|
||||||
|
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ source/.unpacked: $(DOWNLOAD_DIR)/$(TARBALL_FILE)
|
||||||
source/config.status: source/.unpacked Makefile.rules .rebuild_needed
|
source/config.status: source/.unpacked Makefile.rules .rebuild_needed
|
||||||
$(ECHO_PREFIX) Configuring
|
$(ECHO_PREFIX) Configuring
|
||||||
$(CMD_PREFIX) (cd source ; ./configure $(QUIET_CONFIGURE) $(JANSSON_CONFIG_OPTS) --disable-shared \
|
$(CMD_PREFIX) (cd source ; ./configure $(QUIET_CONFIGURE) $(JANSSON_CONFIG_OPTS) --disable-shared \
|
||||||
--enable-static --prefix=$(JANSSON_DIR)/dest --libdir=$(JANSSON_DIR)/dest/lib CFLAGS="$(OPTIMIZE_CFLAGS)")
|
--enable-static --prefix=/usr --libdir=/usr/lib CFLAGS="$(OPTIMIZE_CFLAGS) -fPIC")
|
||||||
|
|
||||||
configure: source/config.status
|
configure: source/config.status
|
||||||
|
|
||||||
|
@ -96,8 +96,9 @@ uninstall:
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(ECHO_PREFIX) Cleaning
|
$(ECHO_PREFIX) Cleaning
|
||||||
|
+-$(CMD_PREFIX) rm -rf dist
|
||||||
+-$(CMD_PREFIX) test -d source && $(SUBMAKE) -C source clean $(REALLY_QUIET) || :
|
+-$(CMD_PREFIX) test -d source && $(SUBMAKE) -C source clean $(REALLY_QUIET) || :
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
$(ECHO_PREFIX) Distcleaning
|
$(ECHO_PREFIX) Distcleaning
|
||||||
-$(CMD_PREFIX) rm -rf source jansson-*.tar.bz2 .rebuild_needed
|
-$(CMD_PREFIX) rm -rf dist source jansson-*.tar.bz2 .rebuild_needed
|
||||||
|
|
|
@ -69,9 +69,9 @@ AC_DEFUN([_JANSSON_CONFIGURE],
|
||||||
|
|
||||||
AC_MSG_CHECKING(for bundled jansson)
|
AC_MSG_CHECKING(for bundled jansson)
|
||||||
|
|
||||||
JANSSON_INCLUDE=-I${JANSSON_DIR}/dest/include
|
JANSSON_INCLUDE=-I${JANSSON_DIR}/dist/usr/include
|
||||||
JANSSON_CFLAGS="$JANSSON_INCLUDE"
|
JANSSON_CFLAGS="$JANSSON_INCLUDE"
|
||||||
JANSSON_LIB="-L${JANSSON_DIR}/dest/lib -ljansson"
|
JANSSON_LIB="-L${JANSSON_DIR}/dist/usr/lib -ljansson"
|
||||||
PBX_JANSSON=1
|
PBX_JANSSON=1
|
||||||
|
|
||||||
# We haven't run install yet
|
# We haven't run install yet
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
source/
|
||||||
|
dist/
|
||||||
|
**.gz
|
||||||
|
.rebuild_needed
|
|
@ -0,0 +1,124 @@
|
||||||
|
.PHONY: all install clean distclean configure
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
||||||
|
|
||||||
|
include ../versions.mak
|
||||||
|
export LIBJWT_DIR := $(shell pwd -P)
|
||||||
|
JANSSON_DIR := $(shell realpath $(LIBJWT_DIR)/../jansson)
|
||||||
|
|
||||||
|
SPECIAL_TARGETS :=
|
||||||
|
|
||||||
|
ifneq ($(findstring configure,$(MAKECMDGOALS)),)
|
||||||
|
# Run from $(ASTTOPDIR)/configure
|
||||||
|
SPECIAL_TARGETS += configure
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(findstring clean,$(MAKECMDGOALS)),clean)
|
||||||
|
# clean or distclean
|
||||||
|
SPECIAL_TARGETS += clean
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(findstring uninstall,$(MAKECMDGOALS)),uninstall)
|
||||||
|
SPECIAL_TARGETS += uninstall
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
ifneq ($(wildcard ../../makeopts),)
|
||||||
|
include ../../makeopts
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(SPECIAL_TARGETS),)
|
||||||
|
# Run locally or from $(ASTTOPDIR)/Makefile. All include files should be present
|
||||||
|
ifeq ($(wildcard ../../makeopts),)
|
||||||
|
$(error ASTTOPDIR/configure hasn't been run)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(LIBJWT_BUNDLED),yes)
|
||||||
|
ifneq ($(wildcard ../../menuselect.makeopts),)
|
||||||
|
include ../../menuselect.makeopts
|
||||||
|
else
|
||||||
|
$(warning ASTTOPDIR/menuselect hasn't been run yet. Can't find debug options.)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: dist/usr/lib/libjwt.a
|
||||||
|
else
|
||||||
|
all:
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
include ../../Makefile.rules
|
||||||
|
include ../Makefile.rules
|
||||||
|
include Makefile.rules
|
||||||
|
|
||||||
|
OPTIMIZE_CFLAGS = -g3
|
||||||
|
ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),)
|
||||||
|
OPTIMIZE_CFLAGS += $(OPTIMIZE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ECHO_PREFIX := $(ECHO_PREFIX) echo '[libjwt] '
|
||||||
|
SHELL_ECHO_PREFIX := echo '[libjwt] '
|
||||||
|
|
||||||
|
dist/usr/lib/libjwt.a: source/config.status
|
||||||
|
$(ECHO_PREFIX) Building bundled libjwt.
|
||||||
|
$(CMD_PREFIX) (cd source; make $(REALLY_QUIET))
|
||||||
|
$(CMD_PREFIX) (cd source; make install DESTDIR=$(LIBJWT_DIR)/dist $(REALLY_QUIET))
|
||||||
|
ifeq ($(JANSSON_BUNDLED),yes)
|
||||||
|
# Modules that need to use json manipulation functions will do
|
||||||
|
# so through the ast_json wrappers which cause the main asterisk
|
||||||
|
# executable to link to either the system implementation of jansson
|
||||||
|
# or the bundled jansson. libjwt also needs to call jansson functions
|
||||||
|
# directly and if we're not using the bundled version of jansson,
|
||||||
|
# this works fine bcause the dynamic linker can get the symbols
|
||||||
|
# directly from the system-installed version of jansson when the
|
||||||
|
# module using libjwt loads. If we're using bundled jansson however,
|
||||||
|
# those symbols exist only in the main asterisk executable and a
|
||||||
|
# library can't resolve against them. The result is that a module
|
||||||
|
# making jwt_ calls will fail to load at runtime with unresolved
|
||||||
|
# json_ symbols. To address this, we create a combined library
|
||||||
|
# containing both bundled libjwt and bundled jansson so a module
|
||||||
|
# will have all symbols resolved correctly.
|
||||||
|
$(CMD_PREFIX) mv dist/usr/lib/libjwt.a dist/usr/lib/libjwt_orig.a
|
||||||
|
$(CMD_PREFIX) cd dist/usr/lib ; $(AR) -rcsT libjwt.a libjwt_orig.a \
|
||||||
|
$(JANSSON_DIR)/dist/usr/lib/libjansson.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
.DELETE_ON_ERROR:
|
||||||
|
|
||||||
|
$(DOWNLOAD_DIR)/$(TARBALL_FILE): ../versions.mak
|
||||||
|
$(CMD_PREFIX) ($(TARBALL_EXISTS) && $(TARBALL_VERIFY) && touch $@) || (rm -rf $@ ;\
|
||||||
|
$(TARBALL_DOWNLOAD)) || (rm -rf $@ ;\
|
||||||
|
$(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD))
|
||||||
|
|
||||||
|
source/.unpacked: $(DOWNLOAD_DIR)/$(TARBALL_FILE)
|
||||||
|
$(CMD_PREFIX) $(TARBALL_VERIFY) || (rm -rf $@ ;\
|
||||||
|
$(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD))
|
||||||
|
$(ECHO_PREFIX) Unpacking $<
|
||||||
|
-@rm -rf source libjwt-*/ >/dev/null 2>&1
|
||||||
|
$(CMD_PREFIX) $(TAR) -xf $<
|
||||||
|
@mv libjwt-$(LIBJWT_VERSION) source
|
||||||
|
$(ECHO_PREFIX) Applying patches "$(realpath patches)" "$(realpath .)/source"
|
||||||
|
$(CMD_PREFIX) ../apply_patches $(QUIET_CONFIGURE) "$(realpath patches)" "$(realpath .)/source"
|
||||||
|
-@touch source/.unpacked
|
||||||
|
|
||||||
|
.rebuild_needed: $(wildcard ../../.lastclean)
|
||||||
|
$(ECHO_PREFIX) Rebuilding
|
||||||
|
$(CMD_PREFIX) $(MAKE) clean $(REALLY_QUIET)
|
||||||
|
|
||||||
|
source/config.status: source/.unpacked Makefile.rules .rebuild_needed
|
||||||
|
$(ECHO_PREFIX) Configuring
|
||||||
|
$(CMD_PREFIX) (cd source ; ./configure $(QUIET_CONFIGURE) $(LIBJWT_CONFIG_OPTS) --disable-shared \
|
||||||
|
--enable-static --prefix=/usr --libdir=/usr/lib CFLAGS="$(OPTIMIZE_CFLAGS) -fPIC")
|
||||||
|
|
||||||
|
configure: source/config.status
|
||||||
|
|
||||||
|
install:
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(ECHO_PREFIX) Cleaning
|
||||||
|
+-$(CMD_PREFIX) rm -rf dist
|
||||||
|
+-$(CMD_PREFIX) test -d source && $(SUBMAKE) -C source clean $(REALLY_QUIET) || :
|
||||||
|
|
||||||
|
distclean:
|
||||||
|
$(ECHO_PREFIX) Distcleaning
|
||||||
|
-$(CMD_PREFIX) rm -rf dist source libjwt-*.tar.gz .rebuild_needed
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
PACKAGE_URL ?= https://raw.githubusercontent.com/asterisk/third-party/master/libjwt/$(LIBJWT_VERSION)
|
||||||
|
TARBALL_FILE = libjwt-$(LIBJWT_VERSION).tar.gz
|
||||||
|
|
||||||
|
# LIBJWT_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).
|
||||||
|
|
||||||
|
LIBJWT_CONFIG_OPTS = --disable-doxygen-doc --disable-doxygen-dot --without-examples $(LIBJWT_CONFIGURE_OPTS)
|
|
@ -0,0 +1,95 @@
|
||||||
|
#
|
||||||
|
# If this file is changed, be sure to run ASTTOPDIR/bootstrap.sh
|
||||||
|
# before committing.
|
||||||
|
#
|
||||||
|
|
||||||
|
AC_DEFUN([_LIBJWT_CONFIGURE],
|
||||||
|
[
|
||||||
|
if test "${ac_mandatory_list#*LIBJWT*}" != "$ac_mandatory_list" ; then
|
||||||
|
AC_MSG_ERROR(--with-libjwt and --with-libjwt-bundled can't both be specified)
|
||||||
|
fi
|
||||||
|
|
||||||
|
ac_mandatory_list="$ac_mandatory_list LIBJWT"
|
||||||
|
LIBJWT_DIR="${ac_pwd}/third-party/libjwt"
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for embedded libjwt (may have to download))
|
||||||
|
AC_MSG_RESULT(configuring)
|
||||||
|
|
||||||
|
if test "x${DOWNLOAD_TO_STDOUT}" = "x" ; then
|
||||||
|
AC_MSG_ERROR(A download utility (wget, curl, or fetch) is required to download bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${GZIP}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(gzip is required to extract the libjwt tar file)
|
||||||
|
fi
|
||||||
|
if test "${TAR}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(tar is required to extract the libjwt tar file)
|
||||||
|
fi
|
||||||
|
if test "${PATCH}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(patch is required to configure bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${SED}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(sed is required to configure bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${NM}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(nm is required to build bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${MD5}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(md5sum is required to build bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${CAT}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(cat is required to build bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${CUT}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(cut is required to build bundled libjwt)
|
||||||
|
fi
|
||||||
|
if test "${GREP}" = ":" ; then
|
||||||
|
AC_MSG_ERROR(grep is required to build bundled libjwt)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_VAR([LIBJWT_CONFIGURE_OPTS],[Additional configure options to pass to bundled libjwt])
|
||||||
|
this_host=$(./config.sub $(./config.guess))
|
||||||
|
if test "$build" != "$this_host" ; then
|
||||||
|
LIBJWT_CONFIGURE_OPTS+=" --build=$build_alias"
|
||||||
|
fi
|
||||||
|
if test "$host" != "$this_host" ; then
|
||||||
|
LIBJWT_CONFIGURE_OPTS+=" --host=$host_alias"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export TAR PATCH SED NM EXTERNALS_CACHE_DIR AST_DOWNLOAD_CACHE DOWNLOAD_TO_STDOUT DOWNLOAD_TIMEOUT DOWNLOAD MD5 CAT CUT GREP
|
||||||
|
export NOISY_BUILD
|
||||||
|
export JANSSON_CFLAGS
|
||||||
|
export JANSSON_LIBS="${JANSSON_LIB}"
|
||||||
|
${GNU_MAKE} --quiet --no-print-directory -C ${LIBJWT_DIR} \
|
||||||
|
LIBJWT_CONFIGURE_OPTS="$LIBJWT_CONFIGURE_OPTS" \
|
||||||
|
EXTERNALS_CACHE_DIR="${EXTERNALS_CACHE_DIR:-${AST_DOWNLOAD_CACHE}}" \
|
||||||
|
configure
|
||||||
|
if test $? -ne 0 ; then
|
||||||
|
AC_MSG_RESULT(failed)
|
||||||
|
AC_MSG_NOTICE(Unable to configure ${LIBJWT_DIR})
|
||||||
|
AC_MSG_ERROR(Re-run the ./configure command with 'NOISY_BUILD=yes' appended to see error details.)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for bundled libjwt)
|
||||||
|
|
||||||
|
LIBJWT_INCLUDE=-I${LIBJWT_DIR}/dist/usr/include
|
||||||
|
LIBJWT_CFLAGS="$LIBJWT_INCLUDE"
|
||||||
|
LIBJWT_LIB="-L${LIBJWT_DIR}/dist/usr/lib -ljwt"
|
||||||
|
PBX_LIBJWT=1
|
||||||
|
|
||||||
|
# We haven't run install yet
|
||||||
|
|
||||||
|
AC_SUBST([LIBJWT_BUNDLED])
|
||||||
|
AC_SUBST([PBX_LIBJWT])
|
||||||
|
AC_SUBST([LIBJWT_LIB])
|
||||||
|
AC_SUBST([LIBJWT_INCLUDE])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_LIBJWT_BUNDLED], 1, [Define if your system has LIBJWT_BUNDLED])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([LIBJWT_CONFIGURE],
|
||||||
|
[
|
||||||
|
if test "$LIBJWT_BUNDLED" = "yes" ; then
|
||||||
|
_LIBJWT_CONFIGURE()
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
f417ef3fe6ee14c0befd86e6836dc4c9 libjwt-1.15.3.tar.gz
|
|
@ -0,0 +1,4 @@
|
||||||
|
Patches should be added here once merged to the upstream libjwt project at
|
||||||
|
https://github.com/benmcollins/libjwt. Patch filenames should be generated by
|
||||||
|
running 'git format-patch ...' from the libjwt repository, then
|
||||||
|
copying the required patches to this folder.
|
|
@ -1,2 +1,6 @@
|
||||||
JANSSON_VERSION = 2.14
|
# This file is also 'sourced' by the
|
||||||
PJPROJECT_VERSION = 2.13.1
|
# configure script so it must follow 'shell'
|
||||||
|
# syntax as well as 'make' syntax.
|
||||||
|
JANSSON_VERSION=2.14
|
||||||
|
PJPROJECT_VERSION=2.13.1
|
||||||
|
LIBJWT_VERSION=1.15.3
|
||||||
|
|
Loading…
Reference in New Issue