Mercurial > hg > octave-kai > gnulib-hg
annotate m4/sys_time_h.m4 @ 17440:0d0daceb5bdd
nproc: relax license to LGPLv2+
nproc merely exposes alternatives to sysconf(_SC_NPROCESSORS_CONF),
which is part of glibc and thus LGPLv2+; it is not adding any value
that strategically requires LGPLv3+. See also this thread.
https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00105.html
* modules/nproc (License): Change from LGPLv3+.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Wed, 03 Jul 2013 15:34:30 -0600 |
parents | e542fd46ad6f |
children |
rev | line source |
---|---|
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
1 # Configure a replacement for <sys/time.h>. |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
2 # serial 8 |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
3 |
17249
e542fd46ad6f
maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents:
16970
diff
changeset
|
4 # Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
5 # This file is free software; the Free Software Foundation |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
6 # gives unlimited permission to copy and/or distribute it, |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
7 # with or without modifications, as long as this notice is preserved. |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
8 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
9 # Written by Paul Eggert and Martin Lambers. |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
10 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
11 AC_DEFUN([gl_HEADER_SYS_TIME_H], |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
12 [ |
8337
039bedae1345
Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents:
8043
diff
changeset
|
13 dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement |
039bedae1345
Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents:
8043
diff
changeset
|
14 dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1 |
7903
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
15 dnl statements that occur in other macros. |
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
16 AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY]) |
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
17 ]) |
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
18 |
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
19 AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY], |
42e2f1ada185
Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents:
7902
diff
changeset
|
20 [ |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
21 AC_REQUIRE([AC_C_RESTRICT]) |
12844 | 22 AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) |
12563
21ecefd9dc81
headers: make check of system header explicit
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
23 AC_CHECK_HEADERS_ONCE([sys/time.h]) |
8995
1025663f7658
* m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST
Paul Eggert <eggert@cs.ucla.edu>
parents:
8337
diff
changeset
|
24 gl_CHECK_NEXT_HEADERS([sys/time.h]) |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
25 |
12844 | 26 if test $ac_cv_header_sys_time_h != yes; then |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
27 HAVE_SYS_TIME_H=0 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
28 fi |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
29 |
15613
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
30 dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h> |
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
31 dnl only. So include that header in the list. |
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
32 gl_PREREQ_SYS_H_WINSOCK2 |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
33 AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval], |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
34 [AC_COMPILE_IFELSE( |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
35 [AC_LANG_PROGRAM( |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
36 [[#if HAVE_SYS_TIME_H |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
37 #include <sys/time.h> |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
38 #endif |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
39 #include <time.h> |
15613
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
40 #if HAVE_WINSOCK2_H |
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
41 # include <winsock2.h> |
e819b881a9e2
sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
42 #endif |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
43 ]], |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
44 [[static struct timeval x; x.tv_sec = x.tv_usec;]])], |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
45 [gl_cv_sys_struct_timeval=yes], |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
46 [gl_cv_sys_struct_timeval=no]) |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
47 ]) |
12844 | 48 if test $gl_cv_sys_struct_timeval != yes; then |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
49 HAVE_STRUCT_TIMEVAL=0 |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
50 else |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
51 dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
52 dnl (in <sys/time.h> and <winsock2.h> for mingw64, in <winsock2.h> only |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
53 dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
54 dnl smaller than the 'time_t' type mandated by POSIX. |
16970
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
55 dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but |
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
56 dnl that is good enough. |
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
57 AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member], |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
58 [gl_cv_sys_struct_timeval_tv_sec], |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
59 [AC_COMPILE_IFELSE( |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
60 [AC_LANG_PROGRAM( |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
61 [[#if HAVE_SYS_TIME_H |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
62 #include <sys/time.h> |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
63 #endif |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
64 #include <time.h> |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
65 #if HAVE_WINSOCK2_H |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
66 # include <winsock2.h> |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
67 #endif |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
68 ]], |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
69 [[static struct timeval x; |
16970
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
70 typedef int verify_tv_sec_type[ |
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
71 sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 |
536d27654da7
sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents:
16327
diff
changeset
|
72 ]; |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
73 ]])], |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
74 [gl_cv_sys_struct_timeval_tv_sec=yes], |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
75 [gl_cv_sys_struct_timeval_tv_sec=no]) |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
76 ]) |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
77 if test $gl_cv_sys_struct_timeval_tv_sec != yes; then |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
78 REPLACE_STRUCT_TIMEVAL=1 |
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
79 fi |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
80 fi |
12844 | 81 |
82 dnl Check for declarations of anything we want to poison if the | |
83 dnl corresponding gnulib module is not in use. | |
84 gl_WARN_ON_USE_PREPARE([[ | |
85 #if HAVE_SYS_TIME_H | |
86 # include <sys/time.h> | |
87 #endif | |
88 #include <time.h> | |
89 ]], [gettimeofday]) | |
90 ]) | |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
91 |
12844 | 92 AC_DEFUN([gl_SYS_TIME_MODULE_INDICATOR], |
93 [ | |
94 dnl Use AC_REQUIRE here, so that the default settings are expanded once only. | |
95 AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) | |
13066
fc8c984b0733
Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents:
12971
diff
changeset
|
96 gl_MODULE_INDICATOR_SET_VARIABLE([$1]) |
12971
bd4194c91570
Tests of module 'sys_time' in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12888
diff
changeset
|
97 dnl Define it also as a C macro, for the benefit of the unit tests. |
13071
b2385e7b332e
Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents:
13066
diff
changeset
|
98 gl_MODULE_INDICATOR_FOR_TESTS([$1]) |
12844 | 99 ]) |
100 | |
101 AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS], | |
102 [ | |
103 GNULIB_GETTIMEOFDAY=0; AC_SUBST([GNULIB_GETTIMEOFDAY]) | |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
104 dnl Assume POSIX behavior unless another module says otherwise. |
12888
88955fc5764d
gettimeofday: restore support for platforms that lack function
Eric Blake <eblake@redhat.com>
parents:
12844
diff
changeset
|
105 HAVE_GETTIMEOFDAY=1; AC_SUBST([HAVE_GETTIMEOFDAY]) |
12844 | 106 HAVE_STRUCT_TIMEVAL=1; AC_SUBST([HAVE_STRUCT_TIMEVAL]) |
107 HAVE_SYS_TIME_H=1; AC_SUBST([HAVE_SYS_TIME_H]) | |
108 REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY]) | |
16327
588e064cc6e1
sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
109 REPLACE_STRUCT_TIMEVAL=0; AC_SUBST([REPLACE_STRUCT_TIMEVAL]) |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
110 ]) |