Welcome to the Gnu Make page! Here, you'll find a description of the language as well as a list of sample programs in that language.
This article was written by:
According to Wikipedia,
make is an automated tool for building software.
It was created in 1976 by Stuart Freedman for Unix systems, and it is
still used today on Unix and Unix-like systems (such as Linux and
MacOS). For such systems, GNU make is the most prevelant.
In general, make gets it instructions on what to build based on a Makefile. The syntax for a Makefile is like this:
target1 [target2 ...]: dependency1 [dependency2 ...] command1 command2 ...
The "target" is what is being built, "dependencies" are what the target
depends upon, and "commands" are what is executed when the target is built.
It should be noted
make is a whitespace-sensitive language. Before each
command, is a tab character. It you try to use spaces, you'll get this error:
*** missing separator. Stop.
make works is that a target will be built if it does not exist
or it is older that its dependencies.
Here's an example of file called
Makefile (which is the default filename
make looks for):
hello: hello.c cc hello.c -o hello
It build a single C program called
hello.c into a executable called
The command perform this build is this:
hello does not exist, or if
hello.c was modified after
cc command is executed the builds the code. If the
is run again, it will indicate
'hello' is up to date.
In addition to being a build system, GNU make also has a number of other useful features:
Although GNU make is not really intended as a programming language, these features allow it to behave as if it were. It can even similate control flow with certain built-in functions like these:
Loops can be simulated using macros that invoke themselves recursively.