From: John Maddock (boost.regex_at_[hidden])
Date: 2003-08-27 05:14:52
> Debug build, linked against the debug runtime -- of course I had to look
> up ;-)
Yep, we're going to need some good documentation on this, I might be able to
help out there, if it would help..
> >> So I was thinking - don't use a suffix at all for the most common
> >> option - and use a unique and hopefully understandable suffix for
> >> any other cases:
> My goal did include using the minimal suffix for the most common case for
> Users (allowing for expectations). Which is using release builds against
> release runtimes, single threading. Ex; boost_regex-vc71-131.dll (+lib).
> perhaps the muti-thread variant should be the most common (as you point
> out)? Opinions/votes on this are welcome.
Aha, that's another buglet in your suffix mangling (or maybe the build
system) that I hadn't got around to mentioning: When using the dynamic
runtime Visual C++ builds are multithreaded builds - even though
<threading>multi may not be set in the build system. The problem is that we
have three options:
<threading> not set
and currently when it's not set the build system equates that to
<threading>single which may not actually be true...
> >Yep. I think the answer for mangling is: just give up on readability
> >and pick a single letter for each property.
> I agree with that. I don't think we can come up with short enough names to
> make multiple abreviations useable. And there is a large group of Users
> already familiar with single letter tags. For further discussion here's
> I currently do (straight from the bjam source code)...
> # Common rules for generating a single stage tag based on the
> # variant, build properties, and the toolset used to build.
> # To use place this rule name in the requirementes section of
> # a stage target.
> # The tag is constructed as such:
> # [-<toolset-tag>][-<thread-tag>][-<runtime-tag>]
> # <toolset-tag> maps to an abbreviated name of the toolset
> # and when possible and applicable the version of the toolset.
> # <thread-tag> "mt" when multi-threading is enabled.
> # <runtime-tag> adds these single letter tags:
> # "s" when static linking to runtime
> # "g" when linking to debug runtime
> # "y" when building debug-python variants
> # "d" when building debug variants
> # "p" when building with stlport libraries
> # The tag added is a <tag><prefix> to allow for additional tags
> # in the stage. For example the version tag.
OK you're missing STLPort debug library variants - when __STL_DEBUG or
_STLP_DEBUG is defined (note this is not dependent upon this being an
stlport variant, since STLPort may be the native std lib anyway).
> PS. I think we can get far with the mostly single letter shorthands, as
> as we document it clearly to Users what the produced libraries mean, and
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk