# Boost.Context Library Build Jamfile # Copyright Oliver Kowalke 2009. # 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 common ; import feature ; import indirect ; import modules ; import os ; import toolset ; project boost/context : source-location ../src : requirements MACOSX:_XOPEN_SOURCE=600 : usage-requirements shared:BOOST_CONTEXT_DYN_LINK=1 ; local rule default_context_impl ( ) { return native ; } feature.feature context-impl : native asm : propagated ; feature.set-default context-impl : [ default_context_impl ] ; local rule default_binary_format ( ) { local tmp = elf ; if [ os.name ] = "MACOSX" { tmp = mach-o ; } if [ os.name ] = "NT" { tmp = pe ; } return $(tmp) ; } feature.feature binary-format : elf mach-o pe : propagated ; feature.set-default binary-format : [ default_binary_format ] ; local rule default_abi ( ) { local tmp = sysv ; if [ os.name ] = "NT" { tmp = ms ; } else if [ os.platform ] = "ARM" { tmp = aapcs ; } else if [ os.platform ] = "MIPS" { tmp = o32 ; } return $(tmp) ; } feature.feature abi : aapcs eabi ms n32 n64 o32 o64 sysv : propagated ; feature.set-default abi : [ default_abi ] ; if [ os.name ] = NT { CP = copy /y ; TO = $(BOOST_ROOT)\\boost\\context\\context.hpp ; } else { CP = cp ; TO = $(BOOST_ROOT)/boost/context/context.hpp ; } actions copy-context_header { $(CP) $(>) "$(TO)" } alias context_header : impl/context_fcontext_posix.hpp : aapcs arm elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : n32 mips1 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : o32 mips1 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : n64 mips1 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : o64 mips1 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : eabi 32 power elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : sysv 32 power elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : eabi 64 power elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : sysv 64 power elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : sysv 32 x86 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : sysv 32 x86 elf asm intel ; alias context_header : impl/context_fcontext_posix.hpp : sysv 64 x86 elf asm gcc ; alias context_header : impl/context_fcontext_posix.hpp : sysv 32 x86 mach-o asm darwin ; alias context_header : impl/context_fcontext_posix.hpp : sysv 64 x86 mach-o asm darwin ; alias context_header : impl/context_fcontext_posix.hpp : sysv 64 x86 elf asm intel ; alias context_header : impl/context_fcontext_windows32.hpp : ms 32 x86 pe windows asm msvc ; alias context_header : impl/context_fcontext_windows32.hpp : ms 32 x86 pe windows asm intel ; alias context_header : impl/context_fcontext_windows64.hpp : ms 64 x86 pe asm windows msvc ; alias context_header : impl/context_fcontext_windows64.hpp : ms 64 x86 pe asm windows intel ; alias context_header : impl/context_fiber.hpp : native windows ; alias context_header : impl/context_ucontext.hpp : native ; explicit context_header ; make context.hpp : context_header : @copy-context_header ; alias context_sources : protected_stack_posix.cpp asm/fcontext_arm_aapcs_elf_gas.S detail/stack_helper_posix.cpp : aapcs arm elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_mips64_n32_elf_gas.S detail/stack_helper_posix.cpp : n32 mips1 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_mips32_o32_elf_gas.S detail/stack_helper_posix.cpp : o32 mips1 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_mips64_n64_elf_gas.S detail/stack_helper_posix.cpp : n64 mips1 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_mips64_o64_elf_gas.S detail/stack_helper_posix.cpp : o64 mips1 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_ppc32_eabi_elf_gas.S detail/stack_helper_posix.cpp : eabi 32 power elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_ppc32_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 32 power elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_ppc64_eabi_elf_gas.S detail/stack_helper_posix.cpp : eabi 64 power elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_ppc64_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 64 power elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_i386_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 32 x86 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_i386_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 32 x86 elf asm intel ; alias context_sources : protected_stack_posix.cpp asm/fcontext_x86_64_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 64 x86 elf asm gcc ; alias context_sources : protected_stack_posix.cpp asm/fcontext_x86_64_sysv_elf_gas.S detail/stack_helper_posix.cpp : sysv 64 x86 elf asm intel ; alias context_sources : protected_stack_posix.cpp asm/fcontext_i386_sysv_macho_gas.S detail/stack_helper_posix.cpp : sysv 32 x86 mach-o asm darwin ; alias context_sources : protected_stack_posix.cpp asm/fcontext_x86_64_sysv_macho_gas.S detail/stack_helper_posix.cpp : sysv 64 x86 mach-o asm darwin ; alias context_sources : protected_stack_windows.cpp asm/fcontext_i386_ms_pe_masm.asm detail/stack_helper_windows.cpp : ms 32 x86 pe asm windows msvc ; alias context_sources : protected_stack_windows.cpp asm/fcontext_i386_ms_pe_masm.asm detail/stack_helper_windows.cpp : ms 32 x86 pe asm windows intel ; alias context_sources : protected_stack_windows.cpp asm/fcontext_x86_64_ms_pe_masm.asm detail/stack_helper_windows.cpp : ms 64 x86 pe asm windows msvc ; alias context_sources : protected_stack_windows.cpp asm/fcontext_x86_64_ms_pe_masm.asm detail/stack_helper_windows.cpp : ms 64 x86 pe asm windows intel ; alias context_sources : protected_stack_windows.cpp detail/stack_helper_windows.cpp : native windows ; alias context_sources : protected_stack_posix.cpp detail/stack_helper_posix.cpp : native ; explicit context_sources ; lib boost_context : context_sources : shared:BOOST_CONTEXT_DYN_LINK=1 context.hpp ; boost-install boost_context ;