| Autoconf, Automake, and Libtool | ||
|---|---|---|
| <<< Previous | Introducing Makefiles | Next >>> |
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 make variable expansions. It is possible to define a make variable using a var=value syntax:
CC = ec++
|
In a Makefile, $(CC) will then be literally replaced by ec++. 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 macros are $@ and $<. 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 make $< is only available in suffix rules. Here is a simple Makefile:
all: dummy
@echo "$@ depends on dummy"
dummy:
touch $@ |
This is what make outputs when processing this Makefile:
$ make
touch dummy
all depends on dummy |
The GNU Make manual documents these macros in more detail.
| <<< Previous | Home | Next >>> |
| Makefile syntax | Up | Suffix rules |