Mercurial > hg > octave-kai > gnulib-hg
annotate m4/sys_time_h.m4 @ 12563:21ecefd9dc81
headers: make check of system header explicit
Exploiting knowledge of internal behavior of other macros can
be dangerous, especially since AC_CHECK_HEADERS_ONCE is designed
to be cheap on subsequent use.
* m4/netdb_h.m4 (gl_HEADER_NETDB): Don't exploit knowledge of
gl_CHECK_NEXT_HEADER internals, but call AC_CHECK_HEADERS_ONCE
ourselves.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise, for gt_INTTYPES_PRI
internals.
* m4/wchar.m4 (gl_WCHAR_H): Skip followup test if header is
missing.
Suggested by Bruno Haible.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Thu, 31 Dec 2009 16:20:15 -0700 |
parents | c2cbabec01dd |
children | aaa284caae61 |
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>. |
12563
21ecefd9dc81
headers: make check of system header explicit
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
2 # serial 2 |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
3 |
12559
c2cbabec01dd
update nearly all FSF copyright year lists to include 2010
Jim Meyering <meyering@redhat.com>
parents:
12518
diff
changeset
|
4 # Copyright (C) 2007, 2009, 2010 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]) |
12563
21ecefd9dc81
headers: make check of system header explicit
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
22 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
|
23 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
|
24 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
25 if test $ac_cv_header_sys_time_h = yes; then |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
26 HAVE_SYS_TIME_H=1 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
27 else |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
28 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
|
29 fi |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
30 AC_SUBST([HAVE_SYS_TIME_H]) |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
31 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
32 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
|
33 [AC_COMPILE_IFELSE( |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
34 [AC_LANG_PROGRAM( |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
35 [[#if HAVE_SYS_TIME_H |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
36 #include <sys/time.h> |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
37 #endif |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
38 #include <time.h> |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
39 ]], |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8995
diff
changeset
|
40 [[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
|
41 [gl_cv_sys_struct_timeval=yes], |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
42 [gl_cv_sys_struct_timeval=no])]) |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
43 if test $gl_cv_sys_struct_timeval = yes; then |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
44 HAVE_STRUCT_TIMEVAL=1 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
45 else |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
46 HAVE_STRUCT_TIMEVAL=0 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
47 fi |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
48 AC_SUBST([HAVE_STRUCT_TIMEVAL]) |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
49 |
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
50 dnl Assume POSIX behavior unless another module says otherwise. |
8337
039bedae1345
Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents:
8043
diff
changeset
|
51 REPLACE_GETTIMEOFDAY=0 |
039bedae1345
Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents:
8043
diff
changeset
|
52 AC_SUBST([REPLACE_GETTIMEOFDAY]) |
8043
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
53 if test $HAVE_SYS_TIME_H = 0 || test $HAVE_STRUCT_TIMEVAL = 0; then |
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
54 SYS_TIME_H=sys/time.h |
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
55 else |
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
56 SYS_TIME_H= |
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
57 fi |
d12a7f6db481
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
Jim Meyering <jim@meyering.net>
parents:
7903
diff
changeset
|
58 AC_SUBST([SYS_TIME_H]) |
7897
b7a83a69ac23
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff
changeset
|
59 ]) |