Copyright 2004-2007 Vladimir Prus Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) Milestone 13 (in development) Changes in this release: The following bugs were fixed: - gcc suport did not work on HP-UX systems Milestone 12 (Oct 1, 2007) Changes in this release: - The Pathscale, PGI and mipspro compilers are now supported. - Support for autoconfiguration of toolset based on command-line toolset=xxxx request, and for default toolset configuration as a fallback. - Support for precompiled headers for gcc toolset, and improvements for msvc. - Mechanism for removing inherited requirements. - The 'make' rule support specifying usage-requirements. - New 'project.extension' rule for declaring standalone projects. - New 'conditional' convenience rule. - New 'glob-tree' rule. - The 'glob' rule accepts patterns to exclude. - Inline targets are now marked explicit automatically. - Toolsets can now implicitly add requirements to all targets. - New 'generate' rule. - The executables produced by the 'run' rule are automatically removed after run. - The gcc toolset uses the version obtained by running the compiler, if no explicit one is provided. - The sun toolset now supports the 'address-model' feature, and uses -KPIC for shared libraries. - Free features on command line affect all targets, not just 'directly requested' ones. Documentation changes: - Installation instructions for Linux distributors. - Configuration options for all supported C++ compilers are now documented. The following bugs were fixed: - The 'cflags' and 'linkflags' now work on Darwin.o - The intel toolset now works on Windows. - Fix library search options for CodeWarriour toolset. - The could cause duplicate mkdir commands. - Numerious fixes in Boost autolink support - Numerious fixes in Boost.Python support. - Indirect properties not evaluated in usage requirements. - Generator that returns a property set but not target is considered successful. - On Darwin, when several compiler versions are configured, -fcoalesce-templates is applied only to versions that need it. Milestone 11 (Jule 20, 2006) Changes in this release: - New C++ compilers: IBM xlf, HP aCC, HP CXX, Intel fortran compiler. - New tools: Qt4 support, MS message compiler and IDL compiler. - New main targets: 'notfile' and 'cast'. - Core changes: - Only one file required at top level of a project, named Jamroot. - Jamfiles can now contain project-specific help messages. - "Indirect conditional requirements" introduced (http://tinyurl.com/mn3jp) - Strip suffix in main target names when computing names of generated files (URL) - The 'source-location' project attribute can contain several directories. - Usage requirements are propagated not only direct dependents, but to indirect dependents. - Command line option changes (see http://tinyurl.com/zbycz) - New option --build-dir - The --clean option cleans only target below the current directory, not globally. - New --clean-all option was added. - New option --debug-building - Running "bjam some_directory" works even if there's no Jamfile in the current directory. - Toolset improvements: - Assembling support with gcc, borland and msvc. - Support amd64/ia64 cross-compiling with msvc. - Improved, registry-based autodetection for msvc. - Serialize execution of gcc.link actions - Precompiled headers supported on MSVC (Need documentation) - New features and - The 'glob' rule accepts wildcards in directory names. - The 'stage' rule was renamed to 'install' (the old name still available for compatibility) - The feature can accept user-defined function as value (URL) - The 'install' rule can install a directory hierarchy preserving relative paths. - The 'install' rule no longer allows to change library name during install. - The Jamfile referred via 'use-project' may declare project id different from the one in 'use-project'. - The 'using' rule now searches the directory of containing Jamfile. The following bugs were fixed: - The feature was ignored for static linking - Fix #include scanning for C files. - Child projects were sometimes loaded before parent projects. - Fix project references with absolute paths on Windows. - The feature was ignored for 'install' targets. - A generator having the same type in sources and targets was causing hang. - Use 'icpc' command for Intel, fixing errors with 8.1 and higher. - Generation of PS files with the FOP tool really produces .PS files. - No dependency scanning was done for C files. - The 'constant' and 'path-constant' rules did not accept multi-element value. - Don't pass -fcoalesce-templates to gcc on OSX 10.4 - Fix static lib suffix on OSX. - Fix rpath setting on Intel/Linux. - The 'install' rule don't unnecessary scans #includes in installed headers. Developer visible changes: - Ability to customize type's prefix depending on build properties. - Generator's 'run' method can return usage-requirements. - Main target rule is automatically declared for each new target type. - 'Link incompatible' feature attribute was removed - Generators no longer bypass unhandled sources, they just ignore them. - If there are several applicable generators, immediately report ambiguity. Provide a way to explicitly resolve conflicts between generators. - The 'flags' rule can match absense of feature. - Great improvement in response files handling - The 'toolset.flags' rules allows value-less feature to signify absense of this feature (fix hack-hack). - Automatically declare main target rule for each declared target type. - When inheriting types, inherit generators for the base type, as opposed to using various hacks to invoke base generators when needed. - Improve diagnostic for "duplicate actual target" and generator ambiguity. Milestone 10 (October 29, 2004) Changes in this release: Many toolsets were added: Intel, Metrowerks, Comeau, aCC, vacpp. Documentation was converted to BoostBook and improved. Performance was improved. - Toolsets initialization syntax is much more uniform. Compiler and linker flags can now be specified. - The algorithm for computing build properties was improved. Conditional requirements can be chained, and a number of bugs were fixed. - Specific order of properties can be specified. - The main target rules can be called from everywhere, not necessary from Jamfile. - Check for "unused sources" removed. - The feature affects only linking now. - The feature now works only for libraries. - Simpler syntax for "searched" libraries was added. - New feature. Unix: The right order of static libraries on Unix is automatically computed. The feature is the default. gcc: The -fPIC option is passed when creating shared libraries. Problems with distcc were solved. Sun: It's now possible to use the sun linker (as opposed to gnu), and to compile C files. Darwin: Shared libraries are now supported. MSVC: Before resource files compilation, the setup script is invoked. Options deprecated in 8.0 are not longer used. The following bugs were fixed: - The rule did not handle the property (!!!!!!) - Don't add "bin" to the build directory explicitly specified by the user. - Allow to select staged targets, even with off. - Includes for the form '# include " did not work. - (Qt) Add paths to all dependent libs to uic command line, which helps if the UI files uses plugins. - Using xxx in requirements was broken. - Error message printed when target can be found is much more clear. - Inline targets in sources of 'stage' did not work. - Don't produce 'independent target' warnings on Windows - (gcc) The static did not work. - (gcc) Suppress warnings from the 'ar' tool on some systems. - (gcc) Don't try to set soname on NT. Developer visible changes: - Generator priorities are gone, explicit overrides are used. - 'Active' features were removed - Support for VMS paths was added. Thanks to Christopher Currie, Pedro Ferreira, Philipp Frauenfelder, Andre Hentz, Jurgen Hunold, Toon Knapen, Johan Nilsson, Alexey Pakhunov, Brock Peabody, Michael Stevens and Zbynek Winkler who contributed code to this release. Milestone 9.1 (Nov 6, 2003) The following bugs were fixed: - The 'unit-test' rule used to ignore properties. - The gcc toolset used to ignore property. Milestone 9 (Nov 6, 2003) Changes in this release - Putting library in sources of other library now works even for static linking, which makes expressing library->library dependency much simpler. - Performance was considerably improved. - Regression testing framework now works on windows. - The "alias" rule can have usage requirements and passes on usage requirements of sources. - The "stage" rule can traverse dependencies. - Support for "def files" was implemented. - Targets paths are now shorter. - Darwin toolset was improved. The following bugs were fixed: - It was not possible to specify empty suffix for a target type derived from other type. - The stage rules used to generate incorrect suffix in some cases. - It was possible to load Jamfile twice. - The 'use-project' rule was broken when referring to a child project. - Use of composite properties in requirements did not work. Developer visible changes: - New CALC builtin, which considerable improves performance. - Source layout was reorganized. - Handling of response file was simplified. Thanks to Pedro Ferreira, Kirill Lapshin, Andre Hentz, Paul Lin, Jurgen Hunold, Christopher Currie, and Brock Peabody, who contributed to this release. Milestone 8 (Oct 15, 2003) Changes in this release: - A regression testing framework was implemented. - New feature was added for better handling of dependencies to generated headers. - The link-compatibility checks not longer cause projects to be skipped, and issue warning, not error, for main targets. - Algorithm for selecting main target alternative was improved. - The feature was renamed to . - Project root constants were made available in project root itself. The following bugs were fixed: - failure to recognize shared libraries with version as such - the 'path-constant' rule was mishandling absolute paths on Windows. Milestone 7 (Sep 11, 2003) Changes in this release: - Performance was improved. - Support for Sun and Darwin toolsets was added. - feature, which changes the name of target depending of build variant, was implemented. - Old-style targets-ids are no longer supported. - New 'glob' rule allows to easily perform wildcard matching in Jamfile. - Improve bison/flex support to understand C++. The following bugs were fixed: - bogus error on use of project default-build attribute with several main target alternatives. - broken toolset inheritance - hard error after skipping a target due to incompatible requirements - incorrect behaviour of a generator when producing several targets of the same type - errors on use of the 'project-root' rule in Jamfile context - inability to require specific compiler version for a main target. - incorrect behaviour of "bjam msvc" when msvc is configured with explicit version. Thanks to Christopher Currie, Pedro Ferreira and Michael Stevens, who contributed to this release.