ZID Logo Home Suchen Feedback Dokumentationen Links Uni Linz
   
  Service Organisation Hardware Software FAQ News  
  Software < Vorhandene Software < UNIX <

Das make Utility

Syntax:

 make  [ -f  makefile_name] [optionen] [ziel ]
 Bsp. make -f Makefile.p11 prog.exe

Dieses Dienstprogramm kann verwendet werden, um ein beliebiges Programmsystem neu zu erstellen. Vom make Prozess werden alle dazu notwendigen Compiler- und Linker-Aufrufe entsprechend den im Makefile angegebenen Abhängigkeitsregeln getätigt.

Es werden also alle beteiligten Dateien per Namen und Abhängigkeitsverhältnis zueinander in einer Datei, dem sogenannten Makefile beschrieben. Standardmäßig nimmt make den Namen des Makefiles mit 'makefile' oder 'Makefile' an. Wurde die Datei mit einem anderen Namen versehen, so muß dieser beim Aufruf von make an der Stelle von "makefile_name" angegeben werden. Wird unter "optionen" ' -n ' angeführt, so werden nur die anstehenden Kommandos zur Programmerstellung angezeigt, nicht aber ausgeführt. Wird für ziel eine Angabe gemacht, so werden nur die Erstellungsregeln zu diesem Ziel betrachtet und angewendet.

Aufbau eines Makefiles:

Für den Aufbau eines einfachen Makefiles gilt folgende Syntax:

 ziel: quelle ...    
 <tab> kommando
Damit wird für das Zielobjekt "ziel" festgelegt, daß es neu erstellt werden muß, falls es noch nicht im aktuellen Verzeichnis vorliegt, oder falls sein Modifikationsdatum älter ist als mindestens eine der unter "quelle ..." angeführten Dateien. Die Neuerstellung erfolgt durch Ausführen von "kommando". "<tab>" steht für ein Tabulator-Zeichen.

Beispiel für ein einfaches Makefile:

 # Diese ersten 3 Zeilen sind ein    
 # Kommentar in meinem einfachen    
 # Makefile.

 myprog: myprog.o second.o 
       cc myprog.o second.o -o myprog

 myprog.o: myprog.c local.h 
       cc -c myprog.c

 second.o: second.c local.h pivot.h 
       cc -c second.c
Anhand dieses Makefiles, das unter dem Namen 'makefile' abgespeichert sei, können nun folgende Aufrufe gemacht werden.
  • Erstelle das Programm myprog neu:
       % make 
    
    Standardmäßig wird das erste Ziel im Makefile geprüft und gegebenenfalls neuerstellt. In unserem Fall ist dies myprog. Für myprog müssen aber myprog.o und second.o auf dem neuesten Stand sein. Die Regel für myprog.o schreibt vor, daß die Dateien myprog.c und local.h ein älteres Modifikationsdatum als myprog.o haben müssen; andernfalls wird das Kommando cc -c myprog.c angewendet. Entsprechendes ergibt sich aus der Regel zu second.o. Letztlich wird nun zum Ziel myprog das Kommando cc myprog.o second.o -o myprog ausgeführt, falls myprog.o und/oder second.o jünger sind/ist als die Datei myprog.

  • Erstelle die Datei second.o neu:
       % make second.o   
    
    Dieser Aufruf von make bringt nur die Regel zum Ziel second.o zur Anwendung. Falls eine der drei angebenen Dateien editiert worden ist, nachdem second.o angelegt worden war, wird das Kommando cc -c second.c ausgeführt.

Weitere Information: UNIX Manual Page zu make


- zum Seitenanfang -
Impressum
16.06.2009