[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autoconf help?
Jan Ekholm wrote:
> > Parse, parse, parse the makefiles! And again! Compile your project with
> > "make -d" once and take a look at how many stat() make has to do. And it
> > has to do them many times very often, because of the recursive
> > invocations.
> > Not to mention the time spend going into directories where there is
> > nothing to be done (with no less parsing or stat()ing required, of
> > course!).
> But then, does it matter? When you download something and start to compile
> it you don't expect it to finish compiling in 3 seconds, do you? What is
> the point if the compilation takes 10 minutes or 13 minutes? You only do
> it once.
No, I'm talking about development here anyway.
> An if you compile an own project I suppose you don't do 'clean' rebuilds
> all the time, only when some central API changes or something similar,
> maybe once a day.
Yes, *exactly*. Do this experiment:
- Download the Mozilla sources
- Compile them
- Touch a .cpp file somewhere
- Do a straight "time make"
This is HORRIBLE. To ensure dependencies are okay, they also had to do
things like going through intermediary static libraries (libstuff.a
files) which have no use but to make the build process *work*.
Now, get XPLC (http://xplc.sourceforge.net/), compile, touch any .h or
..cpp file and run "time make". It will do the *exact* amount of work
needed, nothing more, nothing less. This is what I mean by "accuracy".
If you type "make" twice, the second time it *never* does anything and
comes back to the prompt without any output.
If the Mozilla build system was that accurate, I could touch a .cpp file
in the mozilla/xpcom, and a "make" would do exactly three things:
compile the .cpp file, relink libxpcom.so and copy libxpcom.so to the
components directory. It would output something like 3 or 5 lines of
output and would take less than a minute. Currently, I can go for dinner
while I do this. This is really HURTING my development process a lot!
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org