# copyright John Maddock 2003 subproject libs/regex/build ; SOURCES = c_regex_traits c_regex_traits_common cpp_regex_traits cregex fileiter posix_api regex regex_debug regex_synch w32_regex_traits wide_posix_api instances winstances ; lib boost_regex : ../src/$(SOURCES).cpp : $(BOOST_ROOT) BOOST_REGEX_NO_LIB=1 BOOST_REGEX_STATIC_LINK=1 $(SOURCES).cpp : debug release ; dll boost_regex : ../src/$(SOURCES).cpp : $(BOOST_ROOT) BOOST_RE_BUILD_DLL=1 dynamic $(SOURCES).cpp : debug release ; if $(NT) { # on NT we use the name mangling scheme defined in # boost/regex/config/regex_library_include.hpp : rule boost-regex-stage-tag ( toolset variant : properties * ) { local lib-thread-opt = s ; if multi in $(properties) { lib-thread-opt = m ; } local lib-rt-opt = s ; if dynamic in $(properties) { lib-rt-opt = d ; } local lib-debug-opt = "" ; if [ MATCH .*(debug).* : $(variant) ] { lib-debug-opt = d ; } local lib-toolset = $(toolset) ; local warning-var = regex.$(toolset)-warning-issued ; local warning ; switch $(toolset) { case borland : if ! ( BORLAND_VERSION) in 4 5 6 ) { BORLAND_VERSION = 6 ; # chose default version warning = "BORLAND_VERSION not set to 4, 5, or 6: staged Boost.Regex library will be named appropriately for version" $(BORLAND_VERSION) ; } lib-toolset = bcb$(BORLAND_VERSION) ; case msvc : warning = "msvc toolset builds Boost.Regex library for vc6; use vc7 or vc7.1 toolsets for other versions" ; lib-toolset = vc6 ; if dynamic in $(properties) { lib-thread-opt = m ; } case msvc-stlport : warning = "msvc-stlport toolset only builds Boost.Regex library for use with vc6" ; lib-toolset = vc6-stlport ; if debug in $(properties) { lib-debug-opt = dd ; } if dynamic in $(properties) { lib-thread-opt = m ; } case vc7 : warning = "vc7 toolset builds Boost.Regex library for vc7.0; use msvc or vc7.1 toolsets for other versions" ; case vc7.1 : warning = "vc7.1 toolset builds Boost.Regex library for vc7.1; use vc7 or msvc toolsets for other versions" ; lib-toolset = vc71 ; if dynamic in $(properties) { lib-thread-opt = m ; } } if $(warning) && ! $($(warning-var)) { ECHO Warning: $(warning) ; $(warning-var) = issued ; } return $(properties) <$(variant)>_$(lib-toolset)_$(lib-thread-opt)$(lib-rt-opt)$(lib-debug-opt) ; } } else { # On Unix platforms we use a simplified naming scheme, # just appending _mt for multi-threaded builds and # _debug for debug builds. rule boost-regex-stage-tag ( toolset variant : properties * ) { local lib-thread-opt = "" ; if multi in $(properties) { lib-thread-opt = _mt ; } local lib-debug-opt = "" ; if [ MATCH .*(debug).* : $(variant) ] { lib-debug-opt = _debug ; } return $(properties) <$(variant)>$(lib-thread-opt)$(lib-debug-opt) ; } } stage bin-stage : boost_regex boost_regex : boost-regex-stage-tag : debug release ;