Patch from Noel Belcourt, with some minor changes for portability. Implements action output deferral to sync the output regardless of -jn.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37823
Add test for -jN actions.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37825
Complete implementation of Ticket #994 (Parallel Bjam output is jumbled).

I removed the signal handling code from jam.c as it's no longer needed.

Changed the execcmd function signature to pass two additional arguments,
the rule name and the build target.  These are no longer output in make1.c
as we need to defer their output until the command completes and we have
all the stdout and stderr output.

Fixed the various hangs and zombie children problems in execunix.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37855
Changed make1.c to pass null pointers for the rule and target so as to
identically replicate the original bjam output.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37857
Match up the execcmd args.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37861
*** empty log message ***

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37862
Fix non-Unix case of exec to that is outputs the action headers as usual.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37863
*** empty log message ***

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37864
Fixed missing io dup, for both stderr and stdout.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37867
Add logic for separating stdout and stderr.  This solution is commented out
with #if 0 right now although it has been tested and is fully functional.

The default implementation is to merge stdout and stderr into a single stream.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37868
Change mem allocation to use common macros.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37871
Use atomic allocs as needed. Remove obsolete win32 code.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37873
Added support for bjam -px options per discussions with Rene Rivera.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37876
Added copyright notice.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37877
Fix a file descriptor that wasn't getting closed.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37880
Add check on pipe descriptor values.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37885
Added initial dart support to execcmd and make1.

Updated the execcmd closure function signature to pass the executed
command string and the command output into the make_closure function.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37896
Passed the executed command and command output into the call_dart_rule function.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37899
Passing the executed command and the command output to the dart rule, finally.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37911
Fix missing args, to make things compile on Windows.

svn path=/branches/Boost_Jam_994/boost/tools/jam/; revision=37912