# readlink.m4 serial 1
dnl Copyright (C) 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License.  As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.

AC_DEFUN([gl_FUNC_READLINK],
[
  AC_CHECK_FUNCS(readlink)
  if test $ac_cv_func_readlink = no; then
    AC_LIBOBJ(readlink)
    gl_PREREQ_READLINK
  fi
])

# Prerequisites of lib/readlink.c.
AC_DEFUN([gl_PREREQ_READLINE],
[
  :
])
