GNU Make
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.