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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
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
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
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
29 AC_SEARCH_LIBS([nanosleep], [rt posix4],
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
30 [test "$ac_cv_search_nanosleep" = "none required" ||
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
31 LIB_NANOSLEEP=$ac_cv_search_nanosleep])
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 int
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 main ()
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 {
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 struct timespec ts_sleep, ts_remaining;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 ts_sleep.tv_sec = 0;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
d4ea46c69b9f fix typo in last change
Jim Meyering <jim@meyering.net>
parents: 2683
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
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
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5721
diff changeset
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 ])