Make Quick Reference
This page contains a minimal GNU Make reference, adapted for my use from
Automatic Variables:
Here is a summary of the automatic variables. See Automatic Variables , for full information.
$@ The file name of the target.
$% The target member name, when the target is an archive member.
$< The name of the first prerequisite.
$? The names of all the prerequisites that are newer than the target, with spaces between them.
$+
$^ The names of all the prerequisites, with spaces between them.
The value of $^ omits duplicate prerequisites, while $+ retains them and preserves their order.
Automatic Rules:
- Compiling C programs
n.o is made automatically from n.c with a recipe of the form
$(CC) $(CPPFLAGS) $(CFLAGS) -c
- Compiling C++ programs
n.o is made automatically from n.c with a recipe of the form
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
Example:
all: test libtest.so
libtest.so: libtest.o
$(CC) -shared -o $@ $< -lc
test: test_main.c libtest.o
$(CC) -o $@ $?
** Defining Rules:**
%.pdf: %.svg inkscape -Cz –export-pdf=$@ –file=$<
objects = foo.o bar.o
$(objects): %.o: %.c $(CC) -c $(CFLAGS) $< -o $@