diff --git a/doc/building.html b/doc/building.html index c664ba61..94f39955 100644 --- a/doc/building.html +++ b/doc/building.html @@ -18,28 +18,35 @@
Boost.Python requires Python 2.21 or newer.
+Boost.Python requires Python 2.21 or newer.
There are two basic models for combining C++ and Python:
Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the services of a -Boost.Python library binary. The Boost Getting Started Guide -will walk you through the steps of installing one. If building -binaries from source, you might want to supply the ---with-python argument to bjam (or the ---with-libraries=python argument to configure), so only the -Boost.Python binary will be built, rather than all the Boost -binaries.
+Boost.Python library binary. +If you just want to get started quickly building and testing +Boost.Python extension modules, or embedding Python in an +executable, you don't need to worry about installing Boost.Python +binaries explicitly. These instructions use Boost.Build projects, +which will build those binaries as soon as they're needed. Your +first tests may take a little longer while you wait for +Boost.Python to build, but doing things this way will save you from +worrying about build intricacies like which library binaries to use +for a specific compiler configuration.
Note
Of course it's possible to use other build systems to @@ -84,67 +96,36 @@ Boost.Python” problems come from trying to use another build system.
If you want to use another system anyway, we suggest that you follow these instructions, and then invoke bjam with the --ofilename option to dump the build commands it executes +-a -ofilename option to dump the build commands it executes to a file, so you can see what your build system needs to do.
The Boost.Python binary comes in both static and dynamic flavors. -Take care to choose the right flavor for your -application.2
-The dynamic library is the safest and most-versatile choice:
-It might be appropriate to use the static Boost.Python library in -any of the following cases:
-If you need a regular, installation of the Boost.Python library +binaries on your system, the Boost Getting Started Guide will +walk you through the steps of installing one. If building binaries +from source, you might want to supply the --with-python +argument to bjam (or the --with-libraries=python argument +to configure), so only the Boost.Python binary will be built, +rather than all the Boost binaries.
As described in the Boost.Build reference manual, a file called user-config.jam in your home -directory7 is used to +directory7 is used to describe the build resources available to the build system. You'll need to tell it about your Python installation.
Users of Unix-Variant OSes
If you are using a unix-variant OS and you ran Boost's configure script, it may have generated a -user-config.jam for you.4 If your configure/make sequence was successful and Boost.Python binaries +user-config.jam for you.4 If your configure/make sequence was successful and Boost.Python binaries were built, your user-config.jam file is probably already correct.
If you have a fairly “standard” python installation for your platform, there's very little you need to do to describe it. Simply having
@@ -152,15 +133,31 @@ Simply having import toolset : using ; using python ; -in a user-config.jam file in your home directory7 -should be enough.6
+in a user-config.jam file in your home directory7 +should be enough.6 For more complicated setups, +see Advanced Configuration.
+Note
+You might want to pass the --debug-configuration +option to bjam the first few times you invoke it, to make +sure that Boost.Build is correctly locating all the parts of +your Python installation. If it isn't, consider passing some of +the optional Python configuration parameters detailed below.
+On the other hand, if you have several versions of Python -installed, or Python is installed in an unusual way, you may want -to supply any or all of the following optional parameters to -using python:
+If you have several versions of Python installed, or Python is +installed in an unusual way, you may want to supply any or all of +the following optional parameters to using python.
+Note that in the examples below, case and especially whitespace are significant.
when you put target-os=cygwin in your build request, it should build -with the cygwin version of python:5
+with the cygwin version of python:5@@ -270,11 +267,66 @@ bjam target-os=cygwin/python=2.4bjam target-os=cygwin toolset=gcc
If—instead of letting Boost.Build construct and link withthe right +libraries automatically—you choose to use a pre-built Boost.Python +library, you'll need to think about which one to link with. The +Boost.Python binary comes in both static and dynamic flavors. Take +care to choose the right flavor for your application.2
+The dynamic library is the safest and most-versatile choice:
+It might be appropriate to use the static Boost.Python library in +any of the following cases:
+If you are using a version of Python prior to 2.4.1 with a MinGW +prior to 3.0.0 (with binutils-2.13.90-20030111-1), you will need to +create a MinGW-compatible version of the Python library; the one +shipped with Python will only work with a Microsoft-compatible +linker. Follow the instructions in the “Non-Microsoft” section of +the “Building Extensions: Tips And Tricks” chapter in Installing +Python Modules to create libpythonXX.a, where XX +corresponds to the major and minor version numbers of your Python +installation.
| [1] | Note that although we tested earlier versions of + | ||||||||||||||||||||
| [1] | Note that although we tested earlier versions of Boost.Python with Python 2.2, and we don't think we've done anything to break compatibility, this release of Boost.Python may not have been tested with versions of Python earlier than @@ -285,7 +337,7 @@ supported. |
| [2] | Information about how to identify the + | ||||||||||||||||||||
| [2] | Information about how to identify the static and dynamic builds of Boost.Python:
|