X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Flink-follow.m4;h=813369b00883d3fb3959830f4f170b765665cc1b;hb=620e0d080536f8d8655e24b2965b05b95c00396d;hp=a57ab88a6e198e6bfee059c7d562caaed655f8b2;hpb=ca621fe9eb453d767216c8023eebe7ffe953d16d;p=gnulib.git diff --git a/m4/link-follow.m4 b/m4/link-follow.m4 index a57ab88a6..813369b00 100644 --- a/m4/link-follow.m4 +++ b/m4/link-follow.m4 @@ -1,13 +1,24 @@ -#serial 1 +#serial 5 dnl Run a program to determine whether whether link(2) follows symlinks. dnl Set LINK_FOLLOWS_SYMLINKS accordingly. -AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, +# Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_AC_FUNC_LINK_FOLLOWS_SYMLINK], [dnl - AC_CACHE_CHECK([whether link(2) follows symlinks], + AC_CACHE_CHECK( + [whether link(2) dereferences a symlink specified with a trailing slash], jm_ac_cv_func_link_follows_symlink, [ - # Create a regular file, `conftest.file'. + dnl poor-man's AC_REQUIRE: FIXME: repair this once autoconf-3 provides + dnl the appropriate framework. + test -z "$ac_cv_header_unistd_h" \ + && AC_CHECK_HEADERS(unistd.h) + + # Create a regular file. echo > conftest.file AC_TRY_RUN( [ @@ -29,11 +40,11 @@ AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, const char *hard = "conftest.hard"; struct stat sb_file, sb_hard; - /* Create a symlink `conftest.sym' to it. */ + /* Create a symlink to the regular file. */ if (symlink (file, sym)) abort (); - /* Create a hard link `conftest.hard' to that symlink. */ + /* Create a hard link to that symlink. */ if (link (sym, hard)) abort (); @@ -49,7 +60,11 @@ AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, ], jm_ac_cv_func_link_follows_symlink=yes, jm_ac_cv_func_link_follows_symlink=no, - jm_ac_cv_func_link_follows_symlink=yes, We're cross compiling. + jm_ac_cv_func_link_follows_symlink=yes dnl We're cross compiling. ) ]) + if test $jm_ac_cv_func_link_follows_symlink = yes; then + AC_DEFINE(LINK_FOLLOWS_SYMLINKS, 1, + [Define if `link(2)' dereferences symbolic links.]) + fi ])