bug-automake
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]