There is a lot of calculation which goes into every “default” run
(every source file must be found and characterized every time), which
results in a lot of file·system reads. This is unnecessary, and
needlessly slow for large numbers of files, on the first run (building
the magic and parsers). This commit moves parser‐building into a new
“initial” mode which then calls into a submake for the actual build,
negating the need for the first restart, simplyfying various aspects of
the code, and generally making things quite a bit more efficient.
The existing “_2stage” mode is combined with the new “initial” mode, as
their functionalities largely overlap.