This fixes a bug introduced by handling of case-insensitive env vars.
For path env variables b2 will automatically split them and hence they
need to be read individually to see if they have a value. Instead of all
at once and picking the first value.
There are some programs on some operating system that assume env vars
can be freely dealt with in a case-insensite manner. For example Python
on Windows will upper-case env vars when importing them. And transmit
that upper-case down the process chain. Which causes problems when b2 is
called from such programs in that b2 assumes the environment is not
going to mutate variable names. This partially addresses the issue by
also checking if an env variable is defined as lower or upper case. But
only if access through the os.environ rule.
This now moves all the logic of setting up the action flags into custom
action classes that use the target-os and related features. Hence there
are no more call from other toolsets into gcc toolset rules.
- Add missing WINVER=0x0501 and _WIN32_WINNT=0x0501 to config_toolset.bat
- Add needed -D_WIN32_WINNT=0x0501 for vc7 to fix unresolved symbols
- Added alternatives to va_copy and vsnprintf in debugger.c
- Add missing fix from previous patch in strings.c
When creating a shared library, use the -soname option to set the DT_SONAME field to the simple name of the library. Setting the DT_SONAME field is necessary so that the shared library can be found when it is referenced by another shared library that is then referenced by an executable.
libraries that require -compat=5 (stlport and apache). For the GNU library,
-compat=g is used through the -std=c++03 option and it includes -features=zla.
This moves docbook, pdf, and xml types out from the bootbook tool file
to the common types directory. This allows other tools that process
those types to not rely on bootbook definition import.