- Keep the build file at the root of the project
- Use consistent style and conventions
- Don't Repeat Yourself ( DRY )
- Provide good help (use Ant/NAnt descriptions)
- Manage dependencies properly
- Use per-user properties to allow people to override defaults such as database logins or directory locations
- Keep the build self-contained
- Keep it all in source control
- Make , a classical Unix build tool
- --- software, including OpenOffice.org and Solaris .
- --- Makepp {Link without Title} A build tool written in Perl, which is almost completely compatible with the original make, and offers a couple of advanced features: greatly improved handling of builds that involve multiple makefiles (recursive make is no longer necessary); automatic scanning for include files; rebuilds triggered if build command changes; checksum-based signature methods for reliable builds; extensibility through perl (within your makefile); repositories (automatically importing files from another tree).
- --- Mk - developed originally for Version 10 Unix and Plan 9 , said to have "improved upon make by removing all the vowels from the name", and introducing a completely new syntax that many consider to be easier to read and more powerful. It has been ported to Unix as part of Plan9port .
- --- which is a Perl module for the building and installation of other Perl modules. It improves upon the existing [http://search.cpan.org/dist/ExtUtils-MakeMaker/ ExtUtils::MakeMaker module, which actually uses make to do the building.
- --- Jam , which is a generally enhanced, ground-up tool which is similar to make.
- --- Nmake -- Bell Labs ' nmake overcomes many limitations inherent in make, providing fully integrated support for viewpathing, dynamic dependency management, and state based execution. Forked into two versions after the AT&T trivestiture, a research version from AT&T Labs and a supported Alcatel-Lucent Bell Labs version.
- --- Speedy Make {Link without Title} XML based make utility, very easy to write.
- --- Openmake {Link without Title} , a commercial enterprise build management tool
- --- Rake , a Ruby -based build tool.
- --- CMake , which is a cross platform make. It is designed to be used in conjunction with the platform specific build environment.
- --- MPW Make -- Developed for Mac OS Classic and loosely similar to but not compatible with Unix make; it was designed with somewhat more complicated dependency syntax to allow for Resource files. Mac OS X comes with both GNU make and BSD make. Available as part of the Macintosh Programmer's Workshop as a free, unsupported download from Apple.
- Ant , which is popular for Java development and uses an XML file format.
- --- NAnt , a tool similar to ant for the .NET Framework
- --- want , an Ant-like XML-based tool for building programs, written in Delphi
- / Automake .
- MSBuild , the Microsoft Build Engine
- GNU Build Tools , a collection of tools for portable builds
- Cook , a very powerful tool with a C like syntax.
- Apache Maven , a Java tool for management project and automated software build.
- CABIE Continuous Automated Build and Integration Environment, Open Source, written in Perl, supports CVS, Perforce and Subversion. Features, pre, post, postpost and onfail triggers. MySQL collector. Commandline and WEB interface. Runs as a daemon on Unix systems, and a service on Windows.
- PerlBuildSystem {Link without Title} - Open Source - A Make replacement written in Perl featuring hierarchical builds, dependency graph, node triggers, Perl syntax for PBSfiles, shell or Perl build actions.
- SCons , which is based around the Python Programming Language , and integrates a broader set of features than make, with integrated functionality similar to Autoconf / Automake . It is descended from a Perl build driver called Cons .
- A-A-P , a Python -based build tool.
Integrated tools:
- Mike Clark : ''Pragmatic Project Automation'', The Pragmatic Programmers ISBN:0-9745140-3-9
- ''The Buildmeister'' {Link without Title} - portal dedicated to build and release management
|