Boost is a collection of templates that extend the C++ standard libraries 
(from minor improvements to STL to things that you probably didn't know C++ 
could do...). See http://www.boost.org for details. 

Boost-jam is a modified version of Perforce Jam that's used to build the Boost 
libraries (and for no other purpose--once you've built Boost, you can 
uninstall Boost-jam).

The package boost-1.29.0-4mdk.src.rpm builds 4 platform-specific and 3 noarch 
packages:
  libboost1.29-1.29.0-4mdk.XXX.rpm (shared libraries)
  libboost1.29-debug-1.29.0-4mdk.XXX.rpm (shared libraries)
  libboost1.29-devel-1.29.0-4mdk.XXX.rpm (static libraries)
  libboost1.29-debug-devel-1.29.0-4mdk.XXX.rpm (static libraries)
  libboost1.29-headers-1.29.0-4mdk.noarch.rpm (header files)
  libboost1.29-doc-1.29.0-4mdk.noarch.rpm (documentation)
  libboost1.29-examples-1.29.0-4mdk.noarch.rpm (examples)

I couldn't figure out how to get it to build both kinds of packages from one 
specfile, so you have to build it like this:
  rpmbuild -ba boost.spec
  rpmbuild -bb --target noarch boost.spec

The debug libraries are separated out into their own binary packages because 
they take up so much space (on my box, it's about 3MB for the debug libraries 
vs. 0.5MB for the release versions) and are so rarely needed.

The package boost-jam-3.1-1mdk.src.rpm just builds boost-jam-3.1-1mdk.XXX.rpm.

Boost-jam may not build on non-x86 platforms. You can download precompiled 
binaries for a few other platforms on the Boost site, so I assume it isn't 
too hard to get it to build elsewhere.

Since Boost is nearly all template code (and gcc is a good compiler), almost 
everything can be done without any compiled libraries; in other words, in 
most cases, you need the noarch packages to build applications using Boost, 
and nothing to run them.

Only the libraries built by boost-jam were included, which means the following 
were left out:
  date_time: The documentation doesn't mention building a library, and
    boost-jam skips it, and if you force it you get only a static debug
    library. However, for some uses of the date and time templates (although
    not the typical uses), you may need to compile the library yourself.
  graph: The documentation doesn't mention building this, and there's no
    boost-jam support for it. However, you will need to compile this library
    yourself if you want to use the graphviz import/export functionality in
    the templates.
  mpl: I'm not sure if anything here needs to be built, or how to do it.
  python: Only shared libraries are built; if you want static libraries,
    you'll have to build them yourself.
  test: Only people working on Boost (or new libraries to extend it) will need
    the Boost test library--and even then, you only need to compile the
    library if you want to use the preprocessed version (which may be faster).
  thread: Only static librares are built; if you want shared libraries, you'll
    have to compile them yourself.

The 1.23 RPM included the graph library and the Python static library, so if 
you're using those, don't upgrade to 1.29. This warning probably applies to 
not a single person in the world, but I thought I'd be safe.

If you manage to get boost-jam working for any of these libraries, you should 
probably submit the results to the Boost team (and let me know).

The SRPMs build for me on a mostly-clean 9.0 and a heavily-upgraded 9.1rc1, 
both x86. The binaries built on one box seem to work on the other.

The boost specfile is (very) loosely based on the RedHat boost-1.23 from 
[EMAIL PROTECTED], and the boost-jam specfile is based on the RedHat-ish 
specfile by Vladimir Prus <[EMAIL PROTECTED]>.


Reply via email to