GNU Make comes with a comprehensive manual.
For more advanced users, the chapter
Quick Reference
is indensable, because it provides a condensed list of all the cryptic variables
like $<
, $@
, $+
, etc.
When running on Linux, the manual can be accessed with
info make
.
For large projects, one might be inclined to have a separate
Makefile
in every directory. This is fine, as long as the Makefiles are combined into one used include
(see Variables).
It is not acceptable to invoke make
recursively, in a style that
used to be popular, but should be avoided.
In the beginning of this tutorial it was mentioned that other programs
interface with make
. Makefiles are often generated by other
programs, instead of being written by hand. This is done to deals with
portability issues and solve the problem of configuration, something
that config-lab.mk
and config-home.mk
were used for in the
tutorial. Two biggest implementations of this funcitonality are
cmake and Automake
+ Autotools. The first
one is a bit easier to use, the second one more popular and powerful.
Those are probably better options for compiling of software, for
projects that are intented to be widely distributed, than bare Makefiles.
For Python programs, a language specific options are usually better. They require very little configuration for simple Python projects, and integrate with centralized distribution systems like (PyPI)[http://pypi.python.org/].
distutils
module)