====== Suffix-Regeln ======
Suffix-Regeln sind die wohl kürzeste Form, eine Regel zu formulieren. Der Lesbarkeit halber sollten in neuen Makefiles jedoch [[pattern|Patternregeln]] verwendet werden. Um einen ersten und schnellen Einblick zu erhalten und um vorhandene Makefiles zu verstehen, werden sie hier erklärt:
Folgende Regel erklärt, wie aus Dateien, die mit .c enden, Dateien entstehen, die mit .o enden.
.c.o:
gcc -c $<
Diese Regel wie man .o Dateien aus gleichnamigen .c Dateien erzeugt. ''$<'' beschreibt den Namen der eingehende Datei. So kann mit dieser Regel die Datei ''hello.c'' mit dem Befehl ''gcc -c hello.c'' die Datei ''hello.o'' erzeugt werden.
Nehmen wir an, wir haben ein Ziel, dass von ''hello.o'' abhängt:
all: hello.o
gcc hello.o
Mit der obenstehenden Suffix-Regel wird nun nach einer Datei ''hello.c'' gesucht, um mit Hilfe dieser Regel das Ziel zu konstruieren.
Ambassador:suffix xin$ make
gcc -c hello.c
gcc -o hello hello.o
Ambassador:suffix xin$ ls -l
total 48
-rw-r--r--@ 1 xin staff 158 15 Nov 16:22 Makefile
-rwxr-xr-x 1 xin staff 8704 15 Nov 16:22 hello
-rw-r--r-- 1 xin staff 84 15 Nov 16:11 hello.c
-rw-r--r-- 1 xin staff 724 15 Nov 16:22 hello.o
Ambassador:suffix xin$
===== Ein Beispiel als Makefile ======
##
## C Files kompilieren.
############################################
CC=gcc
OBJECTS=hello.o
EXECUTABLE=hello
.c.o:
$(CC) -c $<
all: $(OBJECTS)
$(CC) -o $(EXECUTABLE) $(OBJECTS)
rebuild: clean all
clean:
rm -f *.o
rm -f $(EXECUTABLE)
------
Download: {{build:make:rules:suffix.zip|Beispielcode und Makefile}}