After becoming dissatisfied during the development of Chrome with the performance of the Unix make, the standard program for generating executable programs, Evan Martin has developed Ninja as an alternative. The code for the free tool has now been made available on Github with the agreement of Martin's employer, Google.

__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump

Well for the kind of way *I* like to do C/C++ builds, it's rather a pile of shiat.

I like to have a directory OUT of source tree for storing object files, a directory or two for source (depending on whether there are any external headers), plus a separate folder to place the files that need to be "Distributed" in. I also like to use the same build instructions for EACH toolkit and OS when possible.

This usually leads to a tree that looks like:

Code:

ProjectName/
README
HACKING
COPYING
include/
external include files to go in $PREFIX/include/ and be used like "#include <projectname/filename.ext>" in the projects own source.
source/ # or src
module name/
source and internal headers for this module
build/
config/
arch/
toolkit name/
osname/
module name/
object files created from building that module for the given configuration (e.g. release, debug, etc) for the given arch and OS.
dist/
config/
arch/
toolkit name/
osname/
everything needed to run in that environment

Trying to do that with scons took about 3 days of abuse and more than a few kludges to deal with platform specific issues it should have handled itself. By that, I mean it knowing how to compile/link stuff with the correct smarts enough that I'm not better off writing the whole thing as a perl script.

Speed is not a holy grail. And is only one dimension in the overall quality of a software package.

True. But the goal here was not to create a build system, but to create a browser. Fast turnaround time on builds is a good way to improve the development of your program. See PCC, LLVM, Google Go, and other projects who are motivated by high speed during compilation (among other things).

__________________
Many thanks to the forum regulars who put time and effort into helping others solve their problems.