1# Boost.Fiber Library Build Jamfile 2 3# Copyright Oliver Kowalke 2013. 4# Distributed under the Boost Software License, Version 1.0. 5# (See accompanying file LICENSE_1_0.txt or copy at 6# http://www.boost.org/LICENSE_1_0.txt) 7 8import feature ; 9import modules ; 10import testing ; 11import toolset ; 12import ../../config/checks/config : requires ; 13 14feature.feature numa : on : optional propagated composite ; 15feature.compose <numa>on : <define>BOOST_USE_NUMA ; 16 17project boost/fiber 18 : requirements 19 <library>/boost/context//boost_context 20 <library>/boost/filesystem//boost_filesystem 21 <target-os>solaris:<linkflags>"-llgrp" 22 <target-os>windows:<define>_WIN32_WINNT=0x0601 23 <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack 24 <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS 25 <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack 26 <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS 27 <link>shared:<define>BOOST_FIBERS_DYN_LINK=1 28 <define>BOOST_FIBERS_SOURCE 29 <threading>multi 30 : usage-requirements 31 <link>shared:<define>BOOST_FIBERS_DYN_LINK=1 32 <optimization>speed:<define>BOOST_DISABLE_ASSERTS 33 <variant>release:<define>BOOST_DISABLE_ASSERTS 34 : source-location ../src 35 ; 36 37rule numa ( properties * ) 38{ 39 local result ; 40 if ( <numa>on in $(properties) ) 41 { 42 result = <numa>on ; 43 } 44 else 45 { 46 result = <build>no ; 47 } 48 return $(result) ; 49} 50 51lib boost_fiber 52 : algo/algorithm.cpp 53 algo/round_robin.cpp 54 algo/shared_work.cpp 55 algo/work_stealing.cpp 56 barrier.cpp 57 condition_variable.cpp 58 context.cpp 59 fiber.cpp 60 future.cpp 61 mutex.cpp 62 properties.cpp 63 recursive_mutex.cpp 64 recursive_timed_mutex.cpp 65 timed_mutex.cpp 66 scheduler.cpp 67 : <link>shared:<library>../../context/build//boost_context 68 [ requires cxx11_auto_declarations 69 cxx11_constexpr 70 cxx11_defaulted_functions 71 cxx11_final 72 cxx11_hdr_mutex 73 cxx11_hdr_tuple 74 cxx11_lambdas 75 cxx11_noexcept 76 cxx11_nullptr 77 cxx11_rvalue_references 78 cxx11_template_aliases 79 cxx11_thread_local 80 cxx11_variadic_templates ] 81 ; 82 83 84alias numa_sources 85 : numa/aix/pin_thread.cpp 86 numa/aix/topology.cpp 87 : <target-os>aix 88 ; 89 90alias numa_sources 91 : numa/freebsd/pin_thread.cpp 92 numa/freebsd/topology.cpp 93 : <target-os>freebsd 94 ; 95 96alias numa_sources 97 : numa/hpux/pin_thread.cpp 98 numa/hpux/topology.cpp 99 : <target-os>hpux 100 ; 101 102alias numa_sources 103 : numa/linux/pin_thread.cpp 104 numa/linux/topology.cpp 105 : <target-os>linux 106 ; 107 108alias numa_sources 109 : numa/solaris/pin_thread.cpp 110 numa/solaris/topology.cpp 111 : <target-os>solaris 112 ; 113 114alias numa_sources 115 : numa/windows/pin_thread.cpp 116 numa/windows/topology.cpp 117 : <target-os>windows 118 ; 119 120alias numa_sources 121 : numa/pin_thread.cpp 122 numa/topology.cpp 123 ; 124 125explicit numa_sources ; 126 127lib boost_fiber_numa 128 : numa_sources 129 numa/algo/work_stealing.cpp 130 : 131 <conditional>@numa 132 [ requires cxx11_auto_declarations 133 cxx11_constexpr 134 cxx11_defaulted_functions 135 cxx11_final 136 cxx11_hdr_mutex 137 cxx11_hdr_tuple 138 cxx11_lambdas 139 cxx11_noexcept 140 cxx11_nullptr 141 cxx11_rvalue_references 142 cxx11_template_aliases 143 cxx11_thread_local 144 cxx11_variadic_templates ] 145 ; 146 147 148boost-install boost_fiber boost_fiber_numa ; 149