Commit Graph

12124 Commits

Author SHA1 Message Date
Vladimir Prus
27b0e53cde Further generators simplications.
1. If when generating something, we find more that one suitable generators,
   run them and more then one return something, immediately report ambiguity.
   Don't care if the produced targets are the same. This is better that
   running several generators all the time, performance wise.

2. Remove the notion of 'intermediate' virtual-targets. IIRC, they were used
   to prevent staging of RSP files, and we don't stage them anyway now.


[SVN r29491]
2005-06-09 08:12:21 +00:00
Vladimir Prus
5fab631f5d Further generators simplications.
1. If when generating something, we find more that one suitable generators,
   run them and more then one return something, immediately report ambiguity.
   Don't care if the produced targets are the same. This is better that
   running several generators all the time, performance wise.

2. Remove the notion of 'intermediate' virtual-targets. IIRC, they were used
   to prevent staging of RSP files, and we don't stage them anyway now.


[SVN r29491]
2005-06-09 08:12:21 +00:00
Vladimir Prus
bf21d96225 Don't run 'library_order' on cygwin, because test relied on gcc/Linux shlib
linking mode.


[SVN r29490]
2005-06-09 08:03:42 +00:00
Vladimir Prus
900240c47d Don't run 'library_order' on cygwin, because test relied on gcc/Linux shlib
linking mode.


[SVN r29490]
2005-06-09 08:03:42 +00:00
Dave Abrahams
d9959968a1 Fix EH feature.
[SVN r29489]
2005-06-09 02:48:32 +00:00
Dave Abrahams
775970dfdb Fix EH feature.
[SVN r29489]
2005-06-09 02:48:32 +00:00
Rene Rivera
a69279f277 Some slight cleanup of vc7 vs. vc-7_0, and msvc vs. vc-6_5.
[SVN r29487]
2005-06-09 00:52:17 +00:00
Vladimir Prus
c251de96ce Remove response files in msvc.compile.c++ action.
Relax check for msvc 6.0, so that simple "6" is matched.

Patches from Olaf Janssen.


[SVN r29477]
2005-06-08 14:38:43 +00:00
Vladimir Prus
f007a99d93 Remove response files in msvc.compile.c++ action.
Relax check for msvc 6.0, so that simple "6" is matched.

Patches from Olaf Janssen.


[SVN r29477]
2005-06-08 14:38:43 +00:00
Markus Schöpflin
838dcd5222 Added <library-path>, <library-file>, and <find-library>.
[SVN r29463]
2005-06-07 09:50:59 +00:00
Vladimir Prus
81d11bddd4 Do not hardcode binary name for output, use argv[0].
Patch from Craig Rodrigues.


[SVN r29445]
2005-06-06 12:16:26 +00:00
Vladimir Prus
ba77b030fe Do not hardcode binary name for output, use argv[0].
Patch from Craig Rodrigues.


[SVN r29445]
2005-06-06 12:16:26 +00:00
Vladimir Prus
2487ac20dc Make response files depend on their directories, so that -jN works.
Thanks to Olaf Janssen for the report.


[SVN r29442]
2005-06-06 10:21:41 +00:00
Vladimir Prus
dbc509de59 Make response files depend on their directories, so that -jN works.
Thanks to Olaf Janssen for the report.


[SVN r29442]
2005-06-06 10:21:41 +00:00
Vladimir Prus
98d0cf2b28 Don't produce incomprehensible message with --debug-configuration when
boost-build.jam could not be loaded.


[SVN r29440]
2005-06-06 07:51:18 +00:00
Vladimir Prus
b5f1e43038 Don't produce incomprehensible message with --debug-configuration when
boost-build.jam could not be loaded.


[SVN r29440]
2005-06-06 07:51:18 +00:00
Vladimir Prus
73e3efa2d8 rules.c (bindrule): When rule is not found, enter into the specified module,
not the global one.


[SVN r29439]
2005-06-06 06:29:52 +00:00
Vladimir Prus
5a4d0dafb7 rules.c (bindrule): When rule is not found, enter into the specified module,
not the global one.


[SVN r29439]
2005-06-06 06:29:52 +00:00
Vladimir Prus
684ba8fca2 Fix response files for borland. Fix "tlib doesn't work if install path has
space" problem.


[SVN r29403]
2005-06-03 12:56:30 +00:00
Vladimir Prus
b19fe4248e Fix response files for borland. Fix "tlib doesn't work if install path has
space" problem.


[SVN r29403]
2005-06-03 12:56:30 +00:00
Vladimir Prus
fe8557180c Fix response file creation. They would not be recrated if exe already
exists.


[SVN r29402]
2005-06-03 12:55:27 +00:00
Vladimir Prus
24b7a19ad2 Fix response file creation. They would not be recrated if exe already
exists.


[SVN r29402]
2005-06-03 12:55:27 +00:00
Dave Abrahams
44c5dff7eb Make response files work
[SVN r29401]
2005-06-03 12:00:35 +00:00
Dave Abrahams
ef376fe3a4 Make response files work
[SVN r29401]
2005-06-03 12:00:35 +00:00
Vladimir Prus
f1a98f8139 Fix typo
[SVN r29373]
2005-06-02 12:04:45 +00:00
Vladimir Prus
f17a9b9616 Fix typo
[SVN r29373]
2005-06-02 12:04:45 +00:00
João Abecasis
3c284b74c5 Use only 'quickbook' main target from tools/quickbook.
[SVN r29370]
2005-06-02 10:59:29 +00:00
João Abecasis
7add236044 Use only 'quickbook' main target from tools/quickbook.
[SVN r29370]
2005-06-02 10:59:29 +00:00
Vladimir Prus
2d83788eff Make sure -fPIC is added when compiling objects declared with the 'obj' rule.
[SVN r29369]
2005-06-02 09:24:24 +00:00
Vladimir Prus
ec4ad0c5b9 Make sure -fPIC is added when compiling objects declared with the 'obj' rule.
[SVN r29369]
2005-06-02 09:24:24 +00:00
Toon Knapen
2d41235e04 compiler driver for fortran on HPUX
[SVN r29368]
2005-06-02 08:34:04 +00:00
Toon Knapen
7bebc62a37 compiler driver for fortran on HPUX
[SVN r29368]
2005-06-02 08:34:04 +00:00
Vladimir Prus
402b97049a Report locations of user/site config files with --debug-configuration.
[SVN r29367]
2005-06-02 08:10:43 +00:00
Vladimir Prus
3994b92560 Report locations of user/site config files with --debug-configuration.
[SVN r29367]
2005-06-02 08:10:43 +00:00
Vladimir Prus
7fda7a55ad Add support for Whale/Dolphin parser/lexer generators.
The toolsets are not very common, but:
1. I use them.
2. I've tied to maintaining this outside V2 CVS.
3. The toolset file is small.


[SVN r29366]
2005-06-02 08:04:40 +00:00
Vladimir Prus
7da553e237 Add support for Whale/Dolphin parser/lexer generators.
The toolsets are not very common, but:
1. I use them.
2. I've tied to maintaining this outside V2 CVS.
3. The toolset file is small.


[SVN r29366]
2005-06-02 08:04:40 +00:00
Vladimir Prus
bc5d8f9abc Finally fix darwin's -fcoalesce-templates logic.
Patch from Daniel Heck.


[SVN r29365]
2005-06-02 07:46:25 +00:00
Vladimir Prus
15375bb9a2 Finally fix darwin's -fcoalesce-templates logic.
Patch from Daniel Heck.


[SVN r29365]
2005-06-02 07:46:25 +00:00
Vladimir Prus
1fd7b00814 Fix typesetting problem. There were two adjacent <unlink> elements and
docbook would render them adjacent (without any spaces), no matter what I
try. So, I've just made the first ulink into a regular text.


[SVN r29364]
2005-06-02 07:32:57 +00:00
Vladimir Prus
e204581ba3 Fix typesetting problem. There were two adjacent <unlink> elements and
docbook would render them adjacent (without any spaces), no matter what I
try. So, I've just made the first ulink into a regular text.


[SVN r29364]
2005-06-02 07:32:57 +00:00
Vladimir Prus
e6d326b210 Quote the '&' symbol.
[SVN r29363]
2005-06-02 07:28:19 +00:00
Vladimir Prus
c993a09d6f Quote the '&' symbol.
[SVN r29363]
2005-06-02 07:28:19 +00:00
Vladimir Prus
41b9672a82 Improve "linking" of libraries into static libraries.
When a library is present in sources of a static library, return it
to dependents via usage requirements, not by adding it to the list
of created targets.


[SVN r29362]
2005-06-02 07:19:11 +00:00
Vladimir Prus
3e45b39bc5 Improve "linking" of libraries into static libraries.
When a library is present in sources of a static library, return it
to dependents via usage requirements, not by adding it to the list
of created targets.


[SVN r29362]
2005-06-02 07:19:11 +00:00
Vladimir Prus
5a44f04da8 Refactor generators a bit.
* If a generator was given a source it could not handle, it used to return
  that source together with generated targets. This was nice for some use
  cases, but no very nice for others, and this behaviour could not be turned
  off. One use case where it worked bad was:

      lib plugin : plugin.cpp helper ;
      lib helper : helper.cpp ;

  On windows, 'plugin' would link to the 'import library' and pass the DLL
  target though. So, when installing 'plugin', we'd also install 'helper.dll',
  and it was not possible to do anything about it.

* If we asked generators.construct to produce sources of type CPP,
  and the selected generator produced both targets of type CPP, and of
  some other type, we'd try again to convert those other targets to CPP.
  This simply complicated the logic for no good reason.

* Most generator function had 'multiple' parameter, which function
  was long forgotten by anybody.

As a bit of history, I believe some of the above decisions were due to a
certain use case:

          CPP <------- WHL
                          \
                            WD
                          /
          CPP <------- DLP

Here, a source file is converted to two targets with one command, and each
produced file is converted to CPP. Our generators search would notice that
there are two generators for CPP: the WHL->CPP and DPL->CPP
generators. Neither is better that the other so both are tried, and produce
(CPP, DPL) and (CPP, WHL) pairs of targets. To avoid reporting an ambiguity,
we'd try to convert, DLP to CPP and WHL to CPP, do it successfully, notice
that produced targets are the same and decide that there's no ambiguity.

However, this is rather complex logic for a relatively rare case. It can
be handled by writing another WD->CPP generator that would handle
disambiguation itself.

This commit has one user-visible change. The code:

  exe a : a.cpp b ;
  obj b : b.cpp helper;
  lib helper ;

No longer works -- the 'a' target won't link to 'helper'. However, this is
pretty stange code and worked before almost by accident.


[SVN r29361]
2005-06-02 06:43:56 +00:00
Vladimir Prus
7b2749353b Refactor generators a bit.
* If a generator was given a source it could not handle, it used to return
  that source together with generated targets. This was nice for some use
  cases, but no very nice for others, and this behaviour could not be turned
  off. One use case where it worked bad was:

      lib plugin : plugin.cpp helper ;
      lib helper : helper.cpp ;

  On windows, 'plugin' would link to the 'import library' and pass the DLL
  target though. So, when installing 'plugin', we'd also install 'helper.dll',
  and it was not possible to do anything about it.

* If we asked generators.construct to produce sources of type CPP,
  and the selected generator produced both targets of type CPP, and of
  some other type, we'd try again to convert those other targets to CPP.
  This simply complicated the logic for no good reason.

* Most generator function had 'multiple' parameter, which function
  was long forgotten by anybody.

As a bit of history, I believe some of the above decisions were due to a
certain use case:

          CPP <------- WHL
                          \
                            WD
                          /
          CPP <------- DLP

Here, a source file is converted to two targets with one command, and each
produced file is converted to CPP. Our generators search would notice that
there are two generators for CPP: the WHL->CPP and DPL->CPP
generators. Neither is better that the other so both are tried, and produce
(CPP, DPL) and (CPP, WHL) pairs of targets. To avoid reporting an ambiguity,
we'd try to convert, DLP to CPP and WHL to CPP, do it successfully, notice
that produced targets are the same and decide that there's no ambiguity.

However, this is rather complex logic for a relatively rare case. It can
be handled by writing another WD->CPP generator that would handle
disambiguation itself.

This commit has one user-visible change. The code:

  exe a : a.cpp b ;
  obj b : b.cpp helper;
  lib helper ;

No longer works -- the 'a' target won't link to 'helper'. However, this is
pretty stange code and worked before almost by accident.


[SVN r29361]
2005-06-02 06:43:56 +00:00
Vladimir Prus
39ca9ea59b When manipulating BOOST_BUILD_PATH, update the value in the .ENVRION module.
Otherwise, the added path elements won't be seen when loading user-config.jam
and site-config.jam and we'll get error when those files are present only
in V2 directories.


[SVN r29360]
2005-06-02 06:22:06 +00:00
Vladimir Prus
3892b06d72 When manipulating BOOST_BUILD_PATH, update the value in the .ENVRION module.
Otherwise, the added path elements won't be seen when loading user-config.jam
and site-config.jam and we'll get error when those files are present only
in V2 directories.


[SVN r29360]
2005-06-02 06:22:06 +00:00
Vladimir Prus
d6b93aaf2e Produce a nice message when .ENVIRON module is not provided by bjam.
[SVN r29359]
2005-06-02 06:00:41 +00:00
Vladimir Prus
66e612082b Produce a nice message when .ENVIRON module is not provided by bjam.
[SVN r29359]
2005-06-02 06:00:41 +00:00