constant BOOST_VERSION : @BOOST_VERSION@ ; constant BOOST_VERSION_ABI_TAG : @BOOST_VERSION_ABI_TAG@ ; constant BOOST_JAMROOT_MODULE : $(__name__) ; import boostcpp ; import feature ; import configure ; boostcpp.set-version $(BOOST_VERSION) ; project boost : requirements include&&"@CURRENT_INSTALLED_DIR@/include" BOOST_ALL_NO_LIB=1 @$(__name__).tag @B2_REQUIREMENTS@ ; rule boost-install ( libraries * ) { stagedir = [ option.get stagedir ] ; install stage : $(libraries) : $(stagedir)/lib ; } rule tag ( name : type ? : property-set ) { return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ; } rule python-tag ( name : type ? : property-set ) { return [ boostcpp.python-tag $(name) : $(type) : $(property-set) ] ; } if "@PORT@" != "boost-system" { use-project /boost/system : . ; lib boost_system : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_system : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_system ; use-project /boost : . ; alias system : boost_system ; } if "@PORT@" != "boost-chrono" { use-project /boost/chrono : . ; lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_chrono ; } if "@PORT@" != "boost-regex" { use-project /boost/regex : . ; lib boost_regex : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_regex : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_regex ; } if "@PORT@" != "boost-date-time" { use-project /boost/date_time : . ; lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_RELEASE_SUFFIX@" release -/boost/date_time//boost_date_time ; lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_DEBUG_SUFFIX@" debug -/boost/date_time//boost_date_time ; explicit boost_date_time ; } if "@PORT@" != "boost-thread" { use-project /boost/thread : . ; lib boost_thread : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_RELEASE_SUFFIX@" release : : /boost/date_time//boost_date_time ; lib boost_thread : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_DEBUG_SUFFIX@" debug : : /boost/date_time//boost_date_time ; explicit boost_thread ; } if "@PORT@" != "boost-timer" { use-project /boost/timer : . ; lib boost_timer : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_timer : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_timer ; } if "@PORT@" != "boost-filesystem" { use-project /boost/filesystem : . ; lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_RELEASE_SUFFIX@" release : : /boost/system//boost_system ; lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_DEBUG_SUFFIX@" debug : : /boost/system//boost_system ; explicit boost_filesystem ; } if "@PORT@" != "boost-atomic" { lib synchronization ; explicit synchronization ; exe has_synchronization_lib : "@CURRENT_INSTALLED_DIR@/share/boost-atomic/has_synchronization_lib.cpp" : synchronization ; explicit has_synchronization_lib ; rule check-synchronization-lib ( properties * ) { local result ; if windows in $(properties) { if [ configure.builds has_synchronization_lib : $(properties) : "has synchronization.lib" ] { result += synchronization ; } else { result += BOOST_ATOMIC_NO_SYNCHRONIZATION_LIB ; } } return $(result) ; } use-project /boost/atomic : . ; lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_RELEASE_SUFFIX@" release : : usage-requirements @check-synchronization-lib ; lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_DEBUG_SUFFIX@" debug : : usage-requirements @check-synchronization-lib ; explicit boost_atomic ; } if "@PORT@" != "boost-context" { feature.feature segmented-stacks : on : optional propagated composite ; feature.compose on : BOOST_USE_SEGMENTED_STACKS ; use-project /boost/context : . ; lib boost_context : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_context : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_context ; } if "@PORT@" != "boost-test" { use-project /boost/test : . ; lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_unit_test_framework ; } if "@PORT@" != "boost-serialization" { use-project /boost/serialization : . ; lib boost_serialization : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_serialization : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_serialization ; } if "@PORT@" != "boost-mpi" { use-project /boost/mpi : . ; lib boost_mpi : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_mpi@BOOST_LIB_RELEASE_SUFFIX@" release : : /boost/serialization//boost_serialization ; lib boost_mpi : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_mpi@BOOST_LIB_DEBUG_SUFFIX@" debug : : /boost/serialization//boost_serialization ; explicit boost_mpi ; } if "@PORT@" != "boost-container" { use-project /boost/container : . ; lib boost_container : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_container@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_container : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_container@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_container ; } if "@PORT@" != "boost-python" { use-project /boost/python : . ; lib boost_python : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_python@PYTHON_VERSION_TAG@@BOOST_LIB_RELEASE_SUFFIX@" release ; lib boost_python : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_python@PYTHON_VERSION_TAG@@BOOST_LIB_DEBUG_SUFFIX@" debug ; explicit boost_python ; } rule requires ( foo * ) { } rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * ) { name = boost_$(name) ; lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ; boost-install $(name) ; } use-project /boost/@PORT@ : build ; build-project build ;