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-2016 Free Software Foundation, Inc. |
||
4 | |||
5 | # serial 9 |
||
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 Check whether 'struct timespec' is declared |
||
29 | dnl in time.h, sys/time.h, pthread.h, or unistd.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 | UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 |
||
48 | if test $gl_cv_sys_struct_timespec_in_time_h = yes; then |
||
49 | TIME_H_DEFINES_STRUCT_TIMESPEC=1 |
||
50 | else |
||
51 | AC_CACHE_CHECK([for struct timespec in <sys/time.h>], |
||
52 | [gl_cv_sys_struct_timespec_in_sys_time_h], |
||
53 | [AC_COMPILE_IFELSE( |
||
54 | [AC_LANG_PROGRAM( |
||
55 | [[#include <sys/time.h> |
||
56 | ]], |
||
57 | [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], |
||
58 | [gl_cv_sys_struct_timespec_in_sys_time_h=yes], |
||
59 | [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) |
||
60 | if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then |
||
61 | SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 |
||
62 | else |
||
63 | AC_CACHE_CHECK([for struct timespec in <pthread.h>], |
||
64 | [gl_cv_sys_struct_timespec_in_pthread_h], |
||
65 | [AC_COMPILE_IFELSE( |
||
66 | [AC_LANG_PROGRAM( |
||
67 | [[#include <pthread.h> |
||
68 | ]], |
||
69 | [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], |
||
70 | [gl_cv_sys_struct_timespec_in_pthread_h=yes], |
||
71 | [gl_cv_sys_struct_timespec_in_pthread_h=no])]) |
||
72 | if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then |
||
73 | PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 |
||
74 | else |
||
75 | AC_CACHE_CHECK([for struct timespec in <unistd.h>], |
||
76 | [gl_cv_sys_struct_timespec_in_unistd_h], |
||
77 | [AC_COMPILE_IFELSE( |
||
78 | [AC_LANG_PROGRAM( |
||
79 | [[#include <unistd.h> |
||
80 | ]], |
||
81 | [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], |
||
82 | [gl_cv_sys_struct_timespec_in_unistd_h=yes], |
||
83 | [gl_cv_sys_struct_timespec_in_unistd_h=no])]) |
||
84 | if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then |
||
85 | UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 |
||
86 | fi |
||
87 | fi |
||
88 | fi |
||
89 | fi |
||
90 | AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) |
||
91 | AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) |
||
92 | AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) |
||
93 | AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) |
||
94 | ]) |
||
95 | |||
96 | AC_DEFUN([gl_TIME_MODULE_INDICATOR], |
||
97 | [ |
||
98 | dnl Use AC_REQUIRE here, so that the default settings are expanded once only. |
||
99 | AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) |
||
100 | gl_MODULE_INDICATOR_SET_VARIABLE([$1]) |
||
101 | dnl Define it also as a C macro, for the benefit of the unit tests. |
||
102 | gl_MODULE_INDICATOR_FOR_TESTS([$1]) |
||
103 | ]) |
||
104 | |||
105 | AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], |
||
106 | [ |
||
107 | GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) |
||
108 | GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) |
||
109 | GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) |
||
110 | GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) |
||
111 | GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) |
||
112 | GNULIB_TIME_RZ=0; AC_SUBST([GNULIB_TIME_RZ]) |
||
113 | dnl Assume proper GNU behavior unless another module says otherwise. |
||
114 | HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) |
||
115 | HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) |
||
116 | HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) |
||
117 | HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) |
||
118 | dnl If another module says to replace or to not replace, do that. |
||
119 | dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; |
||
120 | dnl this lets maintainers check for portability. |
||
121 | REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) |
||
122 | REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) |
||
123 | REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) |
||
124 | REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) |
||
125 | |||
126 | dnl Hack so that the time module doesn't depend on the sys_time module. |
||
127 | dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. |
||
128 | : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) |
||
129 | dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME |
||
130 | dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier |
||
131 | dnl is no longer a big deal. |
||
132 | REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) |
||
133 | REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) |
||
134 | ]) |