Annotation of embedaddon/libiconv/srcm4/time_h.m4, revision 1.1
1.1 ! misho 1: # Configure a more-standard replacement for <time.h>.
! 2:
! 3: # Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
! 4:
! 5: # serial 4
! 6:
! 7: # This file is free software; the Free Software Foundation
! 8: # gives unlimited permission to copy and/or distribute it,
! 9: # with or without modifications, as long as this notice is preserved.
! 10:
! 11: # Written by Paul Eggert and Jim Meyering.
! 12:
! 13: AC_DEFUN([gl_HEADER_TIME_H],
! 14: [
! 15: dnl Use AC_REQUIRE here, so that the default behavior below is expanded
! 16: dnl once only, before all statements that occur in other macros.
! 17: AC_REQUIRE([gl_HEADER_TIME_H_BODY])
! 18: ])
! 19:
! 20: AC_DEFUN([gl_HEADER_TIME_H_BODY],
! 21: [
! 22: AC_REQUIRE([AC_C_RESTRICT])
! 23: AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
! 24: gl_NEXT_HEADERS([time.h])
! 25: AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
! 26: ])
! 27:
! 28: dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
! 29: dnl in time.h, sys/time.h, or pthread.h.
! 30:
! 31: AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
! 32: [
! 33: AC_CHECK_HEADERS_ONCE([sys/time.h])
! 34: AC_CACHE_CHECK([for struct timespec in <time.h>],
! 35: [gl_cv_sys_struct_timespec_in_time_h],
! 36: [AC_COMPILE_IFELSE(
! 37: [AC_LANG_PROGRAM(
! 38: [[#include <time.h>
! 39: ]],
! 40: [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
! 41: [gl_cv_sys_struct_timespec_in_time_h=yes],
! 42: [gl_cv_sys_struct_timespec_in_time_h=no])])
! 43:
! 44: TIME_H_DEFINES_STRUCT_TIMESPEC=0
! 45: SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
! 46: PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
! 47: if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
! 48: TIME_H_DEFINES_STRUCT_TIMESPEC=1
! 49: else
! 50: AC_CACHE_CHECK([for struct timespec in <sys/time.h>],
! 51: [gl_cv_sys_struct_timespec_in_sys_time_h],
! 52: [AC_COMPILE_IFELSE(
! 53: [AC_LANG_PROGRAM(
! 54: [[#include <sys/time.h>
! 55: ]],
! 56: [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
! 57: [gl_cv_sys_struct_timespec_in_sys_time_h=yes],
! 58: [gl_cv_sys_struct_timespec_in_sys_time_h=no])])
! 59: if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
! 60: SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
! 61: else
! 62: AC_CACHE_CHECK([for struct timespec in <pthread.h>],
! 63: [gl_cv_sys_struct_timespec_in_pthread_h],
! 64: [AC_COMPILE_IFELSE(
! 65: [AC_LANG_PROGRAM(
! 66: [[#include <pthread.h>
! 67: ]],
! 68: [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
! 69: [gl_cv_sys_struct_timespec_in_pthread_h=yes],
! 70: [gl_cv_sys_struct_timespec_in_pthread_h=no])])
! 71: if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
! 72: PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
! 73: fi
! 74: fi
! 75: fi
! 76: AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
! 77: AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
! 78: AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
! 79: ])
! 80:
! 81: AC_DEFUN([gl_TIME_MODULE_INDICATOR],
! 82: [
! 83: dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
! 84: AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
! 85: gl_MODULE_INDICATOR_SET_VARIABLE([$1])
! 86: dnl Define it also as a C macro, for the benefit of the unit tests.
! 87: gl_MODULE_INDICATOR_FOR_TESTS([$1])
! 88: ])
! 89:
! 90: AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS],
! 91: [
! 92: GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME])
! 93: GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP])
! 94: GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME])
! 95: GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM])
! 96: GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R])
! 97: dnl Assume proper GNU behavior unless another module says otherwise.
! 98: HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R])
! 99: HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP])
! 100: HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME])
! 101: HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM])
! 102: dnl If another module says to replace or to not replace, do that.
! 103: dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK;
! 104: dnl this lets maintainers check for portability.
! 105: REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R])
! 106: REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME])
! 107: REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP])
! 108: REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM])
! 109: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>