nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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 | ]) |