• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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