[vox-tech] Make question: headers depending on other headers
Matt Roper
vox-tech@lists.lugod.org
Wed, 31 Mar 2004 15:15:58 -0800
I think in general you want to use a tool like 'makedepend' or
'gcc -M' instead of trying to write your Makefile dependencies
yourself. These track down the headers used by a .c file and
output the appropriate Makefile dependency line. I haven't really
done this much, but there's a good page of information about it at
http://make.paulandlesley.org/autodep.html
Matt
On Wed, Mar 31, 2004 at 02:56:38PM -0800, Bill Kendrick wrote:
>
> I have some source files that depend on some other sources' headers.
>
> In turn, some of THOSE headers depend on other headers (e.g., a header
> defining a structure might depend on another header that defines some other
> structures).
>
> Is it useful to list these 'dependencies' within the Makefile?
>
> For example, consider foo.c:
>
> /* foo.c
> I do foo things */
>
> #include "foo.h" /* My header */
> #include "bar.h" /* bar.c's header, so I can get to its function(s) and/or
> typedefs... */
>
> ...
>
>
> In Makefile, I'd do:
>
> foo.o: foo.c foo.h bar.h
> ...compile foo.c into foo.o...
>
>
> However, say in "bar.h", I have:
>
>
> /* bar.h
> I do things with alcohol (get it? "bar?" hahaha...) */
>
> #include "bar.h" /* My header */
> #include "zzz.h" /* Contains some #define's for compile-time options */
>
> ...
>
>
> Should I make "bar.h" depend on "zzz.h"? Or "foo.o" depend on it? Or...?
>
>
> I just want to make sure that in case I touch something somewhere, that
> everybody who needs to get update GETS updated.
>
> Thx!
>
> -bill!
> bill@newbreedsoftware.com Have you visited the Linux Users' Group
> http://newbreedsoftware.com/bill/ of Davis yet!? http://www.lugod.org/
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
--
*************************************************
* Matt Roper <matt@mattrope.com> *
* http://www.mattrope.com *
* PGP Key: http://www.mattrope.com/mattrope.asc *
*************************************************