Mercurial > hg > octave-jordi > gnulib-hg
annotate m4/nanosleep.m4 @ 6795:9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Use the usual Autoconf way to include <time.h> and/or sys/time.h.
(my_usleep): Don't mishandle maximum value.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Rename cache variables to use
gl_ rather than jm_. Link, don't run, so that cross-compiles are
allowed. Check that resulting type is arithmetic. Move AC_REQUIRE
and AC_CHECK_HEADERS_ONCE outside of AC_CACHE_CHECK, since they're
not really conditional on the cache.
(gl_PREREQ_NANOSLEEP): Check for sys/select.h.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Fri, 19 May 2006 17:49:21 +0000 |
parents | 3d99d01160aa |
children | be9e01d008cb |
rev | line source |
---|---|
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
1 #serial 17 |
2052 | 2 |
3 dnl From Jim Meyering. | |
2066 | 4 dnl Check for the nanosleep function. |
5 dnl If not found, use the supplied replacement. | |
2052 | 6 dnl |
7 | |
6671
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
8 # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free Software |
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
9 # Foundation, Inc. |
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
10 |
5611
87c42e194f4a
Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5016
diff
changeset
|
11 # This file is free software; the Free Software Foundation |
87c42e194f4a
Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5016
diff
changeset
|
12 # gives unlimited permission to copy and/or distribute it, |
87c42e194f4a
Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5016
diff
changeset
|
13 # with or without modifications, as long as this notice is preserved. |
87c42e194f4a
Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5016
diff
changeset
|
14 |
5016
7141ea4946af
Change jm_ to gl_ in AC_DEFINE'd names. Update all uses.
Jim Meyering <jim@meyering.net>
parents:
4910
diff
changeset
|
15 AC_DEFUN([gl_FUNC_NANOSLEEP], |
2052 | 16 [ |
5721
abd018cd6020
Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5611
diff
changeset
|
17 AC_LIBSOURCES([nanosleep.c]) |
abd018cd6020
Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files.
Paul Eggert <eggert@cs.ucla.edu>
parents:
5611
diff
changeset
|
18 |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
19 dnl Persuade glibc and Solaris <time.h> to declare nanosleep. |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
20 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
21 |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
22 AC_REQUIRE([AC_HEADER_TIME]) |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
23 AC_CHECK_HEADERS_ONCE(sys/time.h) |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
24 |
2491
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
25 nanosleep_save_libs=$LIBS |
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
26 |
2065
e1a744db4db5
(jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents:
2055
diff
changeset
|
27 # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. |
e1a744db4db5
(jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents:
2055
diff
changeset
|
28 # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. |
4910 | 29 AC_SEARCH_LIBS([nanosleep], [rt posix4], |
30 [test "$ac_cv_search_nanosleep" = "none required" || | |
31 LIB_NANOSLEEP=$ac_cv_search_nanosleep]) | |
32 AC_SUBST([LIB_NANOSLEEP]) | |
2065
e1a744db4db5
(jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents:
2055
diff
changeset
|
33 |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
34 AC_CACHE_CHECK([for nanosleep], |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
35 [gl_cv_func_nanosleep], |
2160
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
36 [ |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
37 AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
2160
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
38 # if TIME_WITH_SYS_TIME |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
39 # include <sys/time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
40 # include <time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
41 # else |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
42 # if HAVE_SYS_TIME_H |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
43 # include <sys/time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
44 # else |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
45 # include <time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
46 # endif |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
47 # endif |
2052 | 48 |
49 int | |
50 main () | |
51 { | |
52 struct timespec ts_sleep, ts_remaining; | |
53 ts_sleep.tv_sec = 0; | |
54 ts_sleep.tv_nsec = 1; | |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
55 return nanosleep (&ts_sleep, &ts_remaining) < 0; |
2052 | 56 } |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
57 ]])], |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
58 [gl_cv_func_nanosleep=yes], |
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
59 [gl_cv_func_nanosleep=no]) |
2052 | 60 ]) |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
61 if test $gl_cv_func_nanosleep = no; then |
2685 | 62 AC_LIBOBJ(nanosleep) |
3486
c5e203e2e4d4
Use AC_DEFINE rather than AC_DEFINE_UNQUOTED, whenever the right hand side need not be expanded by the shell.
Jim Meyering <jim@meyering.net>
parents:
3339
diff
changeset
|
63 AC_DEFINE(nanosleep, rpl_nanosleep, |
2267
49ab11061fd5
(jm_FUNC_NANOSLEEP): Rename replacement function from
Jim Meyering <jim@meyering.net>
parents:
2216
diff
changeset
|
64 [Define to rpl_nanosleep if the replacement function should be used.]) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
65 gl_PREREQ_NANOSLEEP |
2052 | 66 fi |
2491
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
67 |
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
68 LIBS=$nanosleep_save_libs |
2052 | 69 ]) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
70 |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
71 # Prerequisites of lib/nanosleep.c. |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
72 AC_DEFUN([gl_PREREQ_NANOSLEEP], |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
73 [ |
5813 | 74 AC_CHECK_FUNCS_ONCE(siginterrupt) |
6795
9dc5bb3f3359
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6744
diff
changeset
|
75 AC_CHECK_HEADERS_ONCE(sys/select.h) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
76 ]) |