1# readlink.m4 serial 11 2dnl Copyright (C) 2003, 2007, 2009-2011 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_READLINK], 8[ 9 AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) 10 AC_CHECK_FUNCS_ONCE([readlink]) 11 if test $ac_cv_func_readlink = no; then 12 HAVE_READLINK=0 13 else 14 AC_CACHE_CHECK([whether readlink signature is correct], 15 [gl_cv_decl_readlink_works], 16 [AC_COMPILE_IFELSE( 17 [AC_LANG_PROGRAM( 18 [[#include <unistd.h> 19 /* Cause compilation failure if original declaration has wrong type. */ 20 ssize_t readlink (const char *, char *, size_t);]])], 21 [gl_cv_decl_readlink_works=yes], [gl_cv_decl_readlink_works=no])]) 22 dnl Solaris 9 ignores trailing slash. 23 dnl FreeBSD 7.2 dereferences only one level of links with trailing slash. 24 AC_CACHE_CHECK([whether readlink handles trailing slash correctly], 25 [gl_cv_func_readlink_works], 26 [# We have readlink, so assume ln -s works. 27 ln -s conftest.no-such conftest.link 28 ln -s conftest.link conftest.lnk2 29 AC_RUN_IFELSE( 30 [AC_LANG_PROGRAM( 31 [[#include <unistd.h> 32]], [[char buf[20]; 33 return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], 34 [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no], 35 [gl_cv_func_readlink_works="guessing no"]) 36 rm -f conftest.link conftest.lnk2]) 37 if test "$gl_cv_func_readlink_works" != yes; then 38 AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink 39 fails to recognize a trailing slash.]) 40 REPLACE_READLINK=1 41 elif test "$gl_cv_decl_readlink_works" != yes; then 42 REPLACE_READLINK=1 43 fi 44 fi 45]) 46 47# Like gl_FUNC_READLINK, except prepare for separate compilation 48# (no REPLACE_READLINK, no AC_LIBOBJ). 49AC_DEFUN([gl_FUNC_READLINK_SEPARATE], 50[ 51 AC_CHECK_FUNCS_ONCE([readlink]) 52 gl_PREREQ_READLINK 53]) 54 55# Prerequisites of lib/readlink.c. 56AC_DEFUN([gl_PREREQ_READLINK], 57[ 58 : 59]) 60