1# lseek.m4 serial 4 2dnl Copyright (C) 2007, 2009 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7AC_DEFUN([gl_FUNC_LSEEK], 8[ 9 AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) 10 AC_REQUIRE([AC_PROG_CC]) 11 AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], 12 [if test $cross_compiling = no; then 13 AC_LINK_IFELSE([ 14#include <sys/types.h> /* for off_t */ 15#include <stdio.h> /* for SEEK_CUR */ 16#include <unistd.h> 17int main () 18{ 19 /* Exit with success only if stdin is seekable. */ 20 return lseek (0, (off_t)0, SEEK_CUR) < 0; 21}], 22 [if test -s conftest$ac_exeext \ 23 && ./conftest$ac_exeext < conftest.$ac_ext \ 24 && { echo hi | ./conftest$ac_exeext; test $? = 1; }; then 25 gl_cv_func_lseek_pipe=yes 26 else 27 gl_cv_func_lseek_pipe=no 28 fi], 29 [gl_cv_func_lseek_pipe=no]) 30 else 31 AC_COMPILE_IFELSE([ 32#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__ 33/* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */ 34 Choke me. 35#endif], 36 [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) 37 fi]) 38 if test $gl_cv_func_lseek_pipe = no; then 39 gl_REPLACE_LSEEK 40 fi 41]) 42 43AC_DEFUN([gl_REPLACE_LSEEK], 44[ 45 AC_LIBOBJ([lseek]) 46 AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) 47 REPLACE_LSEEK=1 48 AC_DEFINE([LSEEK_PIPE_BROKEN], [1], 49 [Define to 1 if lseek does not detect pipes.]) 50]) 51