A number of useful macros exist which may be used anywhere throughout
the `Makefile'. Macros start with a dollar sign, like shell
variables. Our first `Makefile' used a few:
$(CC) $(CFLAGS) -c $< -o $@
Here, syntactic forms of `$(..)' are
expansions. It is possible to define a
make variable using a
In a `Makefile',
$(CC) will then be literally replaced by
make has a number of built-in variables and
default values. The default value for `$(CC)' is cc.
Other built-in macros exist with fixed semantics. The two most common
$<. They represent the names of the
target and the first dependency for the rule in which they appear.
$@ is available in any rule, but for some versions of
$< is only available in suffix rules. Here is a
@echo "$@ depends on dummy"
This is what
make outputs when processing this
all depends on dummy
The GNU Make manual documents these macros in more detail.