Russell Shaw wrote: > > Bryce Schober wrote: > > When I first looked at the auto-dependency stuff at > > http://make.paulandlesley.org/autodep.html, I was pretty excited, but > > now I'm not so sure. What I'd really like is this: > > > > lib/ > > foo.h > > foo.c > > src/ > > main.c > > > > In this scenario, foo.h declares a "library" function defined in foo.c. > > This function is called in main.c, which includes foo.h. As far as I > > know, this is the generally accepted way to modularize things. However, > > gcc's dependency generation doesn't trace main.c's dependency on foo.c, > > only on foo.h. How can this dependency be known? Or even assumed, > > given that there is a corresponding .c file for .h file? > > main.c doesn't depend on foo.c because you can change the internals > of foo.c but if its interface doesn't change, then main.c would > still be compiled the same. main.c would only be compiled different > if foo.h changed.
Pedantically, assuming static linking, the following dependencies hold: main: main.o foo.a main.o: main.c foo.h foo.a: foo.o foo.o: foo.c foo.h IOW, source files don't depend on anything. HTH, Noel -- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited. _______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-make
