mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			322 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			322 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# $Id$
							 | 
						||
| 
								 | 
							
								# Copyright 2006-2007 Roland Schwarz.
							 | 
						||
| 
								 | 
							
								# Copyright 2007 Anthony Williams
							 | 
						||
| 
								 | 
							
								# Copyright 2011-2012 Vicente J.Botet Escriba.
							 | 
						||
| 
								 | 
							
								# 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)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#########################################################################
							 | 
						||
| 
								 | 
							
								# The boost threading library can be built on top of different API's
							 | 
						||
| 
								 | 
							
								# Currently this is the win32 API and the pthreads API.
							 | 
						||
| 
								 | 
							
								# Pthread is native on unix variants.
							 | 
						||
| 
								 | 
							
								# To get pthread on windows you need the pthread win32 library
							 | 
						||
| 
								 | 
							
								# http://sourceware.org/pthreads-win32 which is available under LGPL.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# You need to provide the include path and lib path in the variables
							 | 
						||
| 
								 | 
							
								# PTW32_INCLUDE and PTW32_LIB respectively. You can specify these
							 | 
						||
| 
								 | 
							
								# paths in site-config.jam, user-config.jam or in the environment.
							 | 
						||
| 
								 | 
							
								# A new feature is provided to request a specific API:
							 | 
						||
| 
								 | 
							
								# <threadapi>win32 and <threadapi)pthread.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# The naming of the resulting libraries is mostly the same for the
							 | 
						||
| 
								 | 
							
								# variant native to the build platform, i.e.
							 | 
						||
| 
								 | 
							
								# boost_thread and the boost specific tagging.
							 | 
						||
| 
								 | 
							
								# For the library variant that is not native on the build platform
							 | 
						||
| 
								 | 
							
								# an additional tag is applied:
							 | 
						||
| 
								 | 
							
								# boost_thread_pthread for the pthread variant on windows, and
							 | 
						||
| 
								 | 
							
								# boost_thread_win32 for the win32 variant (likely when built on cygwin).
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# To request the pthread variant on windows, from boost root you would
							 | 
						||
| 
								 | 
							
								# say e.g:
							 | 
						||
| 
								 | 
							
								# bjam msvc-8.0 --with-thread install threadapi=pthread
							 | 
						||
| 
								 | 
							
								#########################################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import os ;
							 | 
						||
| 
								 | 
							
								import feature ;
							 | 
						||
| 
								 | 
							
								import indirect ;
							 | 
						||
| 
								 | 
							
								import path ;
							 | 
						||
| 
								 | 
							
								import configure ; 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project boost/thread
							 | 
						||
| 
								 | 
							
								    : source-location ../src
							 | 
						||
| 
								 | 
							
								    : requirements <threading>multi
							 | 
						||
| 
								 | 
							
								      #<link>static:<define>BOOST_THREAD_STATIC_LINK=1
							 | 
						||
| 
								 | 
							
								      #<link>shared:<define>BOOST_THREAD_DYN_LINK=1
							 | 
						||
| 
								 | 
							
								      <link>static:<define>BOOST_THREAD_BUILD_LIB=1
							 | 
						||
| 
								 | 
							
								      <link>shared:<define>BOOST_THREAD_BUILD_DLL=1
							 | 
						||
| 
								 | 
							
								      -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
							 | 
						||
| 
								 | 
							
								      <tag>@$(__name__).tag
							 | 
						||
| 
								 | 
							
								      <toolset>gcc:<cxxflags>-Wno-long-long
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_SYSTEM_NO_DEPRECATED
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      <library>/boost/system//boost_system
							 | 
						||
| 
								 | 
							
								       #-pedantic -ansi -std=gnu++0x -Wextra -fpermissive
							 | 
						||
| 
								 | 
							
								        <warnings>all
							 | 
						||
| 
								 | 
							
								        <toolset>gcc:<cxxflags>-Wextra
							 | 
						||
| 
								 | 
							
								        <toolset>gcc:<cxxflags>-pedantic
							 | 
						||
| 
								 | 
							
								        <toolset>gcc:<cxxflags>-Wno-long-long
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc:<cxxflags>-ansi
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc:<cxxflags>-fpermissive
							 | 
						||
| 
								 | 
							
								        <toolset>gcc-4:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        <toolset>gcc-5:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc:<cxxflags>-Wunused-local-typedefs
							 | 
						||
| 
								 | 
							
								        <toolset>gcc:<cxxflags>-Wunused-function
							 | 
						||
| 
								 | 
							
								        <toolset>gcc:<cxxflags>-Wno-unused-parameter
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-Wextra
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-pedantic
							 | 
						||
| 
								 | 
							
								        #<toolset>darwin:<cxxflags>-ansi
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-fpermissive
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-Wno-long-long
							 | 
						||
| 
								 | 
							
								        #<toolset>darwin:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        <toolset>darwin-4:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        <toolset>darwin-5:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        #<toolset>darwin:<cxxflags>-Wunused-local-typedefs
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-Wunused-function
							 | 
						||
| 
								 | 
							
								        <toolset>darwin:<cxxflags>-Wno-unused-parameter
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        #<toolset>pathscale:<cxxflags>-Wextra
							 | 
						||
| 
								 | 
							
								        <toolset>pathscale:<cxxflags>-Wno-long-long
							 | 
						||
| 
								 | 
							
								        <toolset>pathscale:<cxxflags>-pedantic
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<warnings>on
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<cxxflags>-Wextra
							 | 
						||
| 
								 | 
							
								        #<toolset>clang:<cxxflags>-ansi
							 | 
						||
| 
								 | 
							
								        #<toolset>clang:<cxxflags>-fpermissive
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<cxxflags>-Wno-long-long
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<cxxflags>-Wunused-function
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<cxxflags>-Wno-variadic-macros
							 | 
						||
| 
								 | 
							
								        <toolset>clang:<cxxflags>-Wno-unused-parameter
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.4.0:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.5.0:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.6.0:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.6.3:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.7.0:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc-mingw-4.8.0:<cxxflags>-fdiagnostics-show-option
							 | 
						||
| 
								 | 
							
								        #<toolset>gcc:<cxxflags>-Wno-missing-field-initializers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <toolset>darwin-4.6.2:<cxxflags>-Wno-delete-non-virtual-dtor
							 | 
						||
| 
								 | 
							
								        <toolset>darwin-4.7.0:<cxxflags>-Wno-delete-non-virtual-dtor
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-2.8:<cxxflags>-Wno-delete-non-virtual-dtor
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-2.8:<cxxflags>-Wno-unused-function
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-2.9:<cxxflags>-Wno-delete-non-virtual-dtor
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-2.9:<cxxflags>-Wno-unused-function
							 | 
						||
| 
								 | 
							
								        <toolset>clang-3.0:<cxxflags>-Wno-delete-non-virtual-dtor
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-3.0:<cxxflags>-Wno-unused-function
							 | 
						||
| 
								 | 
							
								        #<toolset>clang-3.0:<cxxflags>-Wno-unused-variable
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Note: Some of the remarks from the Intel compiler are disabled
							 | 
						||
| 
								 | 
							
								# remark #193: zero used for undefined preprocessing identifier "XXX"
							 | 
						||
| 
								 | 
							
								# remark #304: access control not specified ("public" by default)
							 | 
						||
| 
								 | 
							
								# remark #593: variable "XXX" was set but never used
							 | 
						||
| 
								 | 
							
								# remark #1418: external function definition with no prior declaration
							 | 
						||
| 
								 | 
							
								# remark #2415: variable "XXX" of static storage duration was declared but never referenced
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <toolset>intel:<cxxflags>-wd193,304,383,444
							 | 
						||
| 
								 | 
							
								        <toolset>intel:<cxxflags>-wd593,981
							 | 
						||
| 
								 | 
							
								        <toolset>intel:<cxxflags>-wd1418
							 | 
						||
| 
								 | 
							
								        <toolset>intel:<cxxflags>-wd2415
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <toolset>msvc:<cxxflags>/wd4100
							 | 
						||
| 
								 | 
							
								        <toolset>msvc:<cxxflags>/wd4512
							 | 
						||
| 
								 | 
							
								        <toolset>msvc:<cxxflags>/wd6246
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <target-os>windows:<define>WIN32_LEAN_AND_MEAN
							 | 
						||
| 
								 | 
							
								        <target-os>windows:<define>BOOST_USE_WINDOWS_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # : default-build <threading>multi
							 | 
						||
| 
								 | 
							
								    : usage-requirements  # pass these requirement to dependents (i.e. users)
							 | 
						||
| 
								 | 
							
								      #<link>static:<define>BOOST_THREAD_STATIC_LINK=1
							 | 
						||
| 
								 | 
							
								      #<link>shared:<define>BOOST_THREAD_DYN_LINK=1
							 | 
						||
| 
								 | 
							
								      <link>static:<define>BOOST_THREAD_BUILD_LIB=1
							 | 
						||
| 
								 | 
							
								      <link>shared:<define>BOOST_THREAD_BUILD_DLL=1
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_SYSTEM_NO_DEPRECATED
							 | 
						||
| 
								 | 
							
								      #<define>BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
							 | 
						||
| 
								 | 
							
								      <library>/boost/system//boost_system
							 | 
						||
| 
								 | 
							
								    ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								local rule default_threadapi ( )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local api = pthread ;
							 | 
						||
| 
								 | 
							
								    if [ os.name ] = "NT" { api = win32 ; }
							 | 
						||
| 
								 | 
							
								    return $(api) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								feature.feature threadapi : pthread win32 : propagated ;
							 | 
						||
| 
								 | 
							
								feature.set-default threadapi : [ default_threadapi ] ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exe has_atomic_flag_lockfree : ../build/has_atomic_flag_lockfree_test.cpp ; 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule tag ( name : type ? : property-set )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local result = $(name) ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        local api = [ $(property-set).get <threadapi> ] ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        # non native api gets additional tag
							 | 
						||
| 
								 | 
							
								        if $(api) != [ default_threadapi ] {
							 | 
						||
| 
								 | 
							
								            result = $(result)_$(api) ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # forward to the boost tagging rule
							 | 
						||
| 
								 | 
							
								    return  [ indirect.call $(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
							 | 
						||
| 
								 | 
							
								                $(result) : $(type) : $(property-set) ] ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule win32_pthread_paths ( properties * )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local result ;
							 | 
						||
| 
								 | 
							
								    local PTW32_INCLUDE ;
							 | 
						||
| 
								 | 
							
								    local PTW32_LIB ;
							 | 
						||
| 
								 | 
							
								    PTW32_INCLUDE  = [ modules.peek             : PTW32_INCLUDE ] ;
							 | 
						||
| 
								 | 
							
								    PTW32_LIB      = [ modules.peek             : PTW32_LIB     ] ;
							 | 
						||
| 
								 | 
							
								    PTW32_INCLUDE ?= [ modules.peek user-config : PTW32_INCLUDE ] ;
							 | 
						||
| 
								 | 
							
								    PTW32_LIB     ?= [ modules.peek user-config : PTW32_LIB     ] ;
							 | 
						||
| 
								 | 
							
								    PTW32_INCLUDE ?= [ modules.peek site-config : PTW32_INCLUDE ] ;
							 | 
						||
| 
								 | 
							
								    PTW32_LIB     ?= [ modules.peek site-config : PTW32_LIB     ] ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ! ( $(PTW32_INCLUDE) && $(PTW32_LIB) )
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if  ! $(.notified)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            echo "************************************************************" ;
							 | 
						||
| 
								 | 
							
								            echo "Trying to build Boost.Thread with pthread support."           ;
							 | 
						||
| 
								 | 
							
								            echo "If you need pthread you should specify the paths."            ;
							 | 
						||
| 
								 | 
							
								            echo "You can specify them in site-config.jam, user-config.jam"     ;
							 | 
						||
| 
								 | 
							
								            echo "or in the environment."                                       ;
							 | 
						||
| 
								 | 
							
								            echo "For example:"                                                 ;
							 | 
						||
| 
								 | 
							
								            echo "PTW32_INCLUDE=C:\\Program Files\\ptw32\\Pre-built2\\include"  ;
							 | 
						||
| 
								 | 
							
								            echo "PTW32_LIB=C:\\Program Files\\ptw32\\Pre-built2\\lib"          ;
							 | 
						||
| 
								 | 
							
								            echo "************************************************************" ;
							 | 
						||
| 
								 | 
							
								            .notified = true ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        local include_path = [ path.make $(PTW32_INCLUDE) ] ;
							 | 
						||
| 
								 | 
							
								        local lib_path = [ path.make $(PTW32_LIB) ] ;
							 | 
						||
| 
								 | 
							
								        local libname = pthread ;
							 | 
						||
| 
								 | 
							
								        if <toolset>msvc in $(properties)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            libname = $(libname)VC2.lib ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if <toolset>gcc in $(properties)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            libname = lib$(libname)GC2.a ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        lib_path = [ path.glob $(lib_path) : $(libname) ] ;
							 | 
						||
| 
								 | 
							
								        if ! $(lib_path)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if  ! $(.notified)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                echo "************************************************************" ;
							 | 
						||
| 
								 | 
							
								                echo "Trying to build Boost.Thread with pthread support."           ;
							 | 
						||
| 
								 | 
							
								                echo "But the library" $(libname) "could not be found in path"      ;
							 | 
						||
| 
								 | 
							
								                echo $(PTW32_LIB)                                                   ;
							 | 
						||
| 
								 | 
							
								                echo "************************************************************" ;
							 | 
						||
| 
								 | 
							
								                .notified = true ;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            result += <include>$(include_path) ;
							 | 
						||
| 
								 | 
							
								            result += <library>$(lib_path) ;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return $(result) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule usage-requirements ( properties * )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local result ;
							 | 
						||
| 
								 | 
							
								    if <threadapi>pthread in $(properties)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        result += <define>BOOST_THREAD_POSIX ;
							 | 
						||
| 
								 | 
							
								        if <target-os>windows in $(properties)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            result += [ win32_pthread_paths $(properties) ] ;
							 | 
						||
| 
								 | 
							
								            # TODO: What is for static linking? Is the <library> also needed
							 | 
						||
| 
								 | 
							
								            # in that case?
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #if ! <toolset>vacpp in $(properties) || <toolset-vacpp:version>11.1 in $(properties) || <toolset-vacpp:version>12.1.0.1 in $(properties)  || <toolset-vacpp:version>12.1 in $(properties)
							 | 
						||
| 
								 | 
							
								    #{
							 | 
						||
| 
								 | 
							
								      result += <library>/boost/chrono//boost_chrono ;
							 | 
						||
| 
								 | 
							
								    #}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return $(result) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rule requirements ( properties * )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    local result ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if <threadapi>pthread in $(properties)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        result += <define>BOOST_THREAD_POSIX ;
							 | 
						||
| 
								 | 
							
								        if <target-os>windows in $(properties)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            local paths = [ win32_pthread_paths $(properties) ] ;
							 | 
						||
| 
								 | 
							
								            if $(paths)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                result += $(paths) ;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                result = <build>no ;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        result += <define>BOOST_THREAD_DONT_USE_CHRONO ;
							 | 
						||
| 
								 | 
							
								        if ! [ configure.builds has_atomic_flag_lockfree 
							 | 
						||
| 
								 | 
							
								            : $(properties) : "lockfree boost::atomic_flag" ]  { 
							 | 
						||
| 
								 | 
							
								           result += <library>/boost/atomic//boost_atomic ; 
							 | 
						||
| 
								 | 
							
								        } 
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								        result += <define>BOOST_THREAD_USES_CHRONO ;
							 | 
						||
| 
								 | 
							
								        result += <library>/boost/chrono//boost_chrono ;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return $(result) ;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								alias thread_sources
							 | 
						||
| 
								 | 
							
								    : ## win32 sources ##
							 | 
						||
| 
								 | 
							
								      win32/thread.cpp
							 | 
						||
| 
								 | 
							
								      win32/tss_dll.cpp
							 | 
						||
| 
								 | 
							
								      win32/tss_pe.cpp
							 | 
						||
| 
								 | 
							
								      future.cpp
							 | 
						||
| 
								 | 
							
								    : ## requirements ##
							 | 
						||
| 
								 | 
							
								      <threadapi>win32
							 | 
						||
| 
								 | 
							
								    ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								alias thread_sources
							 | 
						||
| 
								 | 
							
								    : ## pthread sources ##
							 | 
						||
| 
								 | 
							
								      pthread/thread.cpp
							 | 
						||
| 
								 | 
							
								      pthread/once.cpp
							 | 
						||
| 
								 | 
							
								      future.cpp
							 | 
						||
| 
								 | 
							
								    : ## requirements ##
							 | 
						||
| 
								 | 
							
								      <threadapi>pthread
							 | 
						||
| 
								 | 
							
								    ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								explicit thread_sources ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lib boost_thread
							 | 
						||
| 
								 | 
							
								    : thread_sources
							 | 
						||
| 
								 | 
							
								    : <conditional>@requirements
							 | 
						||
| 
								 | 
							
								    :
							 | 
						||
| 
								 | 
							
								    : <link>shared:<define>BOOST_THREAD_USE_DLL=1
							 | 
						||
| 
								 | 
							
								      <link>static:<define>BOOST_THREAD_USE_LIB=1
							 | 
						||
| 
								 | 
							
								      <conditional>@usage-requirements
							 | 
						||
| 
								 | 
							
								    ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								boost-install boost_thread ;
							 |