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