Building stage by default, pt. 2

Hi, previously, we discussed that building the 'stage' target by default would be a good idea -- since some users forget that and don't have an easy way to get at built libraries. See: http://thread.gmane.org/gmane.comp.lib.boost.devel/182787 I've now implemented the change, taking into account the comments in that thread. In particular: - the message now uses absolute paths - the location of headers is explicitly specified Here's an example of the message that is output if you do "./bjam" in Boost root: Building C++ Boost. After the build, the headers will be located at /home/ghost/Work/Boost/boost-svn The libraries will be located at /home/ghost/Work/Boost/boost-svn/stage/lib Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree. I was considering outputting a 'summary' at the end of the build, as opposed at the beginning, but that would require some Boost.Jam changes and therefore cannot be accomplished at this point of release cycle. Anybody wishes to comment on the wording before this gets merged to release branch? - Volodya

on Sat Apr 11 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
Hi, previously, we discussed that building the 'stage' target by default would be a good idea -- since some users forget that and don't have an easy way to get at built libraries. See:
http://thread.gmane.org/gmane.comp.lib.boost.devel/182787
I've now implemented the change, taking into account the comments in that thread. In particular:
- the message now uses absolute paths - the location of headers is explicitly specified
Here's an example of the message that is output if you do "./bjam" in Boost root:
Building C++ Boost.
After the build, the headers will be located at
/home/ghost/Work/Boost/boost-svn
The libraries will be located at
/home/ghost/Work/Boost/boost-svn/stage/lib
Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree.
Makes it sound like bjam is going to delete the source tree. Try this: Now building Boost library binaries... ... build output here ... Boost library binaries built. To use the result with the headers from your source tree: * place /home/ghost/Work/Boost/boost-svn in your compiler's #include search path * place /home/ghost/Work/Boost/boost-svn/stage/lib in your linker's library search path To install library binaries and headers to a different location, so the source tree can be removed, use bjam install --prefix=<installation path>
I was considering outputting a 'summary' at the end of the build, as opposed at the beginning, but that would require some Boost.Jam changes and therefore cannot be accomplished at this point of release cycle.
hear, hear.
Anybody wishes to comment on the wording before this gets merged to release branch?
Hope it's not too late. -- Dave Abrahams BoostPro Computing http://www.boostpro.com

David Abrahams wrote:
on Sat Apr 11 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
Hi, previously, we discussed that building the 'stage' target by default would be a good idea -- since some users forget that and don't have an easy way to get at built libraries. See:
http://thread.gmane.org/gmane.comp.lib.boost.devel/182787
I've now implemented the change, taking into account the comments in that thread. In particular:
- the message now uses absolute paths - the location of headers is explicitly specified
Here's an example of the message that is output if you do "./bjam" in Boost root:
Building C++ Boost.
After the build, the headers will be located at
/home/ghost/Work/Boost/boost-svn
The libraries will be located at
/home/ghost/Work/Boost/boost-svn/stage/lib
Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree.
Makes it sound like bjam is going to delete the source tree.
Try this:
Now building Boost library binaries...
... build output here ...
Boost library binaries built. To use the result with the headers from your source tree:
* place /home/ghost/Work/Boost/boost-svn in your compiler's #include search path
* place /home/ghost/Work/Boost/boost-svn/stage/lib in your linker's library search path
To install library binaries and headers to a different location, so the source tree can be removed, use
bjam install --prefix=<installation path>
I was considering outputting a 'summary' at the end of the build, as opposed at the beginning, but that would require some Boost.Jam changes and therefore cannot be accomplished at this point of release cycle.
hear, hear.
Unfortunately, your suggestion above is still to output something at the *end*. The apparent problem is that if half of the libraries fail to build, and then we happily output explanation of what should be added to include and library paths, users might be very confused -- and might even miss "failed" messages. Ideally, we should make Boost.Jam record information about failed targets, and then say to user -- and the end of output -- which libraries failed to build -- but that's Boost.Jam change :-( So, I am not sure I can implement the above suggestion at this point. Or, am I making up non-existent problems?
Anybody wishes to comment on the wording before this gets merged to release branch?
Hope it's not too late.
It's not -- it's a pure wording change so we have time until 20th for sure, and most likely after that, too. - Volodya

Vladimir Prus wrote:
Ideally, we should make Boost.Jam record information about failed targets, and then say to user -- and the end of output -- which libraries failed to build -- but that's Boost.Jam change :-(
Could you do me the favor of adding a feature request to add support for a post build/make rule(s) to bjam? -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

Rene Rivera wrote:
Vladimir Prus wrote:
Ideally, we should make Boost.Jam record information about failed targets, and then say to user -- and the end of output -- which libraries failed to build -- but that's Boost.Jam change :-(
Could you do me the favor of adding a feature request to add support for a post build/make rule(s) to bjam?
Of course -- as soon as I draft enough of design to know what I want from bjam ;-) - Volodya

on Thu Apr 16 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
David Abrahams wrote:
Unfortunately, your suggestion above is still to output something at the *end*.
Yeah, if possible. I hadn't seen your issue with that idea when I wrote this. Regardless, the text is an improvement even if it must go at the beginning.
The apparent problem is that if half of the libraries fail to build, and then we happily output explanation of what should be added to include and library paths,
Not necessarily. I didn't specify that one way or the other.
users might be very confused -- and might even miss "failed" messages. Ideally, we should make Boost.Jam record information about failed targets, and then say to user -- and the end of output -- which libraries failed to build -- but that's Boost.Jam change :-(
It doesn't have to be. I *think* you could add that functionality to Boost.Build without bjam changes.
So, I am not sure I can implement the above suggestion at this point. Or, am I making up non-existent problems?
Well, you can definitely change the words if not the placement. -- Dave Abrahams BoostPro Computing http://www.boostpro.com

David Abrahams wrote:
on Thu Apr 16 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
users might be very confused -- and might even miss "failed" messages. Ideally, we should make Boost.Jam record information about failed targets, and then say to user -- and the end of output -- which libraries failed to build -- but that's Boost.Jam change :-(
It doesn't have to be. I *think* you could add that functionality to Boost.Build without bjam changes.
You could... But it would mean making a target+action that depends on all other targets. Which is not the nicest solution. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail
participants (3)
-
David Abrahams
-
Rene Rivera
-
Vladimir Prus