]> granicus.if.org Git - curl/commitdiff
Add library checking for clock_gettime() support
authorYang Tse <yangsita@gmail.com>
Sat, 10 May 2008 15:46:08 +0000 (15:46 +0000)
committerYang Tse <yangsita@gmail.com>
Sat, 10 May 2008 15:46:08 +0000 (15:46 +0000)
acinclude.m4
ares/acinclude.m4
ares/configure.ac
configure.ac

index 7af4741eaea9e39f010745f0193350570fdd1bec..66d74869b79b554151be7e3091238c0d8b488367 100644 (file)
@@ -1814,6 +1814,82 @@ AC_DEFUN([TYPE_IN_ADDR_T],
   ]) dnl AC_CHECK_TYPE
 ]) dnl AC_DEFUN
 
+dnl CURL_CHECK_LIBS_CLOCK_GETTIME
+dnl -------------------------------------------------
+dnl Check for libraries needed for clock_gettime,
+dnl and prepended to LIBS any needed libraries.
+
+AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME], [
+  AC_REQUIRE([AC_HEADER_TIME])dnl
+  AC_CHECK_HEADERS(sys/types.h sys/time.h time.h)
+  #
+  AC_MSG_CHECKING([for clock_gettime in libraries])
+  #
+  curl_cv_save_LIBS="$LIBS"
+  curl_cv_gclk_LIBS="unknown"
+  #
+  for x_xlibs in '' '-lrt' '-lposix4' ; do
+    if test -z "$x_xlibs"; then
+      LIBS="$curl_cv_save_LIBS"
+    else
+      LIBS="$x_xlibs $curl_cv_save_LIBS"
+    fi
+    AC_LINK_IFELSE([
+      AC_LANG_PROGRAM([
+#undef inline
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#ifdef TIME_WITH_SYS_TIME
+#include <time.h>
+#endif
+#else
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#endif
+      ],[
+        (void)clock_gettime(0, 0);
+      ])
+    ],[
+       curl_cv_gclk_LIBS="$x_xlibs"
+       break
+    ])
+  done
+  #
+  LIBS="$curl_cv_save_LIBS"
+  #
+  case X-"$curl_cv_gclk_LIBS" in
+    X-unknown)
+      AC_MSG_RESULT([cannot find clock_gettime])
+      ac_cv_func_clock_gettime="no"
+      ;;
+    X-)
+      AC_MSG_RESULT([no additional lib required])
+      ac_cv_func_clock_gettime="yes"
+      ;;
+    *)
+      if test -z "$curl_cv_save_LIBS"; then
+        LIBS="$curl_cv_gclk_LIBS"
+      else
+        LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS"
+      fi
+      AC_MSG_RESULT([$curl_cv_gclk_LIBS])
+      ac_cv_func_clock_gettime="yes"
+      ;;
+  esac
+  #
+  case "$ac_cv_func_clock_gettime" in
+    yes)
+      AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME, 1,
+        [Define to 1 if you have the clock_gettime function.])
+      ;;
+  esac
+  #
+]) dnl AC_DEFUN
+
 dnl ************************************************************
 dnl check for "localhost", if it doesn't exist, we can't do the
 dnl gethostbyname_r tests!
index 54455929404cc1d9157138dcfae00ac6d5932d34..2a7bc02f6e15838c42b23ef00db8c0981230e56c 100644 (file)
@@ -1283,6 +1283,81 @@ AC_DEFUN([TYPE_IN_ADDR_T],
   ]) dnl AC_CHECK_TYPE
 ]) dnl AC_DEFUN
 
+dnl CURL_CHECK_LIBS_CLOCK_GETTIME
+dnl -------------------------------------------------
+dnl Check for libraries needed for clock_gettime,
+dnl and prepended to LIBS any needed libraries.
+
+AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME], [
+  AC_REQUIRE([AC_HEADER_TIME])dnl
+  AC_CHECK_HEADERS(sys/types.h sys/time.h time.h)
+  #
+  AC_MSG_CHECKING([for clock_gettime in libraries])
+  #
+  curl_cv_save_LIBS="$LIBS"
+  curl_cv_gclk_LIBS="unknown"
+  #
+  for x_xlibs in '' '-lrt' '-lposix4' ; do
+    if test -z "$x_xlibs"; then
+      LIBS="$curl_cv_save_LIBS"
+    else
+      LIBS="$x_xlibs $curl_cv_save_LIBS"
+    fi
+    AC_LINK_IFELSE([
+      AC_LANG_PROGRAM([
+#undef inline
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#ifdef TIME_WITH_SYS_TIME
+#include <time.h>
+#endif
+#else
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#endif
+      ],[
+        (void)clock_gettime(0, 0);
+      ])
+    ],[
+       curl_cv_gclk_LIBS="$x_xlibs"
+       break
+    ])
+  done
+  #
+  LIBS="$curl_cv_save_LIBS"
+  #
+  case X-"$curl_cv_gclk_LIBS" in
+    X-unknown)
+      AC_MSG_RESULT([cannot find clock_gettime])
+      ac_cv_func_clock_gettime="no"
+      ;;
+    X-)
+      AC_MSG_RESULT([no additional lib required])
+      ac_cv_func_clock_gettime="yes"
+      ;;
+    *)
+      if test -z "$curl_cv_save_LIBS"; then
+        LIBS="$curl_cv_gclk_LIBS"
+      else
+        LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS"
+      fi
+      AC_MSG_RESULT([$curl_cv_gclk_LIBS])
+      ac_cv_func_clock_gettime="yes"
+      ;;
+  esac
+  #
+  case "$ac_cv_func_clock_gettime" in
+    yes)
+      AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME, 1,
+        [Define to 1 if you have the clock_gettime function.])
+      ;;
+  esac
+  #
+]) dnl AC_DEFUN
 
 dnl **********************************************************************
 dnl CURL_DETECT_ICC ([ACTION-IF-YES])
index a7af5a18310ac5e129266f8e2490f1c8d19c5e27..28f90c8abdaec539c6cd28922f3298da28a16d19 100644 (file)
@@ -260,6 +260,11 @@ fi
 dnl socket lib?
 AC_CHECK_FUNC(connect, , [ AC_CHECK_LIB(socket, connect) ])
 
+dnl **********************************************************************
+dnl Check for libraries needed for function clock_gettime
+dnl **********************************************************************
+CURL_CHECK_LIBS_CLOCK_GETTIME
+
 AC_MSG_CHECKING([whether to use libgcc])
 AC_ARG_ENABLE(libgcc,
 AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]),
@@ -644,7 +649,6 @@ AC_CHECK_MEMBER(struct addrinfo.ai_flags,
 
 AC_CHECK_FUNCS( bitncmp \
                 gettimeofday \
-                clock_gettime \
                 if_indextoname,
 dnl if found
 [],
index 8a5988959e7adefdb4d1e2fbd65de19c5bb4426f..0ef6a3942c1e33f95c2816540654b1337f3e91b1 100644 (file)
@@ -567,6 +567,11 @@ fi
 dnl socket lib?
 AC_CHECK_FUNC(connect, , [ AC_CHECK_LIB(socket, connect) ])
 
+dnl **********************************************************************
+dnl Check for libraries needed for function clock_gettime
+dnl **********************************************************************
+CURL_CHECK_LIBS_CLOCK_GETTIME
+
 dnl **********************************************************************
 dnl The preceding library checks are all potentially useful for test
 dnl servers (for providing networking support).  Save the list of required
@@ -1976,7 +1981,6 @@ AC_CHECK_FUNCS( strtoll \
                 strcmpi \
                 gethostbyaddr \
                 gettimeofday \
-                clock_gettime \
                 inet_addr \
                 inet_ntoa \
                 inet_pton \