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