diff options
author | David M. Lee <dlee@respoke.io> | 2015-07-24 17:04:35 -0500 |
---|---|---|
committer | David M. Lee <dlee@respoke.io> | 2015-08-07 19:35:13 -0500 |
commit | 40caf0ad9bef07bdfb568a88192c157dd1840100 (patch) | |
tree | 01d1e4f6745b5eeaeb607e5bb85a2884a6ff9087 /configure | |
parent | 309dd2a4090ccdd1ea31d8d5415a645daddd3883 (diff) |
Replaces clock_gettime() with ast_tsnow()
clock_gettime() is, unfortunately, not portable. But I did like that
over our usual `ts.tv_nsec = tv.tv_usec * 1000` copy/paste code we
usually do when we want a timespec and all we have is ast_tvnow().
This patch adds ast_tsnow(), which mimics ast_tvnow(), but returns a
timespec. If clock_gettime() is available, it will use that. Otherwise
ast_tsnow() falls back to using ast_tvnow().
Change-Id: Ibb1ee67ccf4826b9b76d5a5eb62e90b29b6c456e
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 132 |
1 files changed, 127 insertions, 5 deletions
@@ -756,6 +756,10 @@ PBX_SUPPSERV SUPPSERV_DIR SUPPSERV_INCLUDE SUPPSERV_LIB +PBX_RT +RT_DIR +RT_INCLUDE +RT_LIB PBX_OPENSSL OPENSSL_DIR OPENSSL_INCLUDE @@ -11270,6 +11274,18 @@ fi +RT_DESCRIP="Realtime functions" + +RT_DIR=${rt_DIR} + +PBX_RT=0 + + + + + + + SUPPSERV_DESCRIP="mISDN Supplemental Services" SUPPSERV_OPTION="suppserv" PBX_SUPPSERV=0 @@ -12962,6 +12978,112 @@ if test "x$JANSSON_LIB" == "x"; then as_fn_error $? "*** JSON support not found (this typically means the libjansson development package is missing)" "$LINENO" 5 fi +# See if clock_gettime is in librt + +if test "x${PBX_RT}" != "x1" -a "${USE_RT}" != "no"; then + pbxlibdir="" + # if --with-RT=DIR has been specified, use it. + if test "x${RT_DIR}" != "x"; then + if test -d ${RT_DIR}/lib; then + pbxlibdir="-L${RT_DIR}/lib" + else + pbxlibdir="-L${RT_DIR}" + fi + fi + pbxfuncname="clock_gettime" + if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers + AST_RT_FOUND=yes + else + ast_ext_lib_check_save_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} " + as_ac_Lib=`$as_echo "ac_cv_lib_rt_${pbxfuncname}" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lrt" >&5 +$as_echo_n "checking for ${pbxfuncname} in -lrt... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt ${pbxlibdir} $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ${pbxfuncname} (); +int +main () +{ +return ${pbxfuncname} (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + AST_RT_FOUND=yes +else + AST_RT_FOUND=no +fi + + CFLAGS="${ast_ext_lib_check_save_CFLAGS}" + fi + + # now check for the header. + if test "${AST_RT_FOUND}" = "yes"; then + RT_LIB="${pbxlibdir} -lrt " + # if --with-RT=DIR has been specified, use it. + if test "x${RT_DIR}" != "x"; then + RT_INCLUDE="-I${RT_DIR}/include" + fi + RT_INCLUDE="${RT_INCLUDE} " + if test "x" = "x" ; then # no header, assume found + RT_HEADER_FOUND="1" + else # check for the header + ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}" + CPPFLAGS="${CPPFLAGS} ${RT_INCLUDE}" + ac_fn_c_check_header_mongrel "$LINENO" "" "ac_cv_header_" "$ac_includes_default" +if test "x$ac_cv_header_" = xyes; then : + RT_HEADER_FOUND=1 +else + RT_HEADER_FOUND=0 +fi + + + CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}" + fi + if test "x${RT_HEADER_FOUND}" = "x0" ; then + RT_LIB="" + RT_INCLUDE="" + else + if test "x${pbxfuncname}" = "x" ; then # only checking headers -> no library + RT_LIB="" + fi + PBX_RT=1 + cat >>confdefs.h <<_ACEOF +#define HAVE_RT 1 +_ACEOF + + fi + fi +fi + + + if test "x${PBX_LIBXML2}" != "x1" -a "${USE_LIBXML2}" != "no"; then PBX_LIBXML2=0 @@ -13515,7 +13637,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]; @@ -13561,7 +13683,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]; @@ -13585,7 +13707,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]; @@ -13630,7 +13752,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]; @@ -13654,7 +13776,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]; |