
After seeing some posts about people having difficulties building Boost with bjam and Dave Abrahams comment about wishing to add Microsoft solution files as an alternative build option. OCI decided to add MPC (http://www.ociweb.com/products/mpc) support to Boost. Chad Elliott the creator of MPC put together the zip file in Boost Vault under Miscellaneous which contains the necessary files to add MPC support to Boost. Here is a little description of the addition. It would be great if this could be added to Boost and something similar to this description added to the getting started web page. Building Boost using bjam is straightforward and easy to use for those used to building applications with make. However, for those who have little or no exposure to make may find building Boost with bjam somewhat confusing or difficult. The MPC application can be used to provide an alternate build mechanism for the Boost libraries. MPC (http://www.ociweb.com/products/mpc) can generate makefiles and projects for various build tools (make, Visual C++ 6.0, Visual Studio 7.1, etc.) Allowing users to choose their favorite build tool increases the appeal of Boost. We have put together boost.mwc (a workspace), a set of mpc files (projects) and a simple perl based configure script that allows MPC to generate a usable workspace (with projects) to build various libraries located in Boost. This perl based configure script is used to set up various required environment variables and then runs MPC. It takes a few options (most (coicide with the existing configure shell script), one of which is the --with-toolset option that converts the Boost toolset into the corresponding MPC options. The result of building Boost with MPC will leave the user with a set of libraries located in a "lib" directory at the top of the boost directory tree. The libraries are named as they would be when built with bjam. The current state of the .mwc file and perl based configure script only allows building multi-threaded versions of the Boost libraries. This is not meant to replace bjam, just provide an alternate way of building Boost. Thanks, KevinH -- Kevin Heifner heifner @ ociweb.com http://heifner.blogspot.com Object Computing, Inc. (OCI) www.ociweb.com

I've downloaded this and thought about trying it, but like bjam, something else suddenly seemed more important ;-) Isn't this rather a sledge hammer to crack a nut for this particular problem (without in any suggesting that it isn't an excellent building tool). Surely it would be simpler to just either provide the prebuilt libraries, or a few .NET projects to do this, at least for the latest MS compiler? Paul -- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB Phone and SMS text +44 1539 561830, Mobile and SMS text +44 7714 330204 mailto: pbristow@hetp.u-net.com http://www.hetp.u-net.com/index.html http://www.hetp.u-net.com/Paul%20A%20Bristow%20info.html | -----Original Message----- | From: boost-bounces@lists.boost.org | [mailto:boost-bounces@lists.boost.org] On Behalf Of Kevin Heifner | Sent: 16 February 2006 19:12 | To: boost@lists.boost.org | Cc: Chad Elliott | Subject: [boost] MPC support for Boost <snipped>

| -----Original Message----- | From: boost-bounces@lists.boost.org | [mailto:boost-bounces@lists.boost.org] On Behalf Of David Abrahams | Sent: 17 February 2006 13:39 | To: boost@lists.boost.org | Subject: Re: [boost] MPC support for Boost | | "Paul A Bristow" <pbristow@hetp.u-net.com> writes: | Boost Consulting will be providing prebuilt binaries for MSVC++ (at | least) for Boost 1.34. | I hope to have binaries for 1.33.1 up on the site soon. Excellent! And many thanks. Paul -- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB Phone and SMS text +44 1539 561830, Mobile and SMS text +44 7714 330204 mailto: pbristow@hetp.u-net.com http://www.hetp.u-net.com/index.html http://www.hetp.u-net.com/Paul%20A%20Bristow%20info.html

Paul A Bristow wrote:
I've downloaded this and thought about trying it, but like bjam, something else suddenly seemed more important ;-)
Funny how that works. :)
Isn't this rather a sledge hammer to crack a nut for this particular problem (without in any suggesting that it isn't an excellent building tool).
I don't think so. The beauty of MPC is that it generates makefiles, MSVC++ 7.1, MSVC++ 8, etc. from one easy to maintain file. Often times no source files have to be listed. Therefore when files are added to the project all that is needed is to rerun MPC. No need to modify three, four, or more "makefiles". It is especially nice when some developers do not have access to MSVC++ or Borland or whatever, they don't have to worry about maintaining these build files. bjam provides many of these same benefits. The difference is that MPC lets everyone work in their favorite environment. Long term we hope to support bjam output as well.
Surely it would be simpler to just either provide the prebuilt libraries, or a few .NET projects to do this, at least for the latest MS compiler?
Prebuilt libraries is the easiest for people who are on the common platforms and don't wish to have their own tweaked build. MPC is targeted at those who need/wish to build themselves. KevinH -- Kevin Heifner heifner @ ociweb.com http://heifner.blogspot.com Object Computing, Inc. (OCI) www.ociweb.com

Kevin Heifner wrote:
How is this different from CMake (http://www.cmake.org/HTML/Index.html) or from QMake (http://www.trolltech.com/products/qt/qmake.html)?
The same applies to Boost.Build -- there's just one file.
Again, this is the point of Boost.Build already.
bjam provides many of these same benefits. The difference is that MPC lets everyone work in their favorite environment.
This can be more then offset by the idea to support two different build systems. If folks (specifically MSVC users) would benefit from having special files, then Boost.Build can be modified to generate those files. OTOH, I don't remember such requests on Boost.Build mailing list.
Long term we hope to support bjam output as well.
In order to support bjam output, you need to have as expressive input language as bjam's, and we already have bjam's input language. Finally, do you have a setup that can both build boost and run regression tests? If not, the it's a tricky question if binaries created by your tool will pass the same regression tests that binaries created by Boost.Build. - Volodya

Vladimir Prus wrote:
How is this different from CMake (http://www.cmake.org/HTML/Index.html) or from QMake (http://www.trolltech.com/products/qt/qmake.html)?
Its similar to CMake and QMake only simpler and more powerful.
The same applies to Boost.Build -- there's just one file.
The difference is that MPC is simpler (of course others may disagree that its simpler) and can generate platform specific build files.
If Boost.Build could generate MSVC files that would be great.
In order to support bjam output, you need to have as expressive input language as bjam's, and we already have bjam's input language.
Yes, but it could be simplified.
Step one was to be able to create the main Boost libs and get the MPC files checked into Boost CVS. If there is interest we can look into creating MPC files for the tests. We may do that anyway. I can certainly understand not wanting to maintain more than one build file. That is the main point of Boost.Build and one of the key features of MPC. Boost.Build is just missing a key feature that we at least find very useful, that is generating MSVC (and other) specific files. There was some talk of adding (*.sln,*.vcproj) files to Boost CVS. Hopefully before that was ever done, MPC files would be added instead. Thanks for the consideration, KevinH -- Kevin Heifner heifner @ ociweb.com http://heifner.blogspot.com Object Computing, Inc. (OCI) www.ociweb.com

Any chance of getting this committed as part of 1.34? Kevin Heifner wrote:
-- Kevin Heifner heifner @ ociweb.com http://heifner.blogspot.com Object Computing, Inc. (OCI) www.ociweb.com

Kevin Heifner <heifner_k@ociweb.com> writes:
This is problematic because it now means there are two parallel build descriptions that need to be maintained. One of the big reasons for introducing Boost.Build was that we were ending up with a plethora of makefiles and project files for different platforms. Also there was no guarantee that what we were testing was the same as what we were building. If you want to figure out how to get Boost.Build to generate MPC files from Jamfiles, that'd be great, but as appealing as it may seem at first, IMO simply adding a parallel build description would ultimately be detrimental. -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (4)
-
David Abrahams
-
Kevin Heifner
-
Paul A Bristow
-
Vladimir Prus