Merge pull request #129 from emoon/master

Some fixes for msvc project generation
Fixed win32 compilation
Fixed warning-treated-as-error preventing bootstrapping with GCC.
Merge pull request #130 from lpn/master

Win32 compilation fix
Merge pull request #131 from tlaedre/master

Fixed bootstrapping with GCC 4.x (aka linux)
Added toolset support for the GNU Assembler (GAS).

This is a simple addition to make available the GNU Assembler as
a separate toolset, which can be used in tandem with GCC or other
toolsets. It works the same as the existing YASM toolset, simply
add it to your Tools configuration (eg. Tools = { "gcc", "gas" }).

The project's tundra.lua and CMakeLists.txt files were also
updated to define the _GNU_SOURCE preprocessor definition when
compiling on Linux/UNIX platforms. This was necessary to get it to
build on platforms with older versions of glibc in which the
POSIX.1-2008 interfaces aren't made available by default (for
example, PTHREAD_MUTEX_RECURSIVE, which tundra is dependent upon).
This change allows tundra to be built without trouble on a vanilla
Debian 6.0 installation. It shouldn't cause problems with non-GNU
libc implementations such as OSX or the BSDs, and it is forward
compatible with newer versions of glibc.
Merge pull request #132 from upcaste/master

Added GNU Assembler toolset support and fixed build problem on Debian 6.0.
aux outputs: lookup by node keyword rather than node label

Program's label is Program $(@) which meant we looked up the AUX_FILES_
environment variables incorrectly.

By switching to self.Keyword we lookup AUX_FILES_PROGRAM and correctly
detect the output files. Which are thus correctly cleaned up.

AUX_FILES_SHAREDLIB is renamed to AUX_FILES_SHAREDLIBRARY [API Change]
Add support for underscores in Config names.

This patch allows use of underscores in Config platform, toolset,
variant, and subvariant names. This is primarily useful for the
platform names when needing to support a wide variety of cross-
compilation targets or for autoconf integration, but it can't
hurt for toolset, variant, or subvariant names. It makes it easier
to simply convert a canonical autoconf host/target triplet from
hyphen to underscore form and use it as the platform identifier.

For example, in your tundra.lua:

Configs = {
    Config { Name = "arm_linux_gnu-gcc", ... },
    Config { Name = "i686_linux_gnu-gcc", ... },
    Config { Name = "x86_64_linux_gnu-gcc", ... },
    Config { Name = "powerpc_linux_gnu-gcc", ... },
    Config { Name = "powerpc64_linux_gnu-gcc", ... },
    Config { Name = "i686_linux_gnu-clang", ... },
    Config { Name = "x86_64_linux_gnu-clang", ... },
    Config { Name = "arm_linux_uclibc-gcc", ... },
    Config { Name = "i686_linux_uclibc-gcc", ... },
    Config { Name = "x86_64_linux_uclibc-gcc", ... },
    Config { Name = "arm_linux_androideabi-gcc", ... },
    ...
}
fix warning
Add support for winsdk8 (vs 11.0 / vs2012)

Some file paths were changed with visual studio 2012 (version 11.0),
and the new winsdk8:

- Traditional windows API are found under a "UM" (user-mode) directory.
- WinRT (new APIs) are found under a "WINRT" directory
- Others in "SHARED" directory

We import the UM headers for now. WinRT support should come probably with
its own toolset variant.
make logic more readable thanks to short circuit
Merge pull request #134 from uucidl/F-AuxOutputFilesFix

aux outputs: lookup by node keyword rather than node label
Merge pull request #136 from uucidl/F-MsvcWinsdkFor2012

msvc-winsdk support for winsdk8 and visual studio 2012 (11.0)
Merge pull request #135 from upcaste/master

Add support for underscore characters in Config names
added missing "local" to declare n
fix indentation
engine: validate pre-conditions on extensions

extensions are matched by searching for the '.' char and thus must
start with this character.
Generate PDB for tundra debug builds.
Fix fully filtered-out ReplaceEnv would clear vars