This works better for symlinks to directories.
Problem reported by Eli Zaretskii via Werner Lemberg in
<http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
* NEWS:
* doc/autoconf.texi (Particular Programs): Document this.
* lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.
+2011-12-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ AS_LN_S: fall back on 'cp -pR' (not 'cp -p') if 'ln -s' fails
+ This works better for symlinks to directories.
+ Problem reported by Eli Zaretskii via Werner Lemberg in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
+ * NEWS:
+ * doc/autoconf.texi (Particular Programs): Document this.
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.
+
2011-12-07 Paul Eggert <eggert@cs.ucla.edu>
AC_LANG_BOOL_COMPILE_TRY(C): port to g++ with warnings
** Macros
+- AC_PROG_LN_S and AS_LN_S now fall back on 'cp -pR' (not 'cp -p') if 'ln -s'
+ does not work. This works better for symlinks to directories.
+
- New macro AC_HEADER_CHECK_STDBOOL.
- New and updated macros for Fortran support:
If @samp{ln -s} works on the current file system (the operating system
and file system support symbolic links), set the output variable
@code{LN_S} to @samp{ln -s}; otherwise, if @samp{ln} works, set
-@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -p}.
+@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -pR}.
If you make a link in a directory other than the current directory, its
meaning depends on whether @samp{ln} or @samp{ln -s} is used. To safely
# Don't use conftest.sym to avoid file name issues on DJGPP, where this
# would yield conftest.sym.exe for DJGPP < 2.04. And don't use `conftest'
# as base name to avoid prohibiting concurrency (e.g., concurrent
-# config.statuses). On read-only media, assume 'cp -p' and hope we
+# config.statuses). On read-only media, assume 'cp -pR' and hope we
# are just running --help anyway.
m4_defun([_AS_LN_S_PREPARE],
[rm -f conf$$ conf$$.exe conf$$.file
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null