Imagine yourself the owner of an open source software project—your users are asking for a Visual Studio solution, but you don’t have Visual Studio! Or perhaps you are a Windows developer struggling to keep Makefiles in sync for a Linux port. It’s a common problem for open source and other multi-platform projects: restrict yourself to a single build tool—driving away potential contributors—or manually maintain two, three, or more sets of build scripts. Enter Premake.
Premake is a build configuration tool. Describe your build using a simple, easy to read syntax and let Premake generate the project files for:
- Microsoft Visual Studio 2002, 2003, 2005, and 2008, including the Express editions
- GNU Make, including Cygwin and MinGW
- Code::Blocks
- CodeLite
- IC#Code SharpDevelop
- MonoDevelop
Premake allows you to manage your project configuration in one place and still support those pesky IDE-addicted Windows coders and/or cranky Linux command-line junkies. It allows you to generate project files for tools that you do not own. It saves the time that would otherwise be spent manually keeping several different toolsets in sync. And it provides an easy upgrade path as new versions of your favorite tools are released.
In addition to these project generation capabilities, Premake also provides a complete Lua scripting environment, enabling the automation of complex configuration tasks, such as setting up new source tree checkouts or creating deployment packages.
Premake is a “plain old C” application, distributed as a single executable file. It does not require any additional libraries to be installed, and should build and run pretty much anywhere. It runs on Windows, Mac OS X, Linux, and other POSIX environments. It uses only a handful of platform dependent routines (directory management, mostly). Adding support for additional toolsets and languages is straightforward. The source code is available under the GPL, and the project is hosted on SourceForge.