Add <link>shared support.


svn path=/trunk/tools/build/v2/; revision=78223
make sure that we don't call make0 twice on the original include node.

svn path=/trunk/tools/build/v2/; revision=78244
Don't rescan targets when their internal include node is updated.

svn path=/trunk/tools/build/v2/; revision=78246
Use a regular dependency instead of an include dependency for generated headers to allow correct rescanning of generated headers.

svn path=/trunk/tools/build/v2/; revision=78247
Add test of rescanning for headers.

svn path=/trunk/tools/build/v2/; revision=78248
Detect cycles created by rescanning.

svn path=/trunk/tools/build/v2/; revision=78249
Stop targets that depend on an include cycle from updating before all the required generated headers are built.

svn path=/trunk/tools/build/v2/; revision=78250
Pass the correct argument to make1breakcycle and make sure that we don't add a spurious self-dependency.

svn path=/trunk/tools/build/v2/; revision=78252
Handle cycles when determining target fate in make0.

svn path=/trunk/tools/build/v2/; revision=78259
Don't assume that make1a processes targets in the same order as make0.  It doesn't.  Start a new stack when rescanning to avoid spurious cycles which cause a seg-fault.

svn path=/trunk/tools/build/v2/; revision=78281
Fix an infinite loop caused by creating a cycle in the strongly connected component links.

svn path=/trunk/tools/build/v2/; revision=78282
Avoid a self-cycle in scc_root.

svn path=/trunk/tools/build/v2/; revision=78283
Replace ad hoc (incorrect) cycle detection code with a variation of Tarjan's algorithm.

svn path=/trunk/tools/build/v2/; revision=78287
Avoid a spurious dependency.

svn path=/trunk/tools/build/v2/; revision=78302
Minor Boost Build documentation typo corrected.

svn path=/trunk/tools/build/v2/; revision=78376
Minor cleanup for Boost Build's built-in MATCH rule documentation.

svn path=/trunk/tools/build/v2/; revision=78377
Corrected a typo on the Boost.Jam's usage information screen.

svn path=/trunk/tools/build/v2/; revision=78504
Minor stylistic changes.

svn path=/trunk/tools/build/v2/; revision=78526
Make unit-test handle paths containing spaces.

svn path=/trunk/tools/build/v2/; revision=78538
Explicitly flushed bjam's standard output after printing out '...patience...' lines. Without a fflush() call these lines may get buffered and displayed all at once only after the first actual target has been built. It seems that Visual C++ compiler's runtime does not use line buffering for its standard output stream if given a pipe as its standard output (encountered with bjam compiled using msvc 10 and run by piping its output through the Cygwin tee utility).

svn path=/trunk/tools/build/v2/; revision=78545