I was surprised that I couldn't find a page describing what (I at least) would call a BuildSystem. Maybe they're something that's only required by people doing largish scale CeePlusPlus projects? Or maybe I just failed to search effectively. Anyway, here goes my definition - if I'm wrong then please feel free to delete this page and point me to the correct one. --DamyanPepper ---- A BuildSystem is the tool used as part of the BuildProcess to generate executable code from source code. It is used day-by-day by developers to compile their code (and hence are generally the first thing for people to complain about.) BuildSystem''''''s generally have the following features: * ability to build different configurations (debug, release etc.) * ability to support CrossCompiling to multiple platforms * some concept of modules and their dependencies (library A is needed by executable B, so build A before B) * ability to build a single module BuildSystem''''''s are usually built on top of an existing tool in such a way that users of the BuildSystem can do general tasks (like adding new source files or new modules) without posessing intimate knowledge of how the tool it is built upon works. Examples of tools a BuildSystem may be built on: * MakeProgram * PerforceJam * SconsBuildTool * MozillaTinderbox * CruiseControl However, tools like VisualStudioDotNet may also be considered to be a build system even though they are pretty self contained. It is also rumoured to be possible to build a build system that generates VisualStudioDotNet vcproj files. A BuildSystem may also have a built-in UnitTest/SmokeTest routine that runs on a regular basis, generating GreenBar''''''s (or not).