diff --git a/build/Jamfile b/build/Jamfile index ca4e7cbf..b69223f6 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -23,9 +23,73 @@ dll boost_regex : ../src/$(SOURCES).cpp ; +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-link-opt = s ; + if DLL in $(properties) + { + lib-link-opt = i ; + } + + 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 = 5 ; # 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 ; + + 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 $(warning) && ! $($(warning-var)) + { + ECHO Warning: $(warning) ; + $(warning-var) = issued ; + } + return $(properties) <$(variant)>_$(lib-toolset)_$(lib-thread-opt)$(lib-rt-opt)$(lib-link-opt)$(lib-debug-opt) ; +} + stage bin-stage : boost_regex boost_regex : - "_debug" + boost-regex-stage-tag : debug release ;