GNU Make

Aus Physik
Wechseln zu: Navigation, Suche

GNU Make ist ein Werkzeug, dass das Erzeugen ausführbarer Dateien aus deren Sourcen und anderen Bestandteilen steuert. Die Informationen die dazu notwendig sind bezieht Make dabei aus einem Makefile. Durch die Verwendung von Make ist das Kompilieren von Programmen angenehmer. Wie Make funktioniert und wie man Makefiles schreibt ist auf der Homepage des GNU Projektes zu finden.

Beispiele

CC = gcc 
CFLAGS = -g -Wall 
LDFLAGS = -lm -lgsl -lgslcblas 
VPATH = ../include

all: prog1 prog2

prog1: prog1.o functions.o 

prog2: prog2.o functions.o

clean:
       rm *.o *.dat

Hier verwendete Variablen:

  • CC: Compiler, der verwendet werden soll
  • CFLAGS: Optionen mit denen der Compiler aufgerufen wird
    • -g: Erzeugt Debugginginformation
    • -Wall: Schaltet alle optionalen Warnungen ein
  • LDFLAGS: Optionen, mit denen der Linker aufgerufen wird
    • -lm: Linkt auf Funktionen aus <math.h>
    • -lgsl: Linkt auf Funktionen aus der libgsl (GNU Scientific Library)
    • -lgslcblas: Auch dieser flag ist bei der Verwendung der libgsl nötig
  • VPATH: Angabe von Verzeichnissen (getrennt durch : ) die nach Sourcecoden durchsucht werden sollen

Funktionsweise: Ein Aufruf von

$ make prog1

erzeugt die Dateien prog1.o und functions.o und fügt sie anschließend zu einer ausführbaren Datei zusammen. In diesem Beispiel werden dazu implizite Regeln verwendet.

$ make all

baut die Programme prog1 und prog2 ebenfalls unter der Verwendung von impliziten Regeln. Ein Aufruf von

$ make clean

löscht alle Dateien die mit .o oder .dat enden. Hier ist der auszuführende Befehl explizit angegeben.