#  (C) Copyright William E. Kempf 2001. Permission to copy, use, modify, sell and
#  distribute this software is granted provided this copyright notice appears
#  in all copies. This software is provided "as is" without express or implied
#  warranty, and with no claim as to its suitability for any purpose.
#
# Boost.Threads test Jamfile
#
# Declares the following targets:
#   1. test_thread, a unit test executable.
# Additional configuration variables used:
#   1. PTW32 may be used on Win32 platforms to specify that the pthreads-win32
#      library should be used instead of "native" threads. This feature is
#      mostly used for testing and it's generally recommended you use the
#      native threading libraries instead. PTW32 should be set to be a list
#      of two strings, the first specifying the installation path of the
#      pthreads-win32 library and the second specifying which library
#      variant to link against (see the pthreads-win32 documentation).
#      Example: jam -sPTW32="c:\pthreads-win32 pthreadVCE.lib"

# Declare the location of this subproject relative to the root.
subproject libs/thread/test ;

# Include threads.jam for Boost.Threads global build information.
# This greatly simplifies the Jam code needed to configure the build
# for the various Win32 build types.
SEARCH on threads.jam = $(BOOST_ROOT)/libs/thread/build ;
include threads.jam ;

# bring in rules for testing
SEARCH on testing.jam = $(BOOST_BUILD_PATH) ;
include testing.jam ;

sources = test.cpp test_thread.cpp test_mutex.cpp test_condition.cpp test_tss.cpp test_once.cpp ;

template test
    ## sources ##
    : <template>thread_base <lib>../build/boost_thread <lib>../../test/build/unit_test_framework $(threadmon)
    ## requirements ##
    :
    ## default build ##
    : debug release <runtime-link>static/dynamic
;

#######################
# Declare the Boost.Threads unit test program test_thread.

run test_thread.cpp <template>test ;
run test_mutex.cpp <template>test  ;
run test_condition.cpp <template>test ;
run test_tss.cpp <template>test ;
run test_once.cpp <template>test ;
run test_xtime.cpp <template>test ;
