bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Feature Request: Improved cross-directory builds (intermediate files


From: Ralf Wildenhues
Subject: Re: Feature Request: Improved cross-directory builds (intermediate files)
Date: Mon, 21 Sep 2009 21:20:05 +0200
User-agent: Mutt/1.5.20 (2009-08-09)

* Bollinger, John C wrote on Tue, Sep 15, 2009 at 11:42:38PM CEST:
> I'm still curious, however, about why Automake places the code for
> depfile generation into configure / config.status, instead of
> outputting Make rules for those files.  If it's an issue of
> compatibility with non-GNU Make,

Yes, mostly.  One problem is the bootstrapping stage: if 'config.status'
did not create the files below .deps, then the first 'make' invocation
would fail due to files included in the makefile not present.  With GNU
make, we could use 'sinclude' to avoid that, but that is not available
in non-GNU make implementations.  But there is another reason to not
use 'sinclude': you'd never know if there was a bug in that none of the
dependency files even exist.  (It's a rather minor issue, in that even
with today's code, we don't ensure that the makefile really includes all
the dependency files that are created.  I don't know a good solution to
this either.)

> then perhaps Automake could do both?

Well, there's the small issue that users don't really expect to pass
   ./configure MAKE=/some/other/make

but I'd be ok with requiring it for additional benefits (rather than for
additional restrictions).

An alternative solution I've been thinking of was to generate, at
config.status time, a makefile transformed from the default one, to
not include any deps files but have them listed as targets; while still
carrying over all definitions of the original Makefile.  That would
allow to use non-literals in sources for this reason.

However, there are still other reasons why at least @substed@ variables
won't work within *_SOURCES variables.

Cheers,
Ralf




reply via email to

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