Mercurial > hg > octave-jordi > gnulib-hg
annotate m4/nanosleep.m4 @ 6671:5a2089992925
* modules/gettime (Depends-on): Add extensions module.
* modules/nanosleep (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* m4/clock_time.m4 (gl_CLOCK_TIME): Require gl_USE_SYSTEM_EXTENSIONS,
not merely AC_GNU_SOURCE, for the benefit of Solaris 10 when compiled
pedantically.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/timespec.m4 (gl_TIMESPEC): Likewise.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Thu, 02 Mar 2006 07:36:41 +0000 |
parents | fd0ccce602e4 |
children | 3d99d01160aa |
rev | line source |
---|---|
6671
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
1 #serial 15 |
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 |
2491
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
19 nanosleep_save_libs=$LIBS |
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
20 |
2065
e1a744db4db5
(jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents:
2055
diff
changeset
|
21 # 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
|
22 # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. |
4910 | 23 AC_SEARCH_LIBS([nanosleep], [rt posix4], |
24 [test "$ac_cv_search_nanosleep" = "none required" || | |
25 LIB_NANOSLEEP=$ac_cv_search_nanosleep]) | |
26 AC_SUBST([LIB_NANOSLEEP]) | |
2065
e1a744db4db5
(jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents:
2055
diff
changeset
|
27 |
2052 | 28 AC_CACHE_CHECK([whether nanosleep works], |
29 jm_cv_func_nanosleep_works, | |
2160
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
30 [ |
6671
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
31 dnl Persuade glibc and Solaris <time.h> to declare nanosleep. |
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
32 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) |
5a2089992925
* modules/gettime (Depends-on): Add extensions module.
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
33 |
2214
0428e8e0e9d4
Require AC_HEADER_TIME rather than simply using it.
Jim Meyering <jim@meyering.net>
parents:
2160
diff
changeset
|
34 AC_REQUIRE([AC_HEADER_TIME]) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
35 AC_CHECK_HEADERS_ONCE(sys/time.h) |
2160
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
36 AC_TRY_RUN([ |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
37 # if TIME_WITH_SYS_TIME |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
38 # include <sys/time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
39 # include <time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
40 # else |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
41 # if HAVE_SYS_TIME_H |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
42 # include <sys/time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
43 # else |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
44 # include <time.h> |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
45 # endif |
72cc32066c5d
(jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents:
2066
diff
changeset
|
46 # endif |
2052 | 47 |
48 int | |
49 main () | |
50 { | |
51 struct timespec ts_sleep, ts_remaining; | |
52 ts_sleep.tv_sec = 0; | |
53 ts_sleep.tv_nsec = 1; | |
2055 | 54 exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1); |
2052 | 55 } |
56 ], | |
57 jm_cv_func_nanosleep_works=yes, | |
58 jm_cv_func_nanosleep_works=no, | |
59 dnl When crosscompiling, assume the worst. | |
2215
c607416cb941
Fix typo in cross-compiling case: s/yes/no/.
Jim Meyering <jim@meyering.net>
parents:
2214
diff
changeset
|
60 jm_cv_func_nanosleep_works=no) |
2052 | 61 ]) |
62 if test $jm_cv_func_nanosleep_works = no; then | |
2685 | 63 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
|
64 AC_DEFINE(nanosleep, rpl_nanosleep, |
2267
49ab11061fd5
(jm_FUNC_NANOSLEEP): Rename replacement function from
Jim Meyering <jim@meyering.net>
parents:
2216
diff
changeset
|
65 [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
|
66 gl_PREREQ_NANOSLEEP |
2052 | 67 fi |
2491
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
68 |
9108f5af9d61
(jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents:
2267
diff
changeset
|
69 LIBS=$nanosleep_save_libs |
2052 | 70 ]) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
71 |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
72 # Prerequisites of lib/nanosleep.c. |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
73 AC_DEFUN([gl_PREREQ_NANOSLEEP], |
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
74 [ |
5813 | 75 AC_CHECK_FUNCS_ONCE(siginterrupt) |
4108
c1d472db5c30
An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents:
3486
diff
changeset
|
76 ]) |