ninja builds

Ninja builds (https://martine.github.io/ninja/) should now work with Bro’s master branch.
After installing it, Bro can use it like:

  ./configure --generator=Ninja
  cd build && ninja
  # May want to use —builddir if you want generated files to go somewhere besides ./build

The benefit over generating standard Makefiles is it checks for out-of-date targets quicker, which I’ve found to consume a majority of the build time for just small source code changes (e.g. a few .cc files). Examples:

A “no-op” build:

$ time ninja >/dev/null
real 0m0.162s
user 0m0.119s
sys 0m0.083s

$ time make >/dev/null
real 0m8.280s
user 0m4.191s
sys 0m3.029s

Single source file changed:

$ touch src/Attr.cc

$ time ninja >/dev/null
real 0m1.715s
user 0m1.541s
sys 0m0.273s

$ time make >/dev/null
real 0m9.725s
user 0m5.723s
sys 0m3.223s

- Jon

Ooh! That is really nice!

/me heads off to install ninja

  .Seth