Makefiles sind eigentlich ziemlich idiotensicher, keine Ahnung, warum das in EDV nicht erklärt wird. Makefile für ein gewöhnliches Fortran-Programm:
programm: programm.f
Macht aus programm.f ein Binary mit Namen programm. Will man mehrere Programme mit dem selben Makefile bauen, macht man einfach mehrere Einträge.
programm: programm.f
programm2: programm.f
Spezifische Targets kann man dann zB als"make programm2" bauen,
„make“ ohne was baut erstmal das erste Target in der Datei.
Will man, dass mehrere gebaut werden, dann macht man sich am Besten ein Pseudo-Target:
all: programm programm2
programm: programm.f
programm2: programm.f
Sonstige wichtige Features: Die Variable FFLAGS setzt Optionen für den Fortran-Compiler, wenn man ein explizites Kommando zum Bauen eines Targets braucht, kann man es einfach in die nächste Zeile nach einem Tab schreiben.
Mein Makefile vom letzten Mal:
FFLAGS=-fbounds-check -Wall -g
.PHONY: clean
all: spline spline2
clean:
-rm spline spline2
spline: spline.f
spline2: spline2.f
f77 -o spline2 spline2.f $(FFLAGS) -lmathlib -lkernlib
(Das .PHONY sagt make, dass das Target immer ausgeführt werden soll, egal ob make denkt, dass es aktuell ist, aber das ist nur für Ausnahmesituationen relevant. Das ‚-‘ im clean-Target sagt make, dass es Fehler ignorieren soll. Falls jemand weiß, wie man f77 beibringt, compile und link zu trennen, darf er mir das erklären.)