]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | |
2 | # Boost.Context Library Build Jamfile | |
3 | ||
4 | # Copyright Oliver Kowalke 2009. | |
5 | # Distributed under the Boost Software License, Version 1.0. | |
6 | # (See accompanying file LICENSE_1_0.txt or copy at | |
7 | # http://www.boost.org/LICENSE_1_0.txt) | |
8 | ||
9 | import common ; | |
10 | import feature ; | |
11 | import indirect ; | |
12 | import modules ; | |
13 | import os ; | |
14 | import toolset ; | |
15 | ||
16 | feature.feature segmented-stacks : on : optional propagated composite ; | |
17 | feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ; | |
18 | ||
b32b8144 FG |
19 | feature.feature htm : tsx : optional propagated composite ; |
20 | feature.compose <htm>tsx : <define>BOOST_USE_TSX ; | |
21 | ||
7c673cae FG |
22 | feature.feature valgrind : on : optional propagated composite ; |
23 | feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ; | |
24 | ||
7c673cae FG |
25 | project boost/context |
26 | : requirements | |
b32b8144 | 27 | <target-os>windows:<define>_WIN32_WINNT=0x0601 |
7c673cae FG |
28 | <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack |
29 | <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS | |
30 | <toolset>gcc,<segmented-stacks>on:<linkflags>"-static-libgcc" | |
31 | <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack | |
32 | <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS | |
33 | <toolset>clang,<segmented-stacks>on:<linkflags>"-static-libgcc" | |
34 | <toolset>intel,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT | |
35 | <toolset>intel,<link>static:<define>BOOST_CONTEXT_EXPORT= | |
36 | <toolset>msvc,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT | |
37 | <toolset>msvc,<link>static:<define>BOOST_CONTEXT_EXPORT= | |
38 | <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1 | |
39 | <define>BOOST_CONTEXT_SOURCE | |
40 | <threading>multi | |
41 | : usage-requirements | |
42 | <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1 | |
43 | <optimization>speed:<define>BOOST_DISABLE_ASSERTS | |
44 | <variant>release:<define>BOOST_DISABLE_ASSERTS | |
45 | : source-location ../src | |
46 | ; | |
47 | ||
b32b8144 | 48 | |
7c673cae FG |
49 | local rule default_binary_format ( ) |
50 | { | |
51 | local tmp = elf ; | |
52 | if [ os.name ] = "NT" { tmp = pe ; } | |
53 | else if [ os.name ] = "CYGWIN" { tmp = pe ; } | |
54 | else if [ os.name ] = "AIX" { tmp = xcoff ; } | |
55 | else if [ os.name ] = "MACOSX" { tmp = mach-o ; } | |
56 | return $(tmp) ; | |
57 | } | |
58 | ||
59 | feature.feature binary-format | |
60 | : elf | |
61 | mach-o | |
62 | pe | |
63 | xcoff | |
64 | : propagated | |
65 | ; | |
66 | feature.set-default binary-format : [ default_binary_format ] ; | |
67 | ||
68 | ||
69 | local rule default_abi ( ) | |
70 | { | |
71 | local tmp = sysv ; | |
72 | if [ os.name ] = "NT" { tmp = ms ; } | |
73 | else if [ os.name ] = "CYGWIN" { tmp = ms ; } | |
74 | else if [ os.platform ] = "ARM" { tmp = aapcs ; } | |
75 | else if [ os.platform ] = "MIPS" { tmp = o32 ; } | |
76 | return $(tmp) ; | |
77 | } | |
78 | ||
79 | feature.feature abi | |
80 | : aapcs | |
81 | eabi | |
82 | ms | |
83 | n32 | |
84 | n64 | |
85 | o32 | |
86 | o64 | |
87 | sysv | |
88 | x32 | |
89 | : propagated | |
90 | ; | |
91 | feature.set-default abi : [ default_abi ] ; | |
92 | ||
93 | ||
b32b8144 FG |
94 | feature.feature context-impl |
95 | : fcontext | |
96 | ucontext | |
97 | winfib | |
98 | : propagated | |
99 | composite | |
100 | ; | |
101 | feature.set-default context-impl : fcontext ; | |
102 | feature.compose <context-impl>ucontext : <define>BOOST_USE_UCONTEXT ; | |
103 | feature.compose <context-impl>winfib : <define>BOOST_USE_WINFIB ; | |
104 | ||
105 | ||
106 | feature.feature context-switch | |
107 | : cc | |
108 | ec | |
109 | : propagated | |
110 | composite ; | |
111 | feature.set-default context-switch : cc ; | |
112 | feature.compose <context-switch>ec : <define>BOOST_USE_EXECUTION_CONTEXT ; | |
113 | ||
114 | ||
7c673cae FG |
115 | actions gas32 |
116 | { | |
117 | cpp -x assembler-with-cpp "$(>)" | as --32 -o "$(<)" | |
118 | } | |
119 | ||
120 | actions gas64 | |
121 | { | |
122 | cpp -x assembler-with-cpp "$(>)" | as --64 -o "$(<)" | |
123 | } | |
124 | ||
125 | actions gasx32 | |
126 | { | |
127 | cpp -x assembler-with-cpp "$(>)" | as --x32 -o "$(<)" | |
128 | } | |
129 | ||
130 | actions gas | |
131 | { | |
132 | cpp -x assembler-with-cpp "$(>)" | as -o "$(<)" | |
133 | } | |
134 | ||
135 | actions armasm | |
136 | { | |
137 | armasm "$(>)" "$(<)" | |
138 | } | |
139 | ||
140 | actions masm | |
141 | { | |
142 | ml /c /Fo"$(<)" "$(>)" | |
143 | } | |
144 | ||
145 | actions masm64 | |
146 | { | |
147 | ml64 /c /Fo"$(<)" "$(>)" | |
148 | } | |
149 | ||
150 | ||
151 | rule configure ( properties * ) | |
152 | { | |
153 | local result ; | |
154 | ||
155 | # if ( ! ( <toolset>gcc in $(properties) | |
156 | # || <toolset>intel in $(properties) | |
157 | # || <toolset>msvc in $(properties) ) ) | |
158 | # { | |
159 | # result = <build>no ; | |
160 | # ECHO "toolset not supported" ; | |
161 | # } | |
162 | ||
163 | return $(result) ; | |
164 | } | |
165 | ||
166 | # ARM | |
167 | # ARM/AAPCS/ELF | |
b32b8144 | 168 | alias asm_sources |
7c673cae FG |
169 | : asm/make_arm_aapcs_elf_gas.S |
170 | asm/jump_arm_aapcs_elf_gas.S | |
171 | asm/ontop_arm_aapcs_elf_gas.S | |
172 | : <abi>aapcs | |
173 | <address-model>32 | |
174 | <architecture>arm | |
175 | <binary-format>elf | |
176 | <toolset>clang | |
177 | ; | |
178 | ||
b32b8144 | 179 | alias asm_sources |
7c673cae FG |
180 | : asm/make_arm_aapcs_elf_gas.S |
181 | asm/jump_arm_aapcs_elf_gas.S | |
182 | asm/ontop_arm_aapcs_elf_gas.S | |
183 | : <abi>aapcs | |
184 | <address-model>32 | |
185 | <architecture>arm | |
186 | <binary-format>elf | |
187 | <toolset>gcc | |
188 | ; | |
189 | ||
b32b8144 | 190 | alias asm_sources |
7c673cae FG |
191 | : asm/make_arm_aapcs_elf_gas.S |
192 | asm/jump_arm_aapcs_elf_gas.S | |
193 | asm/ontop_arm_aapcs_elf_gas.S | |
194 | : <abi>aapcs | |
195 | <address-model>32 | |
196 | <architecture>arm | |
197 | <binary-format>elf | |
198 | <toolset>qcc | |
199 | ; | |
7c673cae | 200 | |
b32b8144 FG |
201 | # ARM/AAPCS/MACH-O |
202 | alias asm_sources | |
7c673cae FG |
203 | : asm/make_arm_aapcs_macho_gas.S |
204 | asm/jump_arm_aapcs_macho_gas.S | |
205 | asm/ontop_arm_aapcs_macho_gas.S | |
206 | : <abi>aapcs | |
207 | <address-model>32 | |
208 | <architecture>arm | |
209 | <binary-format>mach-o | |
210 | <toolset>clang | |
211 | ; | |
212 | ||
b32b8144 | 213 | alias asm_sources |
7c673cae FG |
214 | : asm/make_arm_aapcs_macho_gas.S |
215 | asm/jump_arm_aapcs_macho_gas.S | |
216 | asm/ontop_arm_aapcs_macho_gas.S | |
217 | : <abi>aapcs | |
218 | <address-model>32 | |
219 | <architecture>arm | |
220 | <binary-format>mach-o | |
221 | <toolset>darwin | |
222 | ; | |
7c673cae | 223 | |
b32b8144 FG |
224 | # ARM/AAPCS/PE |
225 | alias asm_sources | |
7c673cae FG |
226 | : asm/make_arm_aapcs_pe_armasm.asm |
227 | asm/jump_arm_aapcs_pe_armasm.asm | |
228 | asm/ontop_arm_aapcs_pe_armasm.asm | |
229 | untested.cpp | |
230 | : <abi>aapcs | |
231 | <address-model>32 | |
232 | <architecture>arm | |
233 | <binary-format>pe | |
234 | <toolset>msvc | |
235 | ; | |
236 | ||
237 | # ARM64 | |
238 | # ARM64/AAPCS/ELF | |
b32b8144 | 239 | alias asm_sources |
7c673cae FG |
240 | : asm/make_arm64_aapcs_elf_gas.S |
241 | asm/jump_arm64_aapcs_elf_gas.S | |
242 | asm/ontop_arm64_aapcs_elf_gas.S | |
243 | : <abi>aapcs | |
244 | <address-model>64 | |
245 | <architecture>arm | |
246 | <binary-format>elf | |
247 | <toolset>clang | |
248 | ; | |
249 | ||
b32b8144 | 250 | alias asm_sources |
7c673cae FG |
251 | : asm/make_arm64_aapcs_elf_gas.S |
252 | asm/jump_arm64_aapcs_elf_gas.S | |
253 | asm/ontop_arm64_aapcs_elf_gas.S | |
254 | : <abi>aapcs | |
255 | <address-model>64 | |
256 | <architecture>arm | |
257 | <binary-format>elf | |
258 | <toolset>gcc | |
259 | ; | |
260 | ||
261 | # ARM64/AAPCS/MACH-O | |
b32b8144 | 262 | alias asm_sources |
7c673cae FG |
263 | : asm/make_arm64_aapcs_macho_gas.S |
264 | asm/jump_arm64_aapcs_macho_gas.S | |
265 | asm/ontop_arm64_aapcs_macho_gas.S | |
266 | : <abi>aapcs | |
267 | <address-model>64 | |
268 | <architecture>arm | |
269 | <binary-format>mach-o | |
270 | <toolset>clang | |
271 | ; | |
272 | ||
b32b8144 | 273 | alias asm_sources |
7c673cae FG |
274 | : asm/make_arm64_aapcs_macho_gas.S |
275 | asm/jump_arm64_aapcs_macho_gas.S | |
276 | asm/ontop_arm64_aapcs_macho_gas.S | |
277 | : <abi>aapcs | |
278 | <address-model>64 | |
279 | <architecture>arm | |
280 | <binary-format>mach-o | |
281 | <toolset>darwin | |
282 | ; | |
283 | ||
284 | # MIPS | |
285 | # MIPS/O32/ELF | |
b32b8144 | 286 | alias asm_sources |
7c673cae FG |
287 | : asm/make_mips32_o32_elf_gas.S |
288 | asm/jump_mips32_o32_elf_gas.S | |
289 | asm/ontop_mips32_o32_elf_gas.S | |
290 | : <abi>o32 | |
291 | <address-model>32 | |
292 | <architecture>mips1 | |
293 | <binary-format>elf | |
294 | <toolset>clang | |
295 | ; | |
296 | ||
b32b8144 | 297 | alias asm_sources |
7c673cae FG |
298 | : asm/make_mips32_o32_elf_gas.S |
299 | asm/jump_mips32_o32_elf_gas.S | |
300 | asm/ontop_mips32_o32_elf_gas.S | |
301 | : <abi>o32 | |
302 | <address-model>32 | |
303 | <architecture>mips1 | |
304 | <binary-format>elf | |
305 | <toolset>gcc | |
306 | ; | |
307 | ||
308 | # POWERPC_32 | |
309 | # POWERPC_32/SYSV/ELF | |
b32b8144 | 310 | alias asm_sources |
7c673cae FG |
311 | : asm/make_ppc32_sysv_elf_gas.S |
312 | asm/jump_ppc32_sysv_elf_gas.S | |
313 | asm/ontop_ppc32_sysv_elf_gas.S | |
314 | : <abi>sysv | |
315 | <address-model>32 | |
316 | <architecture>power | |
317 | <binary-format>elf | |
318 | <toolset>clang | |
319 | ; | |
320 | ||
b32b8144 | 321 | alias asm_sources |
7c673cae FG |
322 | : asm/make_ppc32_sysv_elf_gas.S |
323 | asm/jump_ppc32_sysv_elf_gas.S | |
324 | asm/ontop_ppc32_sysv_elf_gas.S | |
325 | : <abi>sysv | |
326 | <address-model>32 | |
327 | <architecture>power | |
328 | <binary-format>elf | |
7c673cae FG |
329 | <toolset>clang |
330 | ; | |
331 | ||
b32b8144 | 332 | alias asm_sources |
7c673cae FG |
333 | : asm/make_ppc32_sysv_macho_gas.S |
334 | asm/jump_ppc32_sysv_macho_gas.S | |
335 | asm/ontop_ppc32_sysv_macho_gas.S | |
336 | : <abi>sysv | |
337 | <address-model>32 | |
338 | <architecture>power | |
339 | <binary-format>mach-o | |
340 | <toolset>darwin | |
341 | ; | |
7c673cae | 342 | |
b32b8144 FG |
343 | #POWERPC_32/SYSV/XCOFF |
344 | alias asm_sources | |
7c673cae FG |
345 | : asm/make_ppc32_sysv_xcoff_gas.S |
346 | asm/jump_ppc32_sysv_xcoff_gas.S | |
347 | asm/ontop_ppc32_sysv_xcoff_gas.S | |
348 | : <abi>sysv | |
349 | <address-model>32 | |
350 | <architecture>power | |
351 | <binary-format>xcoff | |
352 | <toolset>clang | |
353 | ; | |
354 | ||
b32b8144 | 355 | alias asm_sources |
7c673cae FG |
356 | : asm/make_ppc32_sysv_xcoff_gas.S |
357 | asm/jump_ppc32_sysv_xcoff_gas.S | |
358 | asm/ontop_ppc32_sysv_xcoff_gas.S | |
359 | : <abi>sysv | |
360 | <address-model>32 | |
361 | <architecture>power | |
362 | <binary-format>xcoff | |
363 | <toolset>gcc | |
364 | ; | |
365 | ||
366 | # POWERPC_64 | |
367 | # POWERPC_64/SYSV/ELF | |
b32b8144 | 368 | alias asm_sources |
7c673cae FG |
369 | : asm/make_ppc64_sysv_elf_gas.S |
370 | asm/jump_ppc64_sysv_elf_gas.S | |
371 | asm/ontop_ppc64_sysv_elf_gas.S | |
372 | : <abi>sysv | |
373 | <address-model>64 | |
374 | <architecture>power | |
375 | <binary-format>elf | |
376 | <toolset>clang | |
377 | ; | |
378 | ||
b32b8144 | 379 | alias asm_sources |
7c673cae FG |
380 | : asm/make_ppc64_sysv_elf_gas.S |
381 | asm/jump_ppc64_sysv_elf_gas.S | |
382 | asm/ontop_ppc64_sysv_elf_gas.S | |
383 | : <abi>sysv | |
384 | <address-model>64 | |
385 | <architecture>power | |
386 | <binary-format>elf | |
387 | <toolset>gcc | |
388 | ; | |
7c673cae | 389 | |
b32b8144 FG |
390 | # POWERPC_64/SYSV/MACH-O |
391 | alias asm_sources | |
7c673cae FG |
392 | : asm/make_ppc64_sysv_macho_gas.S |
393 | asm/jump_ppc64_sysv_macho_gas.S | |
394 | asm/ontop_ppc64_sysv_macho_gas.S | |
395 | untested.cpp | |
396 | : <abi>sysv | |
397 | <address-model>64 | |
398 | <architecture>power | |
399 | <binary-format>mach-o | |
400 | <toolset>clang | |
401 | ; | |
402 | ||
b32b8144 | 403 | alias asm_sources |
7c673cae FG |
404 | : asm/make_ppc64_sysv_macho_gas.S |
405 | asm/jump_ppc64_sysv_macho_gas.S | |
406 | asm/ontop_ppc64_sysv_macho_gas.S | |
407 | untested.cpp | |
408 | : <abi>sysv | |
409 | <address-model>64 | |
410 | <architecture>power | |
411 | <binary-format>mach-o | |
412 | <toolset>darwin | |
413 | ; | |
7c673cae | 414 | |
b32b8144 FG |
415 | # POWERPC_64/SYSV/XCOFF |
416 | alias asm_sources | |
7c673cae FG |
417 | : asm/make_ppc64_sysv_xcoff_gas.S |
418 | asm/jump_ppc64_sysv_xcoff_gas.S | |
419 | asm/ontop_ppc64_sysv_xcoff_gas.S | |
420 | : <abi>sysv | |
421 | <address-model>64 | |
422 | <architecture>power | |
423 | <binary-format>xcoff | |
424 | <toolset>clang | |
425 | ; | |
426 | ||
b32b8144 | 427 | alias asm_sources |
7c673cae FG |
428 | : asm/make_ppc64_sysv_xcoff_gas.S |
429 | asm/jump_ppc64_sysv_xcoff_gas.S | |
430 | asm/ontop_ppc64_sysv_xcoff_gas.S | |
431 | : <abi>sysv | |
432 | <address-model>64 | |
433 | <architecture>power | |
434 | <binary-format>xcoff | |
435 | <toolset>gcc | |
436 | ; | |
437 | ||
438 | # POWERPC universal | |
439 | # POWERPC_32_64/SYSV/MACH-O | |
b32b8144 | 440 | alias asm_sources |
7c673cae FG |
441 | : asm/make_ppc32_ppc64_sysv_macho_gas.S |
442 | asm/jump_ppc32_ppc64_sysv_macho_gas.S | |
443 | asm/ontop_ppc32_ppc64_sysv_macho_gas.S | |
444 | : <abi>sysv | |
445 | <address-model>32_64 | |
446 | <architecture>power | |
447 | <binary-format>mach-o | |
448 | ; | |
449 | ||
450 | # X86 | |
451 | # X86/SYSV/ELF | |
b32b8144 | 452 | alias asm_sources |
7c673cae FG |
453 | : asm/make_i386_sysv_elf_gas.S |
454 | asm/jump_i386_sysv_elf_gas.S | |
455 | asm/ontop_i386_sysv_elf_gas.S | |
456 | : <abi>sysv | |
457 | <address-model>32 | |
458 | <architecture>x86 | |
459 | <binary-format>elf | |
460 | <toolset>clang | |
461 | ; | |
462 | ||
b32b8144 | 463 | alias asm_sources |
7c673cae FG |
464 | : asm/make_i386_sysv_elf_gas.S |
465 | asm/jump_i386_sysv_elf_gas.S | |
466 | asm/ontop_i386_sysv_elf_gas.S | |
467 | : <abi>sysv | |
468 | <address-model>32 | |
469 | <architecture>x86 | |
470 | <binary-format>elf | |
471 | <toolset>gcc | |
472 | ; | |
473 | ||
b32b8144 | 474 | alias asm_sources |
7c673cae FG |
475 | : asm/make_i386_sysv_elf_gas.S |
476 | asm/jump_i386_sysv_elf_gas.S | |
477 | asm/ontop_i386_sysv_elf_gas.S | |
478 | : <abi>sysv | |
479 | <address-model>32 | |
480 | <architecture>x86 | |
481 | <binary-format>elf | |
482 | <toolset>intel | |
483 | ; | |
7c673cae | 484 | |
b32b8144 FG |
485 | # X86/SYSV/MACH-O |
486 | alias asm_sources | |
7c673cae FG |
487 | : asm/make_i386_sysv_macho_gas.S |
488 | asm/jump_i386_sysv_macho_gas.S | |
489 | asm/ontop_i386_sysv_macho_gas.S | |
490 | : <abi>sysv | |
491 | <address-model>32 | |
492 | <architecture>x86 | |
493 | <binary-format>mach-o | |
494 | <toolset>clang | |
495 | ; | |
496 | ||
b32b8144 | 497 | alias asm_sources |
7c673cae FG |
498 | : asm/make_i386_sysv_macho_gas.S |
499 | asm/jump_i386_sysv_macho_gas.S | |
500 | asm/ontop_i386_sysv_macho_gas.S | |
501 | : <abi>sysv | |
502 | <address-model>32 | |
503 | <architecture>x86 | |
504 | <binary-format>mach-o | |
505 | <toolset>darwin | |
506 | ; | |
b32b8144 | 507 | |
7c673cae | 508 | # X86/MS/PE |
b32b8144 FG |
509 | alias asm_sources |
510 | : asm/make_i386_ms_pe_gas.asm | |
511 | asm/jump_i386_ms_pe_gas.asm | |
512 | asm/ontop_i386_ms_pe_gas.asm | |
7c673cae FG |
513 | dummy.cpp |
514 | : <abi>ms | |
515 | <address-model>32 | |
516 | <architecture>x86 | |
517 | <binary-format>pe | |
b32b8144 | 518 | <toolset>clang |
7c673cae FG |
519 | ; |
520 | ||
b32b8144 | 521 | alias asm_sources |
7c673cae FG |
522 | : asm/make_i386_ms_pe_gas.asm |
523 | asm/jump_i386_ms_pe_gas.asm | |
524 | asm/ontop_i386_ms_pe_gas.asm | |
525 | dummy.cpp | |
526 | : <abi>ms | |
527 | <address-model>32 | |
528 | <architecture>x86 | |
529 | <binary-format>pe | |
b32b8144 | 530 | <toolset>clang-win |
7c673cae FG |
531 | ; |
532 | ||
b32b8144 | 533 | alias asm_sources |
7c673cae FG |
534 | : asm/make_i386_ms_pe_gas.asm |
535 | asm/jump_i386_ms_pe_gas.asm | |
536 | asm/ontop_i386_ms_pe_gas.asm | |
537 | dummy.cpp | |
538 | : <abi>ms | |
539 | <address-model>32 | |
540 | <architecture>x86 | |
541 | <binary-format>pe | |
542 | <toolset>gcc | |
543 | ; | |
544 | ||
b32b8144 | 545 | alias asm_sources |
7c673cae FG |
546 | : asm/make_i386_ms_pe_masm.asm |
547 | asm/jump_i386_ms_pe_masm.asm | |
548 | asm/ontop_i386_ms_pe_masm.asm | |
549 | dummy.cpp | |
550 | : <abi>ms | |
551 | <address-model>32 | |
552 | <architecture>x86 | |
553 | <binary-format>pe | |
554 | <toolset>intel | |
555 | ; | |
556 | ||
b32b8144 | 557 | alias asm_sources |
7c673cae FG |
558 | : asm/make_i386_ms_pe_masm.asm |
559 | asm/jump_i386_ms_pe_masm.asm | |
560 | asm/ontop_i386_ms_pe_masm.asm | |
561 | dummy.cpp | |
562 | : <abi>ms | |
563 | <address-model>32 | |
564 | <architecture>x86 | |
565 | <binary-format>pe | |
566 | <toolset>msvc | |
567 | ; | |
568 | ||
569 | # X86_64 | |
570 | # X86_64/SYSV/ELF | |
b32b8144 | 571 | alias asm_sources |
7c673cae FG |
572 | : asm/make_x86_64_sysv_elf_gas.S |
573 | asm/jump_x86_64_sysv_elf_gas.S | |
574 | asm/ontop_x86_64_sysv_elf_gas.S | |
575 | : <abi>sysv | |
576 | <address-model>64 | |
577 | <architecture>x86 | |
578 | <binary-format>elf | |
579 | <toolset>clang | |
580 | ; | |
581 | ||
b32b8144 | 582 | alias asm_sources |
7c673cae FG |
583 | : asm/make_x86_64_sysv_elf_gas.S |
584 | asm/jump_x86_64_sysv_elf_gas.S | |
585 | asm/ontop_x86_64_sysv_elf_gas.S | |
586 | : <abi>sysv | |
587 | <address-model>64 | |
588 | <architecture>x86 | |
589 | <binary-format>elf | |
590 | <toolset>gcc | |
591 | ; | |
592 | ||
b32b8144 | 593 | alias asm_sources |
7c673cae FG |
594 | : asm/make_x86_64_sysv_elf_gas.S |
595 | asm/jump_x86_64_sysv_elf_gas.S | |
596 | asm/ontop_x86_64_sysv_elf_gas.S | |
597 | : <abi>sysv | |
598 | <address-model>64 | |
599 | <architecture>x86 | |
600 | <binary-format>elf | |
601 | <toolset>intel | |
602 | ; | |
7c673cae | 603 | |
b32b8144 FG |
604 | # X86_64/SYSV/MACH-O |
605 | alias asm_sources | |
7c673cae FG |
606 | : asm/make_x86_64_sysv_macho_gas.S |
607 | asm/jump_x86_64_sysv_macho_gas.S | |
608 | asm/ontop_x86_64_sysv_macho_gas.S | |
609 | : <abi>sysv | |
610 | <address-model>64 | |
611 | <architecture>x86 | |
612 | <binary-format>mach-o | |
613 | <toolset>clang | |
614 | ; | |
615 | ||
b32b8144 | 616 | alias asm_sources |
7c673cae FG |
617 | : asm/make_x86_64_sysv_macho_gas.S |
618 | asm/jump_x86_64_sysv_macho_gas.S | |
619 | asm/ontop_x86_64_sysv_macho_gas.S | |
620 | : <abi>sysv | |
621 | <address-model>64 | |
622 | <architecture>x86 | |
623 | <binary-format>mach-o | |
624 | <toolset>darwin | |
625 | ; | |
626 | ||
b32b8144 | 627 | alias asm_sources |
7c673cae FG |
628 | : asm/make_x86_64_sysv_macho_gas.S |
629 | asm/jump_x86_64_sysv_macho_gas.S | |
630 | asm/ontop_x86_64_sysv_macho_gas.S | |
631 | : <abi>sysv | |
632 | <address-model>64 | |
633 | <architecture>x86 | |
634 | <binary-format>mach-o | |
635 | <toolset>intel | |
636 | ; | |
b32b8144 | 637 | |
7c673cae | 638 | # X86_64/MS/PE |
b32b8144 FG |
639 | alias asm_sources |
640 | : asm/make_x86_64_ms_pe_gas.asm | |
641 | asm/jump_x86_64_ms_pe_gas.asm | |
642 | asm/ontop_x86_64_ms_pe_gas.asm | |
7c673cae FG |
643 | dummy.cpp |
644 | : <abi>ms | |
645 | <address-model>64 | |
646 | <architecture>x86 | |
647 | <binary-format>pe | |
b32b8144 | 648 | <toolset>clang |
7c673cae FG |
649 | ; |
650 | ||
b32b8144 | 651 | alias asm_sources |
7c673cae FG |
652 | : asm/make_x86_64_ms_pe_gas.asm |
653 | asm/jump_x86_64_ms_pe_gas.asm | |
654 | asm/ontop_x86_64_ms_pe_gas.asm | |
655 | dummy.cpp | |
656 | : <abi>ms | |
657 | <address-model>64 | |
658 | <architecture>x86 | |
659 | <binary-format>pe | |
b32b8144 | 660 | <toolset>clang-win |
7c673cae FG |
661 | ; |
662 | ||
b32b8144 | 663 | alias asm_sources |
7c673cae FG |
664 | : asm/make_x86_64_ms_pe_gas.asm |
665 | asm/jump_x86_64_ms_pe_gas.asm | |
666 | asm/ontop_x86_64_ms_pe_gas.asm | |
667 | dummy.cpp | |
668 | : <abi>ms | |
669 | <address-model>64 | |
670 | <architecture>x86 | |
671 | <binary-format>pe | |
672 | <toolset>gcc | |
673 | ; | |
674 | ||
b32b8144 | 675 | alias asm_sources |
7c673cae FG |
676 | : asm/make_x86_64_ms_pe_masm.asm |
677 | asm/jump_x86_64_ms_pe_masm.asm | |
678 | asm/ontop_x86_64_ms_pe_masm.asm | |
679 | dummy.cpp | |
680 | : <abi>ms | |
681 | <address-model>64 | |
682 | <architecture>x86 | |
683 | <binary-format>pe | |
684 | <toolset>intel | |
685 | ; | |
686 | ||
b32b8144 | 687 | alias asm_sources |
7c673cae FG |
688 | : asm/make_x86_64_ms_pe_masm.asm |
689 | asm/jump_x86_64_ms_pe_masm.asm | |
690 | asm/ontop_x86_64_ms_pe_masm.asm | |
691 | dummy.cpp | |
692 | : <abi>ms | |
693 | <address-model>64 | |
694 | <architecture>x86 | |
695 | <binary-format>pe | |
696 | <toolset>msvc | |
697 | ; | |
7c673cae | 698 | |
b32b8144 FG |
699 | # X86_64/SYSV/X32 |
700 | alias asm_sources | |
7c673cae FG |
701 | : asm/make_x86_64_sysv_elf_gas.S |
702 | asm/jump_x86_64_sysv_elf_gas.S | |
703 | asm/ontop_x86_64_sysv_elf_gas.S | |
704 | : <abi>x32 | |
705 | <address-model>64 | |
706 | <architecture>x86 | |
707 | <binary-format>elf | |
708 | <toolset>clang | |
709 | ; | |
710 | ||
b32b8144 | 711 | alias asm_sources |
7c673cae FG |
712 | : asm/make_x86_64_sysv_elf_gas.S |
713 | asm/jump_x86_64_sysv_elf_gas.S | |
714 | asm/ontop_x86_64_sysv_elf_gas.S | |
715 | : <abi>x32 | |
716 | <address-model>64 | |
717 | <architecture>x86 | |
718 | <binary-format>elf | |
719 | <toolset>gcc | |
720 | ; | |
721 | ||
b32b8144 | 722 | alias asm_sources |
7c673cae FG |
723 | : asm/make_x86_64_sysv_elf_gas.S |
724 | asm/jump_x86_64_sysv_elf_gas.S | |
725 | asm/ontop_x86_64_sysv_elf_gas.S | |
726 | : <abi>x32 | |
727 | <address-model>64 | |
728 | <architecture>x86 | |
729 | <binary-format>elf | |
730 | <toolset>intel | |
731 | ; | |
732 | ||
733 | #X86 universal | |
b32b8144 | 734 | alias asm_sources |
7c673cae FG |
735 | : asm/make_i386_x86_64_sysv_macho_gas.S |
736 | asm/jump_i386_x86_64_sysv_macho_gas.S | |
737 | asm/ontop_i386_x86_64_sysv_macho_gas.S | |
738 | : <abi>sysv | |
739 | <address-model>32_64 | |
740 | <architecture>x86 | |
741 | <binary-format>mach-o | |
742 | ; | |
743 | ||
744 | # COMBINED | |
b32b8144 | 745 | alias asm_sources |
7c673cae FG |
746 | : asm/make_combined_sysv_macho_gas.S |
747 | asm/jump_combined_sysv_macho_gas.S | |
748 | asm/ontop_combined_sysv_macho_gas.S | |
749 | : <abi>sysv | |
750 | <architecture>combined | |
751 | <binary-format>mach-o | |
752 | ; | |
753 | ||
b32b8144 | 754 | explicit asm_sources ; |
7c673cae | 755 | |
7c673cae | 756 | |
b32b8144 FG |
757 | # fcontext_t |
758 | alias impl_sources | |
759 | : asm_sources | |
760 | : <context-impl>fcontext | |
761 | <context-switch>cc | |
762 | ; | |
763 | ||
764 | alias impl_sources | |
765 | : asm_sources | |
766 | execution_context.cpp | |
767 | : <context-impl>fcontext | |
768 | <context-switch>ec | |
769 | ; | |
770 | ||
771 | # ucontext_t | |
772 | alias impl_sources | |
773 | : continuation.cpp | |
774 | : <context-impl>ucontext | |
775 | ; | |
776 | ||
777 | # WinFiber | |
778 | alias impl_sources | |
779 | : continuation.cpp | |
780 | : <context-impl>winfib | |
781 | ; | |
782 | ||
783 | explicit impl_sources ; | |
784 | ||
7c673cae FG |
785 | |
786 | obj cxx11_hdr_mutex_check : ../build/cxx11_hdr_mutex.cpp ; | |
787 | explicit cxx11_hdr_mutex_check ; | |
788 | local cxx11_mutex = [ check-target-builds | |
789 | cxx11_hdr_mutex_check "C++11 mutex" | |
790 | : | |
791 | : <library>/boost/thread//boost_thread | |
792 | ] ; | |
793 | ||
794 | alias stack_traits_sources | |
795 | : windows/stack_traits.cpp | |
796 | : <target-os>windows | |
797 | : | |
798 | : $(cxx11_mutex) | |
799 | ; | |
800 | ||
801 | alias stack_traits_sources | |
802 | : posix/stack_traits.cpp | |
803 | : | |
804 | : | |
805 | : $(cxx11_mutex) | |
806 | ; | |
807 | ||
808 | explicit stack_traits_sources ; | |
809 | ||
810 | ||
811 | lib boost_context | |
b32b8144 | 812 | : impl_sources |
7c673cae | 813 | stack_traits_sources |
7c673cae FG |
814 | ; |
815 | ||
816 | boost-install boost_context ; |