tromey at cygnus.com
Wed Nov 4 06:52:34 GMT 1998
Alexandre> The fact is that it *can* do that, but, in general, it
Alexandre> can't issue compilation commands in a portable way, because
Alexandre> `-c -o' is not portable, and also due to possible
Alexandre> subtleties in user-defined rules.
Reliable sources tell me that the `-c -o' restriction isn't really
worth worrying about. At home I have the precise info, but basically
it turns out that there's just one obscure compiler that fails this
(plus at least one that chooses a losing name for the intermediate .s
Alexandre> Anyway, it could still benefit from including the complete
Alexandre> dependency list in higher-level Makefiles, and creating
Alexandre> rules that start sub-makes to build targets found to be
Alexandre> out-of-date. Tom, what do you think, is this doable?
Alexandre> Would it be worth the effort?
I've occasionally considered doing this. I think if we're going to do
this we might as well change automake so that it can read a bunch of
Makefile.am's and then generate a single Makefile.in. I think this
would result in faster builds.
I imagine that doing this would be fairly complicated -- you'd have to
touch many parts of automake. I haven't really looked at it
There are some tricky issues. E.g., right now you can change the
value of SUBDIRS at configure time to avoid building directories. It
isn't clear how this could continue to be supported.
It might be possible to do as you suggest and keep the current model,
but allow smarter cross-directory dependencies. I think there are
some tricky things here, too. For instance, for developers you have
to figure out a way to make `.P' files in subdirs have meaning in a
parent directory (you have to include all of these in order to get
proper dependency tracking across directories).
This is probably something I'll look at more closely when the rewrite
in Guile happens (whenever that might be). I'd be happy to discuss
details if that's what people are interested in, though.
More information about the samba-technical