GNU Make examines the timestamps on a set of interdependent files, and, if necessary, issues commands to bring them up-to-date. The user creates a makefile describing the files, their relationships, and the commands to run. Most often make is used to rebuild libraries and programs when their sources are changed, but it can be used for any situation where one set of files needs to be generated from another set.
| Tags | Software Development Build Tools |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Windows |
| Implementation | C |
Recent releases


No changes have been submitted for this release.


Changes: The first new release of GNU make in two years, this version adds long-awaited new capabilities such as dynamic rule/variable creation (via the $(eval ...) function), the ability to declare build order without implying a dependent relationship, some introspection capabilities, and a number of other improvements, large and small.


Changes: This is a bugfix release. It contains no new features, but it has several important bugfixes and some new translations.


Changes: Various bugfixes, enhancements, and documention updates.


Changes: This release of GNU make contains several important bug fixes, some new functions and features, an integrated regression test suite and one major new item: a "job server" capability that allows submakes to communicate with each other during parallel execution to ensure that only the user-specified number of jobs are started across all submakes (currently only available on UNIX systems).
- All comments
Recent commentsTrMake
Check out TrMake (http://freshmeat.net/projects/trmake/) -- a modularized makefile system designed for multi-platform C++ development in Unix environments with GNU make.
OMake Build System.
Those who are interested in finding a modern replacement to GNU Make that is free of make's shortcomings, but keeps the spirit and some of the syntax should check out OMake (http://freshmeat.net/projects/omake/).
OMake is a build system designed especially for scalability and portability. It uses a syntax similar to GNU make, but it features many additional enhancements, including the following.
* Support for projects spanning several directories or directory hierarchies.
* Fast, reliable, automated, scriptable dependency analysis using MD5 digests, with full support for incremental builds.
* Fully scriptable, includes a library that providing support for standard tasks in C, C++, OCaml, and LaTeX projects, or a mixture thereof.
* Often, a configuration file is as simple as a single line
CProgram(prog, foo bar baz)
which states that the program "prog" is built from the files foo.c, bar.c, and baz.c. This one line will also invoke the default standard library scripts for discovering implicit dependencies in C files (such as dependencies on included header files).
* Full native support for rules that build several files at once.
* Portability: omake provides a uniform interface on Linux/Unix (including 64-bit architectures), Win32, Cygwin, Mac OS X, and other platforms that are supported by OCaml.
* Built-in functions that provide the most common features of programs like grep, sed, and awk. These are especially useful on Win32.
* Active filesystem monitoring, where the build automatically restarts whenever you modify a source file. This can be very useful during the edit/compile cycle.
* A built-in command-interpreter osh that can be used interactively.
OMake preserves the style of syntax and rule definitions used in Makefiles, making it easy to port your project to OMake. There is no need to code in Perl (cons), or Python (scons).
OMake is licensed under a mixture of the GNU GPL license (OMake engine itself) and the MIT-like license (default configuration files).
Freshmeat project page for OMake is http://freshmeat.net/projects/omake/ (http://freshmeat.net/projects/omake/)
Savannah bug tracking enabled
Sorry for the late notification, but the GNU make project is now using the Savannah environment for bug tracking as well as the previous project management tools. Please don't use the GNATS problem report tracker any more (for one thing I don't have login privileges so I can never change the status of any of those PRs!)
GNU make development migrated to Savannah
The GNU make development environment has migrated to Savannah (http://savannah.gnu.org), the GNU Project's implementation of SourceForge (http://sourceforge.net). Access to the mailing lists, CVS repository, and FTP site are available there, as well as areas for technical support requests and patches.
Unfortunately, the bug tracking system (Gnats) has not been integrated yet, but someone is working on that.
Visit the new site at:
http://savannah.gnu.org/projects/make/ (http://savannah.gnu.org/projects/make/)
GNU Cons - A Make Replacement
For those of you who don't know about it, GNU Cons is a
perl-based Make replacement .
It is not compatible with make, but it has a number of powerful capabilities not found in other software construction systems, including make.
The Freshmeat URL for GNU Cons is
http://freshmeat.net/projects/cons/