mirror of
https://github.com/boostorg/build.git
synced 2026-07-21 13:13:39 +00:00
Remove some obsolete dev notes. [skip ci]
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
Copyright 2005 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)
|
||||
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
We need a --build-dir option that users building from read-only
|
||||
medium can use to force building to some other location. Pretty much
|
||||
every project need this functionality, so it's desirable to have it
|
||||
out-of-the box, without explicit setup.
|
||||
|
||||
Design
|
||||
------
|
||||
|
||||
We can achieve the desired effect manually by adding something like this
|
||||
to Jamroot:
|
||||
|
||||
project .... : build-dir [ my-rule-to-compute-build-dir ] ;
|
||||
|
||||
Where 'my-rule-to-compute-build-dir' would look at the --build-dir option.
|
||||
|
||||
We need to automate this, but essentially, --build-dir will only affect
|
||||
the 'build-dir' attribute of Jamroots.
|
||||
|
||||
If Jamroot contains:
|
||||
|
||||
project foo ;
|
||||
|
||||
and --build-dir options' value if /tmp/build, then we'll act as if Jamroot
|
||||
contained:
|
||||
|
||||
project foo : build-dir /tmp/build/foo ;
|
||||
|
||||
If the 'project' rule has explicit 'build-dir':
|
||||
|
||||
project foo : build-dir bin.v2 ;
|
||||
|
||||
then with the same value of --build-dir we'd act as if Jamroot contained:
|
||||
|
||||
project foo : build-dir /tmp/build/foo/bin.v2 ;
|
||||
|
||||
We can't drop "bin.v2" because it's quite possible that the name of build dir
|
||||
have specific meaning. For example, it can be used to separate B2 V1
|
||||
and V2 build results.
|
||||
|
||||
The --build-dir option has no effect if Jamroot does not define any project id.
|
||||
Doing otherwise can lead to nasty problems if we're building two distinct
|
||||
projects (that is with two different Jamroot). They'll get the same build
|
||||
directory. Most likely, user will see the "duplicate target" error, which is
|
||||
generally confusing.
|
||||
|
||||
It is expected that any non-trivial project will have top-level "project"
|
||||
invocation with non empty id, so the above limitation is not so drastic.
|
||||
We'll emit a warning if Jamroot does not define project id, and --build-dir
|
||||
is specified.
|
||||
|
||||
Here's the exact behavior of the --build-dir option. If we're loading a
|
||||
Jamfile (either root or non-root), that declare some project id and some
|
||||
build-dir attribute, the following table gives the value of build-dir
|
||||
that will actually be used.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Root? Id Build-dir attribute Resulting build dir
|
||||
-------------------------------------------------------------------------------
|
||||
yes none * --build-dir is ignored, with warning
|
||||
yes 'foo' none /tmp/build/foo
|
||||
yes 'foo' 'bin.v2' /tmp/build/foo/bin.v2
|
||||
yes 'foo' '/tmp/bar' Error [1]
|
||||
no * none --build-dir has no effect, inherited
|
||||
build dir is used
|
||||
no * non-empty Error [2]
|
||||
-------------------------------------------------------------------------------
|
||||
[1] -- not clear what to do
|
||||
[2] -- can be made to work, but non-empty build-dir
|
||||
attribute in non-root Jamfile does not make much sense even without --build-dir
|
||||
@@ -1,317 +0,0 @@
|
||||
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 support 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 <install-source-root> 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 <warnings> and <warnings-as-errors>
|
||||
- The 'glob' rule accepts wildcards in directory names.
|
||||
- The 'stage' rule was renamed to 'install'
|
||||
(the old name still available for compatibility)
|
||||
- The <tag> 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 <library> 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 <dependency> 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 absence of feature.
|
||||
- Great improvement in response files handling
|
||||
- The 'toolset.flags' rules allows value-less feature to signify
|
||||
absence 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 <library> feature affects only linking now.
|
||||
- The <file> feature now works only for libraries.
|
||||
- Simpler syntax for "searched" libraries was added.
|
||||
- New <dependency> feature.
|
||||
|
||||
|
||||
Unix:
|
||||
The right order of static libraries on Unix is automatically
|
||||
computed.
|
||||
The <hardcode-dll-paths> 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 <unit-test> rule did not handle the <library> property (!!!!!!)
|
||||
- Don't add "bin" to the build directory explicitly specified by the user.
|
||||
- Allow <include-type> to select staged targets,
|
||||
even with <traverse-dependencies>off.
|
||||
- Includes for the form '# include <whatever>" did not work.
|
||||
- (Qt) Add paths to all dependent libs to uic command
|
||||
line, which helps if the UI files uses plugins.
|
||||
- Using <toolset-msvc:version>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 <link-runtime>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 <library> properties.
|
||||
- The gcc toolset used to ignore <threading> 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 <implicit-dependency> 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 <dependency> feature was renamed to <use>.
|
||||
- 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.
|
||||
- <tag> 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.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
Copyright 2003, 2005, 2006 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)
|
||||
|
||||
|
||||
B2 V2 release procedure.
|
||||
|
||||
[ Must be done from a Unix shell ]
|
||||
|
||||
0. Look for all issues for current milestone in the tracker. Close the fixed one,
|
||||
if not already closed. Move to a later milestone, or fix all the unfixed
|
||||
ones.
|
||||
|
||||
Make sure that "bjam --version" output is correct. Update version string if
|
||||
needed. Update bjam version and the version check is necessary.
|
||||
Check the download locations in "index.html". Check that "last modified"
|
||||
string in index.html is correct.
|
||||
|
||||
1. Make sure you don't have any local modification, and create SVN directory
|
||||
|
||||
https://svn.boost.org/svn/boost/branches/build/Milestone_X
|
||||
|
||||
Then, copy:
|
||||
|
||||
https://svn.boost.org/svn/boost/trunk/tools/build
|
||||
https://svn.boost.org/svn/boost/trunk/tools/jam
|
||||
|
||||
to that directory.
|
||||
|
||||
2. Run
|
||||
|
||||
svn co https://svn.boost.org/svn/boost/branches/build/Milestone_X boost-build
|
||||
|
||||
3. Go to "boost-build/build/v2" directory.
|
||||
|
||||
4. Run "./roll.sh". This will create "boost-build.zip" and
|
||||
"boost-build.tar.bz2" in parent directory, and also upload
|
||||
new docs to sourceforge.
|
||||
|
||||
5. Unpack "boost-build.tar.bz2", and build jam.
|
||||
|
||||
6. Go to "test" and copy "test-config-example.jam" to "test-config.jam".
|
||||
If you're not ghost, edit test-config.jam to specify all the right paths.
|
||||
Run gcc tests:
|
||||
|
||||
python test_all.py gcc --extras
|
||||
|
||||
7. Build all projects in examples-v2, using the bjam binary created at step 4.
|
||||
Note: "threading=multi" might be needed to build QT examples.
|
||||
|
||||
8. Make SF release:
|
||||
|
||||
- Go to
|
||||
https://sourceforge.net/project/admin/editpackages.php?group_id=7586
|
||||
|
||||
- Create new B2 release. Name it 2.0-mXX
|
||||
|
||||
- Upload the changelog. Be sure to turn the "Preserve my pre-formatted
|
||||
text" checkbox.
|
||||
|
||||
- Rename previously built packages to boost-build-2.0-mXX.tar.bz2
|
||||
and boost-build-2.0-mXX.zip. Upload them to the
|
||||
/incoming directory on ftp://upload.sourceforge.net
|
||||
|
||||
- Add those file to release, edit file properties.
|
||||
|
||||
- In a separate browser, verify changelog is not damaged.
|
||||
|
||||
- In a separate browser, Download the files and verify checksums.
|
||||
|
||||
- In SF file release interface, send email notice.
|
||||
|
||||
9. Announce the release, etc.
|
||||
|
||||
10. Login to SF and update the current-release redirects in
|
||||
/home/groups/b/bo/boost/htdocs/boost-build2/.htaccess.
|
||||
|
||||
11. If any issues were found during release in this document or in
|
||||
test-config-example.jam, commit those changes. The release need
|
||||
not be redone, but changes must be committed.
|
||||
|
||||
12. Set release date in changes.txt and commit.
|
||||
|
||||
Reference in New Issue
Block a user