A Program for Directing Recompilation
makeutility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. This page describes GNU
make, the implementation of
makewritten for the Free Software Foundation's GNU project.
makeconforms to section 6.2 of IEEE Standard 1003.2-1992 (POSIX.2), and in addition provides a wealth of very sophisticated features for creating modern build environments.
The latest release of GNU
make is version 4.0.
You can download the
source code for it from the GNU FTP site or any of its
many mirror sites. GNU
make is extremely portable and
should be simple to compile for any supported system (you need a C
In general, pre-compiled versions aren't available. The DJGPP
project does make pre-compiled DOS versions available; try
and look for the
make development is supported via the FSF's Savannah project. You can visit the
make development resource
site for Web-based technical support, bug tracking, patch management,
mailing list management, a link to the FTP download site, and
information on obtaining the up-to-the-minute version of GNU
make via anonymous CVS.
In order to build GNU
make from CVS, you will also need
to install a plethora of GNU development tools, such as GNU automake, GNU autoconf, and GNU gettext. In order
to use these you will need other software, such as GNU m4 and Perl. The full details are in the
README.CVS file in the CVS version of the distribution.
Please note carefully! These requirements are only for
building the CVS version of GNU
make. You need nothing but
a vanilla C compiler to build the version of GNU
contained in a release tarfile.
There are three mailing lists specifically for GNU
They are sponsored by the FSF and are managed using
The first is firstname.lastname@example.org. This list is for discussing bugs or potential bugs in the program. To subscribe, unsubscribe, or view the mailing list archives see the Bug-make Info Page.
The second is email@example.com. This list is for asking questions about ways to use make, or how it works, or how to apply it to resolve some build issue you may be having. To subscribe, unsubscribe, or view the mailing list archives see the Help-make Info Page.
The third is firstname.lastname@example.org.
This list is specifically for questions and help with using GNU
make on Microsoft platforms, both Windows and (despite the
mailing list title) DOS. If you have a problem that you feel is
Windows/DOS-specific, you will very likely get more knowledgeable
responses here than on the other two lists. To subscribe, unsubscribe,
or view the mailing list archives see the Make-w32 Info
If you find a problem you believe is a bug, first please
double-check the manual. In particular, since make variants differ
widely in the functionality they offer, you should examine the chapter
Incompatibilities and Missing Features to determine if this
is a known incompatibility with another version of
If you still believe it's a bug, you should next consult the bug list on the GNU
make Savannah project page. See if it's been reported
already; often patches for problems are provided in the bug resolution.
If you don't find it reported already, you can submit a new problem
report there. Or, if you like, you can send the problem report via
email to email@example.com.
When reporting bugs, it is crucial that you provide all relevant
information needed to understand the bug: what version of GNU
make you're using, what version of which operating system
you're using, the exact error or incorrect output you received (cut and
paste, please, no paraphrasing!), and what you expected to happen.
Reproduce the problem with a small a sample makefile as possible, if you
can. Please have your sample makefile use only standard UNIX tools;
avoid Fortran or Java compilers, for example. You can always synthesize
the operations the compiler would perform with
other simple tools. See the section
Problems and Bugs for more details.
Do not send your entire makefile environment; we do not have the resources to debug your makefiles! All such requests will be ignored.
If you aren't sure if you have a bug, or really just want some help,
you can contact various GNU
make knowledgable people at
either firstname.lastname@example.org, or email@example.com (gatewayed with
gnu.utils.help) or firstname.lastname@example.org (gatewayed to gnu.utils.bug).
Even when only asking for help, you'll get the best results if you provide all the same information described above for reporting bugs.
The GNU Make Manual is provided with the GNU
make distribution. It is distributed both in its original
Texinfo format, and in Info format.
It can be converted into TeX (and subsequently into printable formats on a variety of devices) and into HTML using the GNU texinfo package.
The GNU Project now makes many of its manuals available in various
formats at their
site. In particular, the GNU
make manual is available
here in various forms of HTML, Info, ASCII text, TeX DVI,
PostScript, and original Texinfo source.
If you don't use Emacs and want a nice graphical Info manual browser, try tkInfo, which is a very useful Tcl/TK-based Info reader.
remakeas "GDB for makefiles".