1#serial 13
2
3dnl From Jim Meyering.
4dnl Check for the nanosleep function.
5dnl If not found, use the supplied replacement.
6dnl
7
8# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
9# This file is free software; the Free Software Foundation
10# gives unlimited permission to copy and/or distribute it,
11# with or without modifications, as long as this notice is preserved.
12
13AC_DEFUN([gl_FUNC_NANOSLEEP],
14[
15 AC_LIBSOURCES([nanosleep.c])
16
17 nanosleep_save_libs=$LIBS
18
19 # Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
20 # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
21 AC_SEARCH_LIBS([nanosleep], [rt posix4],
22                [test "$ac_cv_search_nanosleep" = "none required" ||
23	         LIB_NANOSLEEP=$ac_cv_search_nanosleep])
24 AC_SUBST([LIB_NANOSLEEP])
25
26 AC_CACHE_CHECK([whether nanosleep works],
27  jm_cv_func_nanosleep_works,
28  [
29   AC_REQUIRE([AC_HEADER_TIME])
30   AC_CHECK_HEADERS_ONCE(sys/time.h)
31   AC_TRY_RUN([
32#   if TIME_WITH_SYS_TIME
33#    include <sys/time.h>
34#    include <time.h>
35#   else
36#    if HAVE_SYS_TIME_H
37#     include <sys/time.h>
38#    else
39#     include <time.h>
40#    endif
41#   endif
42
43    int
44    main ()
45    {
46      struct timespec ts_sleep, ts_remaining;
47      ts_sleep.tv_sec = 0;
48      ts_sleep.tv_nsec = 1;
49      exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1);
50    }
51	  ],
52	 jm_cv_func_nanosleep_works=yes,
53	 jm_cv_func_nanosleep_works=no,
54	 dnl When crosscompiling, assume the worst.
55	 jm_cv_func_nanosleep_works=no)
56  ])
57  if test $jm_cv_func_nanosleep_works = no; then
58    AC_LIBOBJ(nanosleep)
59    AC_DEFINE(nanosleep, rpl_nanosleep,
60      [Define to rpl_nanosleep if the replacement function should be used.])
61    gl_PREREQ_NANOSLEEP
62  fi
63
64 LIBS=$nanosleep_save_libs
65])
66
67# Prerequisites of lib/nanosleep.c.
68AC_DEFUN([gl_PREREQ_NANOSLEEP],
69[
70  AC_CHECK_HEADERS_ONCE(unistd.h)
71  AC_CHECK_FUNCS_ONCE(siginterrupt)
72])
73