[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
makefiles
Keith Lucas wrote:
> >This in itself isn't bad, but the real point (on which also his entire
> >argumentation is based) is that parse.h is included by (obviously) parse.c
> >*and* by main.c
> >In this situation the above directory layout is complete crap. Something
> >like this would solve the problem:
>
> I try and keep .C and .Hs together, so I don't lose them.
>
> Actually, my boilerplate and build systems generate a .doc and a .errs
> as well for each .o, so it kind of makes sense to keep it all together.
Just to give a feel of how I work, I use a combination of these two
approach. "Interface" header files go in an include directory, and
"internal" header files goes with the .c/.cc they describe.
> Yeah. I can kind of see the point of that. I dunno, the essay kind of
> made sense in the way I work. I dint really think about the alternate
> arrangement while I was reading it.
Even with the alternate arrangement, the problems are not solved. The
thing is, the problems are not obvious, because we all are so used to
work with them, we take them as granted and usual, expected behavior.
The accuracy is also greatly improved. For example, imagine the
following situation: you work in Mozilla and change a single line in a
single file that will go in a single .so module. With recursive
makefiles, you're talking about nearly an HOUR of compiling! With
non-recursive makefiles, the thing would stat() for about a minute,
compile the single file, relink the .so and exit, would take about 5
minutes.
When I switched Quadra to non-recursive makefiles and saw that they
weren't that hard and how much time they saved even in a not-that-big
project, I was so impressed
I hear some people wishing for incremental linking and background
compilation for example. These people should drop automake dead and hack
non-recursive makefiles, it should give them some breathing room. Sure,
incremental linking is a very cool thing to have, and I wish we had it
also (so it could be even faster), but giving the means to 'make' to do
its job right will get you a looonnng way!
No wonder there's a lot of people who think that 'make' is an old piece
of crap and like their IDEs better! Project files are nothing more than
the equivalent of non-recursive makefiles (note that they don't need to
be user-friendly, they're called by the IDE).
Non-recursive makefiles kicks ass! :-)
--
Pierre Phaneuf
Systems Exorcist
---------------------------------------------------------------------
To unsubscribe, e-mail: linuxgames-unsubscribe@sunsite.auc.dk
For additional commands, e-mail: linuxgames-help@sunsite.auc.dk