[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12064: distclean failure with Automake 1.12.2
From: |
Peter Johansson |
Subject: |
bug#12064: distclean failure with Automake 1.12.2 |
Date: |
Fri, 27 Jul 2012 20:58:54 +1000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20 |
Hi Stefano,
On 7/27/12 7:08 PM, Stefano Lattarini wrote:
severity 12064 minor
thanks
On 07/27/2012 04:12 AM, Peter Johansson wrote:
Hi automakers,
I was about to make a release when I discovered that distcheck suddenly didn't
work
anymore. The distclean rule failed with
Making distclean in doc
make[2]: Entering directory
`/home/peterJo/projects/software/yat-0.8.x/yat-0.8.2/_build/doc'
Makefile:498: ../yat/classifier/doxygen.mk: No such file or directory
Makefile:499: ../yat/normalizer/doxygen.mk: No such file or directory
[Aside:
This seems quite a complex and brittle occurrence of inter-directory
dependencies;
have you thought about the possibility of converting to a non-recursive
setup? I
have done so with Automake itself (since version 1.12), and have been very,
very
happy with that move so far.]
Yes, we have converted to non-recursive Makefile in trunk since that
branch was created, and to get rid of this hack was one the reasons we
decided to do so.
This was for a stable branch release so there had just been minor changes in
two .cc files
and no changes at all wrt the build system. After some investigation I found
that Automake
1.12.2 has changed the order directories are traversed for clean rules.
I thought of this change as a mere cleanup actually, since the previous
different
order of directory traversal for clean rules was basically a relic needed by the
older (and now long-dead) implementation of automatic dependency tracking:
<http://www.gnu.org/software/automake/history/automake-history.html#First-Take-on-Dependencies>
I must say I find
it unexpected that behaviour like this is changed between 1.12.1 and 1.12.2. I
thought this
kind of changes were only introduced when bumping versions from say 1.11 to
1.12 and not
between stable releases.
The reason I got the failure is that files doxygen.mk are included into
doc/Makefile.
These files are generated in the corresponding Makefile and listed under
DISTCLEANFILES
so they are deleted during 'make distclean'. As SUBDIRS in top Makefile.am is
"SUBDIRS = doc yat" that was not a problem before since doc was entered first
during
cleaning and doc/Makefile was already gone when the doxygen.mk files were
removed.
Perhaps a strange use case, but still I wanted to report it.
And you did well; perhaps this this worth some documentation addition?
Not sure. Anyway, a good reason to keep the bug report open for now.
Well, I found it easily in NEWS. When I read the NEWS in your release
announcement I couldn't connect the dots that this would bite. I guess
that's the nature of hacks.
I think I've found a workaround
Curios: which workaround?
I moved the removal of doxygen.mk to doc/Makefile
http://dev.thep.lu.se/yat/changeset/2794
Cheers,
Peter