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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3 dnl From Jim Meyering.
2066
8e707880be9b tweak comment
Jim Meyering <jim@meyering.net>
parents: 2065
diff changeset
4 dnl Check for the nanosleep function.
8e707880be9b tweak comment
Jim Meyering <jim@meyering.net>
parents: 2065
diff changeset
5 dnl If not found, use the supplied replacement.
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 dnl
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
23 AC_SEARCH_LIBS([nanosleep], [rt posix4],
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
24 [test "$ac_cv_search_nanosleep" = "none required" ||
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
25 LIB_NANOSLEEP=$ac_cv_search_nanosleep])
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28 AC_CACHE_CHECK([whether nanosleep works],
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 int
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 main ()
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 {
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 struct timespec ts_sleep, ts_remaining;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 ts_sleep.tv_sec = 0;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 ts_sleep.tv_nsec = 1;
2055
644068f5da98 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents: 2052
diff changeset
54 exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1);
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
55 }
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
56 ],
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 jm_cv_func_nanosleep_works=yes,
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58 jm_cv_func_nanosleep_works=no,
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61 ])
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 if test $jm_cv_func_nanosleep_works = no; then
2685
d4ea46c69b9f fix typo in last change
Jim Meyering <jim@meyering.net>
parents: 2683
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5721
diff changeset
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 ])