A new flag to the -O/--output-sync, "job", selects a per-job (that is, per
line of a recipe) output synchronization. To support this move the close of
the temp file out of the sync_output() function and don't do it until we free
the child, since we may call sync_output() multiple times in a given recipe.
When we set up for a new temp file, if we're in per-job mode we truncate the
file and seek to the beginning to re-use it for every job.
* Minor syntax cleanups in the manual
* In non-maintainer mode set NDEBUG to disable assert()
* Performance improvements in strcache:
Build Info 1000 2000 4000
3.82 -g 2.61s 8.85s 33.52s
3.82 -O2 1.90s 7.62s 27.82s
New -g (with asserts) 1.03s 2.31s 5.79s
New -O2 (no asserts) 0.65s 1.50s 3.52s
16304, 16468, 16577, 17701, 17880, 16051, 16652, 16698
Plus some from the mailing list.
Imported a patch from Eli to allow Cygwin builds to support DOS-style
pathnames.