* 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
