make  | 
       Werkzeug zum Erzeugen von Systemen
  | 
  |  | 
     
     
       Regeln  | 
       Abhängigkeiten zwischen Quellen und
zu erzeugenden Dateien (Zielen)
  | 
  |  | 
     
     
       Syntax  | 
       
Ziel1 : Quelle11 Quelle12 ... 
        Kommando11 
        Kommando12 
        ... 
  
Ziel2 : Quelle21 Quelle22 ... 
        Kommando21 
        ... 
 
  | 
  |  | 
     
     
        | 
       vor den Kommandos muss ein Tabulatorzeichen stehen !!!
  | 
  |  | 
     
     
       Zeitstempel  | 
       des letzten Schreibens steuern
die Anwendung der Regeln.
  | 
  |  | 
     
     
       Aufruf  | 
        | 
  |  | 
     
     
       .1  | 
       rekursiv für alle Quellen
  | 
        | 
        | 
  |  | 
     
     
       2.  | 
       mindestens eine Quelle neuer als das Ziel: 
==> 
Kommando(s) ausführen
  | 
  |  | 
     
     
       neuer  | 
       
         | 
     
     
       .a  | 
       Ziel und Quelle existieren 
==> 
Zeitstempel des letzten Schreibens vergleichen
         | 
     
     
       .b  | 
       
Ziel(datei) existiert nicht: 
==> 
Quelle neuer als das Ziel
         | 
     
     
       .c  | 
       
Ziel existiert und keine Regel für das Ziel: 
==> 
Ziel aktuell
         | 
     
     
       .d  | 
       
Ziel existiert nicht und keine Regel für das Ziel: 
==> 
Fehler
  | 
  |  | 
     
     
       Makros  | 
       Text-Variablen zur Vermeidung von Codeverdopplung,
für Abkürzungen.
  | 
  |  | 
     
     
       Syntax  | 
       
  | 
  |  | 
     
     
       Definition  | 
        | 
  |  | 
     
     
       Anwendung  | 
        | 
  |  | 
     
     
       Umgebungs- 
Variablen  | 
       stehen als Makros zur Verfügung.
  | 
  |  | 
     
     
       Kommandozeilen- 
Parameter  | 
       zum Setzen von Makros
  | 
        | 
        | 
  |  | 
     
     
       vordefinierte Makros  | 
       
| $@ | aktuelles Ziel |  
| $* | aktuelles Ziel ohne Extension |  
| $$ | $-Zeichen |  
| $< | erste Quelle |  
| $^ | alle Quellen |  
| $(CC) | C-Compiler |  
| $(CFLAGS) | C-Compiler Optionen |  
| $(MAKE) | make Programm |  
 
  | 
  |  | 
     
     
       default- 
Regeln  | 
       Regeln für eine Klasse von Dateien
  | 
  |  | 
     
     
       .-Regeln  | 
       alte make-Variante: Etwas unflexibel
  | 
        | 
       
  
.c.o: 
        $(CC) $(CFLAGS) -c $< 
  
  
.ppm.gif: 
        ppmtogif $< $@ 
  
  
.SUFFIXES       : .o .c .ppm .gif 
 
  | 
  |  | 
     
     
       %-Regeln  | 
       GNU make: flexibler
  | 
        | 
       
  
%.o     : %.c 
        $(CC) $(CFLAGS) -c $< 
  
  
%.gif   : %.ppm 
        ppmtogif $< $@ 
 
  | 
  |  | 
     
     
        | 
       
Bilder konvertieren und erzeugen von Varianten mit convert
  | 
  |  | 
     
     
       Optionen  | 
       für make
  | 
        | 
       
| -n | Trockenkurs |  
| -p | alle Makros und Regeln |  
| -r | ohne default-Regeln |  
| -f | explizite Makefile-Angabe  |  
 
  | 
  |  | 
     
     
       GNU make
  | 
        |