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)
16 feature.feature segmented-stacks : on : optional propagated composite ;
17 feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
19 feature.feature htm : tsx : optional propagated composite ;
20 feature.compose <htm>tsx : <define>BOOST_USE_TSX ;
22 feature.feature valgrind : on : optional propagated composite ;
23 feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ;
27 <target-os>windows:<define>_WIN32_WINNT=0x0601
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
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
49 local rule default_binary_format ( )
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 ; }
59 feature.feature binary-format
66 feature.set-default binary-format : [ default_binary_format ] ;
69 local rule default_abi ( )
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 ; }
91 feature.set-default abi : [ default_abi ] ;
94 feature.feature context-impl
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 ;
106 feature.feature context-switch
111 feature.set-default context-switch : cc ;
112 feature.compose <context-switch>ec : <define>BOOST_USE_EXECUTION_CONTEXT ;
117 cpp -x assembler-with-cpp "$(>)" | as --32 -o "$(<)"
122 cpp -x assembler-with-cpp "$(>)" | as --64 -o "$(<)"
127 cpp -x assembler-with-cpp "$(>)" | as --x32 -o "$(<)"
132 cpp -x assembler-with-cpp "$(>)" | as -o "$(<)"
142 ml /c /Fo"$(<)" "$(>)"
147 ml64 /c /Fo"$(<)" "$(>)"
151 rule configure ( properties * )
155 # if ( ! ( <toolset>gcc in $(properties)
156 # || <toolset>intel in $(properties)
157 # || <toolset>msvc in $(properties) ) )
159 # result = <build>no ;
160 # ECHO "toolset not supported" ;
169 : asm/make_arm_aapcs_elf_gas.S
170 asm/jump_arm_aapcs_elf_gas.S
171 asm/ontop_arm_aapcs_elf_gas.S
180 : asm/make_arm_aapcs_elf_gas.S
181 asm/jump_arm_aapcs_elf_gas.S
182 asm/ontop_arm_aapcs_elf_gas.S
191 : asm/make_arm_aapcs_elf_gas.S
192 asm/jump_arm_aapcs_elf_gas.S
193 asm/ontop_arm_aapcs_elf_gas.S
203 : asm/make_arm_aapcs_macho_gas.S
204 asm/jump_arm_aapcs_macho_gas.S
205 asm/ontop_arm_aapcs_macho_gas.S
209 <binary-format>mach-o
214 : asm/make_arm_aapcs_macho_gas.S
215 asm/jump_arm_aapcs_macho_gas.S
216 asm/ontop_arm_aapcs_macho_gas.S
220 <binary-format>mach-o
226 : asm/make_arm_aapcs_pe_armasm.asm
227 asm/jump_arm_aapcs_pe_armasm.asm
228 asm/ontop_arm_aapcs_pe_armasm.asm
240 : asm/make_arm64_aapcs_elf_gas.S
241 asm/jump_arm64_aapcs_elf_gas.S
242 asm/ontop_arm64_aapcs_elf_gas.S
251 : asm/make_arm64_aapcs_elf_gas.S
252 asm/jump_arm64_aapcs_elf_gas.S
253 asm/ontop_arm64_aapcs_elf_gas.S
263 : asm/make_arm64_aapcs_macho_gas.S
264 asm/jump_arm64_aapcs_macho_gas.S
265 asm/ontop_arm64_aapcs_macho_gas.S
269 <binary-format>mach-o
274 : asm/make_arm64_aapcs_macho_gas.S
275 asm/jump_arm64_aapcs_macho_gas.S
276 asm/ontop_arm64_aapcs_macho_gas.S
280 <binary-format>mach-o
287 : asm/make_mips32_o32_elf_gas.S
288 asm/jump_mips32_o32_elf_gas.S
289 asm/ontop_mips32_o32_elf_gas.S
298 : asm/make_mips32_o32_elf_gas.S
299 asm/jump_mips32_o32_elf_gas.S
300 asm/ontop_mips32_o32_elf_gas.S
309 # POWERPC_32/SYSV/ELF
311 : asm/make_ppc32_sysv_elf_gas.S
312 asm/jump_ppc32_sysv_elf_gas.S
313 asm/ontop_ppc32_sysv_elf_gas.S
322 : asm/make_ppc32_sysv_elf_gas.S
323 asm/jump_ppc32_sysv_elf_gas.S
324 asm/ontop_ppc32_sysv_elf_gas.S
333 : asm/make_ppc32_sysv_macho_gas.S
334 asm/jump_ppc32_sysv_macho_gas.S
335 asm/ontop_ppc32_sysv_macho_gas.S
339 <binary-format>mach-o
343 #POWERPC_32/SYSV/XCOFF
345 : asm/make_ppc32_sysv_xcoff_gas.S
346 asm/jump_ppc32_sysv_xcoff_gas.S
347 asm/ontop_ppc32_sysv_xcoff_gas.S
356 : asm/make_ppc32_sysv_xcoff_gas.S
357 asm/jump_ppc32_sysv_xcoff_gas.S
358 asm/ontop_ppc32_sysv_xcoff_gas.S
367 # POWERPC_64/SYSV/ELF
369 : asm/make_ppc64_sysv_elf_gas.S
370 asm/jump_ppc64_sysv_elf_gas.S
371 asm/ontop_ppc64_sysv_elf_gas.S
380 : asm/make_ppc64_sysv_elf_gas.S
381 asm/jump_ppc64_sysv_elf_gas.S
382 asm/ontop_ppc64_sysv_elf_gas.S
390 # POWERPC_64/SYSV/MACH-O
392 : asm/make_ppc64_sysv_macho_gas.S
393 asm/jump_ppc64_sysv_macho_gas.S
394 asm/ontop_ppc64_sysv_macho_gas.S
399 <binary-format>mach-o
404 : asm/make_ppc64_sysv_macho_gas.S
405 asm/jump_ppc64_sysv_macho_gas.S
406 asm/ontop_ppc64_sysv_macho_gas.S
411 <binary-format>mach-o
415 # POWERPC_64/SYSV/XCOFF
417 : asm/make_ppc64_sysv_xcoff_gas.S
418 asm/jump_ppc64_sysv_xcoff_gas.S
419 asm/ontop_ppc64_sysv_xcoff_gas.S
428 : asm/make_ppc64_sysv_xcoff_gas.S
429 asm/jump_ppc64_sysv_xcoff_gas.S
430 asm/ontop_ppc64_sysv_xcoff_gas.S
439 # POWERPC_32_64/SYSV/MACH-O
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
447 <binary-format>mach-o
453 : asm/make_i386_sysv_elf_gas.S
454 asm/jump_i386_sysv_elf_gas.S
455 asm/ontop_i386_sysv_elf_gas.S
464 : asm/make_i386_sysv_elf_gas.S
465 asm/jump_i386_sysv_elf_gas.S
466 asm/ontop_i386_sysv_elf_gas.S
475 : asm/make_i386_sysv_elf_gas.S
476 asm/jump_i386_sysv_elf_gas.S
477 asm/ontop_i386_sysv_elf_gas.S
487 : asm/make_i386_sysv_macho_gas.S
488 asm/jump_i386_sysv_macho_gas.S
489 asm/ontop_i386_sysv_macho_gas.S
493 <binary-format>mach-o
498 : asm/make_i386_sysv_macho_gas.S
499 asm/jump_i386_sysv_macho_gas.S
500 asm/ontop_i386_sysv_macho_gas.S
504 <binary-format>mach-o
510 : asm/make_i386_ms_pe_gas.asm
511 asm/jump_i386_ms_pe_gas.asm
512 asm/ontop_i386_ms_pe_gas.asm
522 : asm/make_i386_ms_pe_gas.asm
523 asm/jump_i386_ms_pe_gas.asm
524 asm/ontop_i386_ms_pe_gas.asm
534 : asm/make_i386_ms_pe_gas.asm
535 asm/jump_i386_ms_pe_gas.asm
536 asm/ontop_i386_ms_pe_gas.asm
546 : asm/make_i386_ms_pe_masm.asm
547 asm/jump_i386_ms_pe_masm.asm
548 asm/ontop_i386_ms_pe_masm.asm
558 : asm/make_i386_ms_pe_masm.asm
559 asm/jump_i386_ms_pe_masm.asm
560 asm/ontop_i386_ms_pe_masm.asm
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
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
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
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
612 <binary-format>mach-o
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
623 <binary-format>mach-o
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
634 <binary-format>mach-o
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
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
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
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
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
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
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
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
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
741 <binary-format>mach-o
746 : asm/make_combined_sysv_macho_gas.S
747 asm/jump_combined_sysv_macho_gas.S
748 asm/ontop_combined_sysv_macho_gas.S
750 <architecture>combined
751 <binary-format>mach-o
754 explicit asm_sources ;
760 : <context-impl>fcontext
766 execution_context.cpp
767 : <context-impl>fcontext
774 : <context-impl>ucontext
780 : <context-impl>winfib
783 explicit impl_sources ;
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"
791 : <library>/boost/thread//boost_thread
794 alias stack_traits_sources
795 : windows/stack_traits.cpp
801 alias stack_traits_sources
802 : posix/stack_traits.cpp
808 explicit stack_traits_sources ;
816 boost-install boost_context ;