mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			176 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			176 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# Copyright David Abrahams 2001-2006. 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)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import os ;
							 | 
						||
| 
								 | 
							
								import indirect ;
							 | 
						||
| 
								 | 
							
								import modules ;
							 | 
						||
| 
								 | 
							
								import feature ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import python ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if ! [ python.configured ] && ! ( --without-python in  [ modules.peek : ARGV ] )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    # Attempt default configuration of python
							 | 
						||
| 
								 | 
							
								    import toolset : using ;
							 | 
						||
| 
								 | 
							
								    using python ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ python.configured ] || ( --without-python in  [ modules.peek : ARGV ] )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    alias config-warning ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    message config-warning
							 | 
						||
| 
								 | 
							
								        : "warning: No python installation configured and autoconfiguration"
							 | 
						||
| 
								 | 
							
								        : "note: failed.  See http://www.boost.org/libs/python/doc/building.html"
							 | 
						||
| 
								 | 
							
								        : "note: for configuration instructions or pass --without-python to"
							 | 
						||
| 
								 | 
							
								        : "note: suppress this message and silently skip all Boost.Python targets"
							 | 
						||
| 
								 | 
							
								        ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule find-py3-version
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local versions = [ feature.values python ] ;
							 | 
						||
| 
								 | 
							
								    local py3ver ;
							 | 
						||
| 
								 | 
							
								    for local v in $(versions)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if $(v) >= 3.0
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            py3ver = $(v) ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return $(py3ver) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								py3-version = [ find-py3-version ] ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project boost/python
							 | 
						||
| 
								 | 
							
								  : source-location ../src
							 | 
						||
| 
								 | 
							
								  ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
							 | 
						||
| 
								 | 
							
								rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule lib_boost_python ( is-py3 ? )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lib [ cond $(is-py3) : boost_python3 : boost_python ]
							 | 
						||
| 
								 | 
							
								        : # sources
							 | 
						||
| 
								 | 
							
								        numeric.cpp
							 | 
						||
| 
								 | 
							
								        list.cpp
							 | 
						||
| 
								 | 
							
								        long.cpp
							 | 
						||
| 
								 | 
							
								        dict.cpp
							 | 
						||
| 
								 | 
							
								        tuple.cpp
							 | 
						||
| 
								 | 
							
								        str.cpp
							 | 
						||
| 
								 | 
							
								        slice.cpp
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        converter/from_python.cpp
							 | 
						||
| 
								 | 
							
								        converter/registry.cpp
							 | 
						||
| 
								 | 
							
								        converter/type_id.cpp
							 | 
						||
| 
								 | 
							
								        object/enum.cpp
							 | 
						||
| 
								 | 
							
								        object/class.cpp
							 | 
						||
| 
								 | 
							
								        object/function.cpp
							 | 
						||
| 
								 | 
							
								        object/inheritance.cpp
							 | 
						||
| 
								 | 
							
								        object/life_support.cpp
							 | 
						||
| 
								 | 
							
								        object/pickle_support.cpp
							 | 
						||
| 
								 | 
							
								        errors.cpp
							 | 
						||
| 
								 | 
							
								        module.cpp
							 | 
						||
| 
								 | 
							
								        converter/builtin_converters.cpp
							 | 
						||
| 
								 | 
							
								        converter/arg_to_python_base.cpp
							 | 
						||
| 
								 | 
							
								        object/iterator.cpp
							 | 
						||
| 
								 | 
							
								        object/stl_iterator.cpp
							 | 
						||
| 
								 | 
							
								        object_protocol.cpp
							 | 
						||
| 
								 | 
							
								        object_operators.cpp
							 | 
						||
| 
								 | 
							
								        wrapper.cpp
							 | 
						||
| 
								 | 
							
								        import.cpp
							 | 
						||
| 
								 | 
							
								        exec.cpp
							 | 
						||
| 
								 | 
							
								        object/function_doc_signature.cpp
							 | 
						||
| 
								 | 
							
								        :   # requirements
							 | 
						||
| 
								 | 
							
								            <link>static:<define>BOOST_PYTHON_STATIC_LIB 
							 | 
						||
| 
								 | 
							
								            <define>BOOST_PYTHON_SOURCE
							 | 
						||
| 
								 | 
							
								          
							 | 
						||
| 
								 | 
							
								            # On Windows, all code using Python has to link to the Python
							 | 
						||
| 
								 | 
							
								            # import library.
							 | 
						||
| 
								 | 
							
								            #
							 | 
						||
| 
								 | 
							
								            # On *nix we never link libboost_python to libpython.  When
							 | 
						||
| 
								 | 
							
								            # extending Python, all Python symbols are provided by the
							 | 
						||
| 
								 | 
							
								            # Python interpreter executable.  When embedding Python, the
							 | 
						||
| 
								 | 
							
								            # client executable is expected to explicitly link to
							 | 
						||
| 
								 | 
							
								            # /python//python (the target representing libpython) itself.
							 | 
						||
| 
								 | 
							
								            #
							 | 
						||
| 
								 | 
							
								            # python_for_extensions is a target defined by Boost.Build to
							 | 
						||
| 
								 | 
							
								            # provide the Python include paths, and on Windows, the Python
							 | 
						||
| 
								 | 
							
								            # import library, as usage requirements.
							 | 
						||
| 
								 | 
							
								            [ cond [ python.configured ] : <library>/python//python_for_extensions ]
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            # we prevent building when there is no python available
							 | 
						||
| 
								 | 
							
								            # as it's not possible anyway, and to cause dependents to
							 | 
						||
| 
								 | 
							
								            # fail to build
							 | 
						||
| 
								 | 
							
								            [ unless [ python.configured ] : <build>no ]
							 | 
						||
| 
								 | 
							
								            <dependency>config-warning
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
							 | 
						||
| 
								 | 
							
								            [ cond $(is-py3) : <python>$(py3-version) ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
							 | 
						||
| 
								 | 
							
								            <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        :   # default build
							 | 
						||
| 
								 | 
							
								            <link>shared
							 | 
						||
| 
								 | 
							
								        :   # usage requirements
							 | 
						||
| 
								 | 
							
								            <link>static:<define>BOOST_PYTHON_STATIC_LIB
							 | 
						||
| 
								 | 
							
								            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
							 | 
						||
| 
								 | 
							
								        ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule lib_boost_numpy ( is-py3 ? )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    numpy-include = [ python.numpy-include ] ;
							 | 
						||
| 
								 | 
							
								    lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
							 | 
						||
| 
								 | 
							
								        : # sources
							 | 
						||
| 
								 | 
							
								        numpy/dtype.cpp
							 | 
						||
| 
								 | 
							
								        numpy/matrix.cpp
							 | 
						||
| 
								 | 
							
								        numpy/ndarray.cpp
							 | 
						||
| 
								 | 
							
									numpy/numpy.cpp
							 | 
						||
| 
								 | 
							
									numpy/scalars.cpp
							 | 
						||
| 
								 | 
							
									numpy/ufunc.cpp
							 | 
						||
| 
								 | 
							
								        :   # requirements
							 | 
						||
| 
								 | 
							
								            [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
							 | 
						||
| 
								 | 
							
								            [ unless [ python.numpy ] : <build>no ]
							 | 
						||
| 
								 | 
							
									    <include>$(numpy-include)
							 | 
						||
| 
								 | 
							
									    <library>boost_python
							 | 
						||
| 
								 | 
							
								            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
							 | 
						||
| 
								 | 
							
								            [ cond $(is-py3) : <python>$(py3-version) ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
							 | 
						||
| 
								 | 
							
								            <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        :   # default build
							 | 
						||
| 
								 | 
							
								            <link>shared
							 | 
						||
| 
								 | 
							
								        :   # usage requirements
							 | 
						||
| 
								 | 
							
								            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
							 | 
						||
| 
								 | 
							
								        ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								libraries = boost_python ;
							 | 
						||
| 
								 | 
							
								libraries3 = boost_python3 ;
							 | 
						||
| 
								 | 
							
								if [ python.numpy ]
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    libraries += boost_numpy ;
							 | 
						||
| 
								 | 
							
								    libraries3 += boost_numpy3 ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lib_boost_python ;
							 | 
						||
| 
								 | 
							
								lib_boost_numpy ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if $(py3-version)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    lib_boost_python yes ;
							 | 
						||
| 
								 | 
							
								    lib_boost_numpy yes ;
							 | 
						||
| 
								 | 
							
								    libraries += $(libraries3) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								boost-install $(libraries) ;
							 |