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