diff --git a/architecture.html b/architecture.html index 0156b2cf4..2351eca5d 100644 --- a/architecture.html +++ b/architecture.html @@ -62,11 +62,12 @@ above covers most of it. where the user wants to declare a project-id. -

Initialization

+

Initialization

- We check the name used to invoke Jam, and if the name is not the recognized - Boost.Jam invocation we continue with the execution of the builtin Jambase. + We check the name used to invoke Jam, and if the name is not the + recognized Boost.Jam invocation ("bjam") we + continue with the execution of the builtin Jambase.

diff --git a/boost-base.jam b/boost-base.jam index e5102736f..8139748ff 100644 --- a/boost-base.jam +++ b/boost-base.jam @@ -1598,6 +1598,9 @@ rule subvariant-target ( target : subvariant-id build-properties * : toolset var # Remember the path from the build root to the subvariant directory gSUBVARIANT_PATH($(subvariant)) = $(subvariant-id) ; + # Add target suppression if was in the requirements + local gSUPPRESS_FAKE_TARGETS = [ get-values : $(gTARGET_REQUIREMENTS($(target))) ] $(gSUPPRESS_FAKE_TARGETS) ; + declare-fake-targets $(target) : $(target-files) ; # set up gBUILD_PROPERTIES for include-tools (below) @@ -1642,7 +1645,7 @@ rule subvariant-target ( target : subvariant-id build-properties * : toolset var depend-on-libraries $(target-files) : $(libs) ; depend-on-dlls $(target-files) : $(dlls) ; } - + # dispatch to the appropriate declaration function. Here we are using an # FTJam-only feature (thanks, David Turner!) local ignored = [ $(gGENERATOR_FUNCTION($(target-type))) $(target-files) @@ -1783,6 +1786,9 @@ rule unit-test # Used to build command files from a list of sources. rule build-command-file ( command : sources * ) { + # Clean up after ourselves + Clean clean : $(command) ; + DEPENDS $(command) : $(sources) ; # Check whether there's anything to dump, so that we don't end up diff --git a/build_system.htm b/build_system.htm index adb70e7df..a78a3d016 100644 --- a/build_system.htm +++ b/build_system.htm @@ -16,7 +16,7 @@

Synopsis

Boost.Build is a system for large project software construction built on - Boost Jam, a descendant of "Perforce Jam", an open-source make replacement[1]. Key features are: @@ -41,6 +41,19 @@

  • Automatic building of subproject dependencies +

    Status

    + + Boost.Build v1 is a useful, mature system. However, its design and + structure are not easily adapted to support some of the features + we'd like to see in the future. To this end, the Boost.Build + developers have begun work on v2 of Boost.Build, which will be + based around this + design document. If you are + interested in contributing to this effort or you wish to discuss + the design of Boost.Build, please post inquiries to the jamboost + mailing list at yahoogroups. +

    Here are some of the design criteria that led to these features. @@ -49,11 +62,13 @@