mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [section:building If and How to Build a Boost.Math Library, and its Examples and Tests]
 | |
| 
 | |
| [h4 Building a Library (shared, dynamic .dll or static .lib)]
 | |
| 
 | |
| The first thing you need to ask yourself is "Do I need to build anything at all?"
 | |
| as the bulk of this library is header only: meaning you can use it just by
 | |
| #including the necessary header(s).
 | |
| 
 | |
| For most simple uses,
 | |
| including a header (or few) is best for compile time and program size.
 | |
| 
 | |
| Refer to
 | |
| [link extern_c C99 and C++ TR1 C-style Functions]
 | |
| for pros and cons of using
 | |
| the TR1 components as opposed to the header only ones.
 | |
| 
 | |
| The ['only] time you ['need] to build the library is if you want to use the
 | |
| `extern "C"` functions declared in `<boost/math/tr1.hpp>`.  To build this
 | |
| using Boost.Build, from a commandline boost-root directory issue a command like:
 | |
| 
 | |
|    bjam toolset=gcc --with-math install
 | |
| 
 | |
| that will do the job on Linux, while:
 | |
| 
 | |
|    bjam toolset=msvc --with-math --build-type=complete stage
 | |
| 
 | |
| will work better on Windows (leaving libraries built
 | |
| in sub-folder `/stage` below your Boost root directory).
 | |
| Either way you should consult the
 | |
| [@http://www.boost.org/doc/libs/release/more/getting_started/index.html
 | |
| getting started guide] for more information.
 | |
| 
 | |
| You can also build the libraries from your favourite IDE or command line tool:
 | |
| each `extern "C"` function declared in `<boost/math/tr1.hpp>` has its own
 | |
| source file with the same name in `libs/math/src/tr1`.  Just select the
 | |
| sources corresponding to the functions you are using and build them into
 | |
| a library, or else add them directly to your project.  Note that the
 | |
| directory `libs/math/src/tr1` will need to be in your compiler's
 | |
| #include path as well as the boost-root directory
 | |
| (MSVC Tools, Options, Projects and Solutions, VC++ Directories, Include files).
 | |
| 
 | |
| [note If you are using
 | |
| a Windows compiler that supports auto-linking and you have built the sources
 | |
| yourself (or added them directly to your project) then you will need to
 | |
| prevent `<boost/math/tr1.hpp>` from trying to auto-link to the binaries
 | |
| that Boost.Build generates.  You can do this by defining either
 | |
| BOOST_MATH_NO_LIB or BOOST_ALL_NO_LIB at project level
 | |
| (so the defines get passed to each compiler invocation).
 | |
| ]
 | |
| 
 | |
| Optionally the sources in `libs/math/src/tr1` have support for using
 | |
| `libs/math/src/tr1/pch.hpp` as a precompiled header
 | |
| ['if your compiler supports precompiled headers.]  Note that normally
 | |
| this header is a do-nothing include: to activate the header so that
 | |
| it #includes everything required by all the sources you will need to
 | |
| define BOOST_BUILD_PCH_ENABLED on the command line, both when building
 | |
| the pre-compiled header and when building the sources.  Boost.Build
 | |
| will do this automatically when appropriate.
 | |
| 
 | |
| [h4 Building the Examples]
 | |
| 
 | |
| The examples are all located in `libs/math/example`, they can all
 | |
| be built without reference to any external libraries, either with
 | |
| Boost.Build using the supplied Jamfile, or from your compiler's
 | |
| command line.  The only requirement is that the Boost headers are
 | |
| in your compilers #include search path.
 | |
| 
 | |
| [h4 Building the Tests]
 | |
| 
 | |
| The tests are located in `libs/math/test` and are best built
 | |
| using Boost.Build and the supplied Jamfile.  If you plan to
 | |
| build them separately from your favourite IDE then you will
 | |
| need to add `libs/math/test` to the list of your compiler's
 | |
| search paths.
 | |
| 
 | |
| You will also need to build and link to
 | |
| the Boost.Regex library for many of the tests: this can built
 | |
| from the command line by following the
 | |
| [@http://www.boost.org/doc/libs/release/more/getting_started/index.html
 | |
| getting started guide], using a command such as:
 | |
| 
 | |
|    bjam toolset=gcc --with-regex install
 | |
| 
 | |
| or
 | |
| 
 | |
|    bjam toolset=msvc --with-regex --build-type=complete stage
 | |
| 
 | |
| depending on whether you are on Linux or Windows.
 | |
| 
 | |
| Many of the tests have optional precompiled header support
 | |
| using the header `libs/math/test/pch.hpp`.
 | |
| Note that normally
 | |
| this header is a do-nothing include: to activate the header so that
 | |
| it #includes everything required by all the sources you will need to
 | |
| define BOOST_BUILD_PCH_ENABLED on the command line, both when building
 | |
| the pre-compiled header and when building the sources.  Boost.Build
 | |
| will do this automatically when appropriate.
 | |
| 
 | |
| [endsect]
 | |
| 
 | |
| [/ building.qbk
 | |
|   Copyright 2006, 2007, 2008, 2010 John Maddock and Paul A. Bristow.
 | |
|   Distributed under the Boost Software License, Version 1.0.
 | |
|   (See accompanying file LICENSE_1_0.txt or copy at
 | |
|   http://www.boost.org/LICENSE_1_0.txt).
 | |
| ]
 |