فهرست منبع

mhd_check_func_gettimeofday.m4: added new autoconf macro

Evgeny Grin (Karlson2k) 2 سال پیش
والد
کامیت
d2ecbe0060
3فایلهای تغییر یافته به همراه56 افزوده شده و 32 حذف شده
  1. 1 15
      configure.ac
  2. 53 0
      m4/mhd_check_func_gettimeofday.m4
  3. 2 17
      m4/mhd_shutdown_socket_trigger.m4

+ 1 - 15
configure.ac

@@ -2578,21 +2578,7 @@ choke me now
   ]
 )
 
-MHD_CHECK_FUNC([[gettimeofday]],
-  [[
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif /* HAVE_TIME_H */
-  ]],
-  [[
-  struct timeval tv;
-  i][f (0 != gettimeofday (&tv, (void*) 0))
-    return 1;
-  ]]
-)
+MHD_CHECK_FUNC_GETTIMEOFDAY
 
 # IPv6
 AC_CACHE_CHECK([for IPv6],[mhd_cv_have_inet6],

+ 53 - 0
m4/mhd_check_func_gettimeofday.m4

@@ -0,0 +1,53 @@
+# SYNOPSIS
+#
+#   MHD_CHECK_FUNC_GETTIMEOFDAY([ACTION-IF-AVAILABLE],
+#                               [ACTION-IF-NOT-AVAILABLE])
+#
+# DESCRIPTION
+#
+#   This macro checks for presence of gettimeofday() function.
+#   If function is available macro HAVE_GETTIMEOFDAY is defined
+#   automatically.
+#
+#   Example usage:
+#
+#     MHD_CHECK_FUNC_GETTIMEOFDAY([var_use_gettimeofday='yes'])
+#
+#   The cache variable used in check so if any test will not work
+#   correctly on some platform, user may simply fix it by giving cache
+#   variable in configure parameters, for example:
+#
+#     ./configure mhd_cv_func_memmem_have=no
+#
+#   This simplifies building from source on exotic platforms as patching
+#   of configure.ac is not required to change results of tests.
+#
+# LICENSE
+#
+#   Copyright (c) 2019-2023 Karlson2k (Evgeny Grin) <[email protected]>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 1
+
+AC_DEFUN([MHD_CHECK_FUNC_GETTIMEOFDAY],[dnl
+AC_CHECK_HEADERS([sys/time.h time.h])dnl
+MHD_CHECK_FUNC([[gettimeofday]],
+  [[
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif /* HAVE_SYS_TIME_H */
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif /* HAVE_TIME_H */
+  ]],
+  [[
+  struct timeval tv;
+  if (0 != gettimeofday (&tv, (void*) 0))
+    return 1;
+  ]],[$1],[$2]
+)
+])dnl AC_DEFUN MHD_CHECK_FUNC_GETTIMEOFDAY

+ 2 - 17
m4/mhd_shutdown_socket_trigger.m4

@@ -18,29 +18,14 @@
 #   and this notice are preserved. This file is offered as-is, without any
 #   warranty.
 
-#serial 4
+#serial 5
 
 AC_DEFUN([MHD_CHECK_SOCKET_SHUTDOWN_TRIGGER],[dnl
   AC_PREREQ([2.64])dnl
   AC_REQUIRE([AC_CANONICAL_HOST])dnl
   AC_REQUIRE([AC_PROG_CC])dnl
   AC_REQUIRE([AX_PTHREAD])dnl
-  AC_CHECK_HEADERS([sys/time.h time.h])dnl
-  MHD_CHECK_FUNC([[gettimeofday]],
-    [[
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif /* HAVE_TIME_H */
-    ]],
-    [[
-  struct timeval tv;
-  if (0 != gettimeofday (&tv, (void*) 0))
-    return 1;
-    ]]
-  )
+  AC_REQUIRE([MHD_CHECK_FUNC_GETTIMEOFDAY])dnl
   MHD_CHECK_FUNC([[usleep]], [[#include <unistd.h>]], [[usleep(100000);]])
   MHD_CHECK_FUNC([[nanosleep]], [[#include <time.h>]], [[struct timespec ts2, ts1 = {0, 0}; nanosleep(&ts1, &ts2);]])
   AC_CHECK_HEADERS([string.h sys/types.h sys/socket.h netinet/in.h time.h sys/select.h netinet/tcp.h],[],[], [AC_INCLUDES_DEFAULT])