annotate m4/nanosleep.m4 @ 5813:6962b5c5069f

Merge from coreutils.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 02 May 2005 07:00:50 +0000
parents abd018cd6020
children fd0ccce602e4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5813
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5721
diff changeset
1 #serial 13
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
5721
abd018cd6020 Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
8 # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5016
diff changeset
9 # 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
10 # 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
11 # 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
12
5016
7141ea4946af Change jm_ to gl_ in AC_DEFINE'd names. Update all uses.
Jim Meyering <jim@meyering.net>
parents: 4910
diff changeset
13 AC_DEFUN([gl_FUNC_NANOSLEEP],
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 [
5721
abd018cd6020 Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
15 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
16
2491
9108f5af9d61 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents: 2267
diff changeset
17 nanosleep_save_libs=$LIBS
9108f5af9d61 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents: 2267
diff changeset
18
2065
e1a744db4db5 (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents: 2055
diff changeset
19 # 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
20 # 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
21 AC_SEARCH_LIBS([nanosleep], [rt posix4],
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
22 [test "$ac_cv_search_nanosleep" = "none required" ||
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
23 LIB_NANOSLEEP=$ac_cv_search_nanosleep])
de285d9e7c4d Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
24 AC_SUBST([LIB_NANOSLEEP])
2065
e1a744db4db5 (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
Jim Meyering <jim@meyering.net>
parents: 2055
diff changeset
25
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 AC_CACHE_CHECK([whether nanosleep works],
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
27 jm_cv_func_nanosleep_works,
2160
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
28 [
2214
0428e8e0e9d4 Require AC_HEADER_TIME rather than simply using it.
Jim Meyering <jim@meyering.net>
parents: 2160
diff changeset
29 AC_REQUIRE([AC_HEADER_TIME])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
30 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
31 AC_TRY_RUN([
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
32 # if TIME_WITH_SYS_TIME
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
33 # include <sys/time.h>
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
34 # include <time.h>
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
35 # else
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
36 # if HAVE_SYS_TIME_H
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
37 # include <sys/time.h>
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
38 # else
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 # endif
72cc32066c5d (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Jim Meyering <jim@meyering.net>
parents: 2066
diff changeset
41 # endif
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 int
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 main ()
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
45 {
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 struct timespec ts_sleep, ts_remaining;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47 ts_sleep.tv_sec = 0;
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 ts_sleep.tv_nsec = 1;
2055
644068f5da98 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents: 2052
diff changeset
49 exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1);
2052
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 ],
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 jm_cv_func_nanosleep_works=yes,
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 jm_cv_func_nanosleep_works=no,
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
54 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
55 jm_cv_func_nanosleep_works=no)
2052
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 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
58 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
59 AC_DEFINE(nanosleep, rpl_nanosleep,
2267
49ab11061fd5 (jm_FUNC_NANOSLEEP): Rename replacement function from
Jim Meyering <jim@meyering.net>
parents: 2216
diff changeset
60 [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
61 gl_PREREQ_NANOSLEEP
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 fi
2491
9108f5af9d61 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents: 2267
diff changeset
63
9108f5af9d61 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
Jim Meyering <jim@meyering.net>
parents: 2267
diff changeset
64 LIBS=$nanosleep_save_libs
2052
3c79d37078c2 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
65 ])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
66
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
67 # Prerequisites of lib/nanosleep.c.
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
68 AC_DEFUN([gl_PREREQ_NANOSLEEP],
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
69 [
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
70 AC_CHECK_HEADERS_ONCE(unistd.h)
5813
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5721
diff changeset
71 AC_CHECK_FUNCS_ONCE(siginterrupt)
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3486
diff changeset
72 ])