2 # Boost.Context Library Build Jamfile
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)
15 import ../../config/checks/config : requires ;
17 feature.feature segmented-stacks : on : optional propagated composite ;
18 feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
20 feature.feature htm : tsx : optional propagated composite ;
21 feature.compose <htm>tsx : <define>BOOST_USE_TSX ;
23 feature.feature valgrind : on : optional propagated composite ;
24 feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ;
28 <target-os>windows:<define>_WIN32_WINNT=0x0601
29 <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
30 <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 <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
42 <define>BOOST_CONTEXT_SOURCE
45 <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
46 <optimization>speed:<define>BOOST_DISABLE_ASSERTS
47 <variant>release:<define>BOOST_DISABLE_ASSERTS
48 : source-location ../src
52 local rule default_binary_format ( )
55 if [ os.name ] = "NT" { tmp = pe ; }
56 else if [ os.name ] = "CYGWIN" { tmp = pe ; }
57 else if [ os.name ] = "AIX" { tmp = xcoff ; }
58 else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
62 feature.feature binary-format
69 feature.set-default binary-format : [ default_binary_format ] ;
72 local rule default_abi ( )
75 if [ os.name ] = "NT" { tmp = ms ; }
76 else if [ os.name ] = "CYGWIN" { tmp = ms ; }
77 else if [ os.platform ] = "ARM" { tmp = aapcs ; }
78 else if [ os.platform ] = "MIPS" { tmp = o32 ; }
94 feature.set-default abi : [ default_abi ] ;
97 feature.feature context-impl
104 feature.set-default context-impl : fcontext ;
105 feature.compose <context-impl>ucontext : <define>BOOST_USE_UCONTEXT ;
106 feature.compose <context-impl>winfib : <define>BOOST_USE_WINFIB ;
111 : asm/make_arm_aapcs_elf_gas.S
112 asm/jump_arm_aapcs_elf_gas.S
113 asm/ontop_arm_aapcs_elf_gas.S
122 : asm/make_arm_aapcs_elf_gas.S
123 asm/jump_arm_aapcs_elf_gas.S
124 asm/ontop_arm_aapcs_elf_gas.S
133 : asm/make_arm_aapcs_elf_gas.S
134 asm/jump_arm_aapcs_elf_gas.S
135 asm/ontop_arm_aapcs_elf_gas.S
145 : asm/make_arm_aapcs_macho_gas.S
146 asm/jump_arm_aapcs_macho_gas.S
147 asm/ontop_arm_aapcs_macho_gas.S
151 <binary-format>mach-o
156 : asm/make_arm_aapcs_macho_gas.S
157 asm/jump_arm_aapcs_macho_gas.S
158 asm/ontop_arm_aapcs_macho_gas.S
162 <binary-format>mach-o
168 : asm/make_arm_aapcs_pe_armasm.asm
169 asm/jump_arm_aapcs_pe_armasm.asm
170 asm/ontop_arm_aapcs_pe_armasm.asm
182 : asm/make_arm64_aapcs_elf_gas.S
183 asm/jump_arm64_aapcs_elf_gas.S
184 asm/ontop_arm64_aapcs_elf_gas.S
193 : asm/make_arm64_aapcs_elf_gas.S
194 asm/jump_arm64_aapcs_elf_gas.S
195 asm/ontop_arm64_aapcs_elf_gas.S
205 : asm/make_arm64_aapcs_macho_gas.S
206 asm/jump_arm64_aapcs_macho_gas.S
207 asm/ontop_arm64_aapcs_macho_gas.S
211 <binary-format>mach-o
216 : asm/make_arm64_aapcs_macho_gas.S
217 asm/jump_arm64_aapcs_macho_gas.S
218 asm/ontop_arm64_aapcs_macho_gas.S
222 <binary-format>mach-o
229 : asm/make_mips32_o32_elf_gas.S
230 asm/jump_mips32_o32_elf_gas.S
231 asm/ontop_mips32_o32_elf_gas.S
240 : asm/make_mips32_o32_elf_gas.S
241 asm/jump_mips32_o32_elf_gas.S
242 asm/ontop_mips32_o32_elf_gas.S
252 : asm/make_mips64_n64_elf_gas.S
253 asm/jump_mips64_n64_elf_gas.S
254 asm/ontop_mips64_n64_elf_gas.S
263 : asm/make_mips64_n64_elf_gas.S
264 asm/jump_mips64_n64_elf_gas.S
265 asm/ontop_mips64_n64_elf_gas.S
274 # POWERPC_32/SYSV/ELF
276 : asm/make_ppc32_sysv_elf_gas.S
277 asm/jump_ppc32_sysv_elf_gas.S
278 asm/ontop_ppc32_sysv_elf_gas.S
279 asm/tail_ppc32_sysv_elf_gas.cpp
288 : asm/make_ppc32_sysv_elf_gas.S
289 asm/jump_ppc32_sysv_elf_gas.S
290 asm/ontop_ppc32_sysv_elf_gas.S
291 asm/tail_ppc32_sysv_elf_gas.cpp
300 : asm/make_ppc32_sysv_macho_gas.S
301 asm/jump_ppc32_sysv_macho_gas.S
302 asm/ontop_ppc32_sysv_macho_gas.S
306 <binary-format>mach-o
310 #POWERPC_32/SYSV/XCOFF
312 : asm/make_ppc32_sysv_xcoff_gas.S
313 asm/jump_ppc32_sysv_xcoff_gas.S
314 asm/ontop_ppc32_sysv_xcoff_gas.S
323 : asm/make_ppc32_sysv_xcoff_gas.S
324 asm/jump_ppc32_sysv_xcoff_gas.S
325 asm/ontop_ppc32_sysv_xcoff_gas.S
334 # POWERPC_64/SYSV/ELF
336 : asm/make_ppc64_sysv_elf_gas.S
337 asm/jump_ppc64_sysv_elf_gas.S
338 asm/ontop_ppc64_sysv_elf_gas.S
347 : asm/make_ppc64_sysv_elf_gas.S
348 asm/jump_ppc64_sysv_elf_gas.S
349 asm/ontop_ppc64_sysv_elf_gas.S
357 # POWERPC_64/SYSV/MACH-O
359 : asm/make_ppc64_sysv_macho_gas.S
360 asm/jump_ppc64_sysv_macho_gas.S
361 asm/ontop_ppc64_sysv_macho_gas.S
366 <binary-format>mach-o
371 : asm/make_ppc64_sysv_macho_gas.S
372 asm/jump_ppc64_sysv_macho_gas.S
373 asm/ontop_ppc64_sysv_macho_gas.S
378 <binary-format>mach-o
382 # POWERPC_64/SYSV/XCOFF
384 : asm/make_ppc64_sysv_xcoff_gas.S
385 asm/jump_ppc64_sysv_xcoff_gas.S
386 asm/ontop_ppc64_sysv_xcoff_gas.S
395 : asm/make_ppc64_sysv_xcoff_gas.S
396 asm/jump_ppc64_sysv_xcoff_gas.S
397 asm/ontop_ppc64_sysv_xcoff_gas.S
406 # POWERPC_32_64/SYSV/MACH-O
408 : asm/make_ppc32_ppc64_sysv_macho_gas.S
409 asm/jump_ppc32_ppc64_sysv_macho_gas.S
410 asm/ontop_ppc32_ppc64_sysv_macho_gas.S
414 <binary-format>mach-o
420 : asm/make_riscv64_sysv_elf_gas.S
421 asm/jump_riscv64_sysv_elf_gas.S
422 asm/ontop_riscv64_sysv_elf_gas.S
433 : asm/make_s390x_sysv_elf_gas.S
434 asm/jump_s390x_sysv_elf_gas.S
435 asm/ontop_s390x_sysv_elf_gas.S
446 : asm/make_i386_sysv_elf_gas.S
447 asm/jump_i386_sysv_elf_gas.S
448 asm/ontop_i386_sysv_elf_gas.S
457 : asm/make_i386_sysv_elf_gas.S
458 asm/jump_i386_sysv_elf_gas.S
459 asm/ontop_i386_sysv_elf_gas.S
468 : asm/make_i386_sysv_elf_gas.S
469 asm/jump_i386_sysv_elf_gas.S
470 asm/ontop_i386_sysv_elf_gas.S
480 : asm/make_i386_sysv_macho_gas.S
481 asm/jump_i386_sysv_macho_gas.S
482 asm/ontop_i386_sysv_macho_gas.S
486 <binary-format>mach-o
491 : asm/make_i386_sysv_macho_gas.S
492 asm/jump_i386_sysv_macho_gas.S
493 asm/ontop_i386_sysv_macho_gas.S
497 <binary-format>mach-o
503 : asm/make_i386_ms_pe_gas.asm
504 asm/jump_i386_ms_pe_gas.asm
505 asm/ontop_i386_ms_pe_gas.asm
515 : asm/make_i386_ms_pe_masm.asm
516 asm/jump_i386_ms_pe_masm.asm
517 asm/ontop_i386_ms_pe_masm.asm
527 : asm/make_i386_ms_pe_gas.asm
528 asm/jump_i386_ms_pe_gas.asm
529 asm/ontop_i386_ms_pe_gas.asm
539 : asm/make_i386_ms_pe_masm.asm
540 asm/jump_i386_ms_pe_masm.asm
541 asm/ontop_i386_ms_pe_masm.asm
551 : asm/make_i386_ms_pe_masm.asm
552 asm/jump_i386_ms_pe_masm.asm
553 asm/ontop_i386_ms_pe_masm.asm
565 : asm/make_x86_64_sysv_elf_gas.S
566 asm/jump_x86_64_sysv_elf_gas.S
567 asm/ontop_x86_64_sysv_elf_gas.S
576 : asm/make_x86_64_sysv_elf_gas.S
577 asm/jump_x86_64_sysv_elf_gas.S
578 asm/ontop_x86_64_sysv_elf_gas.S
587 : asm/make_x86_64_sysv_elf_gas.S
588 asm/jump_x86_64_sysv_elf_gas.S
589 asm/ontop_x86_64_sysv_elf_gas.S
599 : asm/make_x86_64_sysv_macho_gas.S
600 asm/jump_x86_64_sysv_macho_gas.S
601 asm/ontop_x86_64_sysv_macho_gas.S
605 <binary-format>mach-o
610 : asm/make_x86_64_sysv_macho_gas.S
611 asm/jump_x86_64_sysv_macho_gas.S
612 asm/ontop_x86_64_sysv_macho_gas.S
616 <binary-format>mach-o
621 : asm/make_x86_64_sysv_macho_gas.S
622 asm/jump_x86_64_sysv_macho_gas.S
623 asm/ontop_x86_64_sysv_macho_gas.S
627 <binary-format>mach-o
633 : asm/make_x86_64_ms_pe_gas.asm
634 asm/jump_x86_64_ms_pe_gas.asm
635 asm/ontop_x86_64_ms_pe_gas.asm
645 : asm/make_x86_64_ms_pe_masm.asm
646 asm/jump_x86_64_ms_pe_masm.asm
647 asm/ontop_x86_64_ms_pe_masm.asm
657 : asm/make_x86_64_ms_pe_gas.asm
658 asm/jump_x86_64_ms_pe_gas.asm
659 asm/ontop_x86_64_ms_pe_gas.asm
669 : asm/make_x86_64_ms_pe_masm.asm
670 asm/jump_x86_64_ms_pe_masm.asm
671 asm/ontop_x86_64_ms_pe_masm.asm
681 : asm/make_x86_64_ms_pe_masm.asm
682 asm/jump_x86_64_ms_pe_masm.asm
683 asm/ontop_x86_64_ms_pe_masm.asm
694 : asm/make_x86_64_sysv_elf_gas.S
695 asm/jump_x86_64_sysv_elf_gas.S
696 asm/ontop_x86_64_sysv_elf_gas.S
705 : asm/make_x86_64_sysv_elf_gas.S
706 asm/jump_x86_64_sysv_elf_gas.S
707 asm/ontop_x86_64_sysv_elf_gas.S
716 : asm/make_x86_64_sysv_elf_gas.S
717 asm/jump_x86_64_sysv_elf_gas.S
718 asm/ontop_x86_64_sysv_elf_gas.S
728 : asm/make_i386_x86_64_sysv_macho_gas.S
729 asm/jump_i386_x86_64_sysv_macho_gas.S
730 asm/ontop_i386_x86_64_sysv_macho_gas.S
734 <binary-format>mach-o
739 : asm/make_combined_sysv_macho_gas.S
740 asm/jump_combined_sysv_macho_gas.S
741 asm/ontop_combined_sysv_macho_gas.S
743 <architecture>combined
744 <binary-format>mach-o
747 explicit asm_sources ;
753 : <context-impl>fcontext
760 : <context-impl>ucontext
761 [ requires cxx11_auto_declarations
763 cxx11_defaulted_functions
770 cxx11_rvalue_references
771 cxx11_template_aliases
773 cxx11_variadic_templates ]
780 : <context-impl>winfib
781 [ requires cxx11_auto_declarations
783 cxx11_defaulted_functions
790 cxx11_rvalue_references
791 cxx11_template_aliases
793 cxx11_variadic_templates ]
796 explicit impl_sources ;
798 obj cxx11_hdr_mutex_check : ../build/cxx11_hdr_mutex.cpp ;
799 explicit cxx11_hdr_mutex_check ;
800 local cxx11_mutex = [ check-target-builds
801 cxx11_hdr_mutex_check "C++11 mutex"
803 : <library>/boost/thread//boost_thread
806 alias stack_traits_sources
807 : windows/stack_traits.cpp
813 alias stack_traits_sources
814 : posix/stack_traits.cpp
820 explicit stack_traits_sources ;
827 boost-install boost_context ;