Eric Blake <[EMAIL PROTECTED]> wrote: > [adding bug-automake] > > According to Jim Meyering on 2/19/2008 4:33 AM: > |> But I am, having seen it myself. It happens when you have a stale symlink > |> from an older copy of gnulib, but which now points nowhere because the > |> file was renamed in gnulib. > | > | It's annoying. Didn't someone (you, Eric?) post an automake > | patch to generate Makefile rules that would avoid this? > > You are thinking about this patch of Ralf's: > http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=d0ebf71 > > I'm not sure if that was ported back to the 1.10 branch. But it looks > like that patch only handles the make rules for rerunning aclocal, and > will not impact the ./bootstrap rules for running aclocal afresh when > there are broken symlinks matching *.m4 in the included directories. > Maybe one more automake patch is needed, to avoid warning on broken > symlink source files if the resulting aclocal still manages to provide > every needed macro? Meanwhile, I still think coreutils' bootstrap should > delete these broken symlinks before trying to run aclocal.
I agree. What do you think of this patch (untested)? It's probably good enough, but I'll bet someone will suggest a more portable version :-) diff --git a/bootstrap b/bootstrap index 7dacfe6..1dd3bc2 100755 --- a/bootstrap +++ b/bootstrap @@ -2,7 +2,7 @@ # Bootstrap this package from checked-out sources. -# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2003-2008 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -538,6 +538,12 @@ if test -f $mam_template; then done fi +# Remove dangling symlinks in gnulib-populated directories. +# This depends on GNU find, and a relatively recent version at that. +# Ignore any failure for now, since it's only to avoid the relatively +# unusual case in which a symlinked-to file in gnulib/ or gl/ is removed. +find -L m4 lib build-aux -depth -lname '*' -delete > /dev/null 2>&1 + # Reconfigure, getting other files. for command in \