Make

Aus xinux.net
Zur Navigation springen Zur Suche springen

Was ist make

  • Make ist ein Build-Management-Tool, das in der Softwareentwicklung weit verbreitet ist.
  • Es wird verwendet, um die Kompilierung und den Build-Prozess von Softwareprojekten zu automatisieren.
  • Make basiert auf dem Konzept der Makefiles, in denen die Abhängigkeiten zwischen den Quellcode-Dateien und den Build-Zielen definiert werden.

Makefile

  • Ein Makefile ist eine Textdatei, die die Regeln und Befehle für den Build-Prozess enthält.

Abschnitten

Variablendefinitionen

  • Hier werden Variablen definiert, die im Makefile verwendet werden, um Werte wie Compiler-Flags, Verzeichnispfade oder Versionsnummern festzulegen.
  • Variablen können später im Makefile referenziert und geändert werden.

Zieldefinitionen

  • Ziele sind die Ausgabedateien oder Aktionen, die im Build-Prozess erreicht werden sollen.
  • Jedes Ziel hat Abhängigkeiten, die angeben, welche Dateien oder Aktionen vor dem Erreichen des Ziels ausgeführt werden müssen.

Regeldefinitionen

  • Regeln definieren die Schritte, die erforderlich sind, um ein Ziel zu erstellen.
  • Eine Regel besteht aus einem Ziel, Abhängigkeiten und einer oder mehreren Aktionen, die ausgeführt werden, um das Ziel zu erzeugen.

Ein einfaches Beispiel

# Variablendefinitionen
CC = gcc
CFLAGS = -Wall -O2

# Zieldefinitionen
all: hello

# Regeldefinitionen
hello: main.o hello.o
	$(CC) $(CFLAGS) -o $@ $^

main.o: main.c
	$(CC) $(CFLAGS) -c $<

hello.o: hello.c
	$(CC) $(CFLAGS) -c $<

clean:
	rm -f *.o hello
  • In diesem Beispiel gibt es drei Ziele: "all", "hello" und "clean".
  • Das Ziel "all" ist das Standardziel und wird ausgeführt, wenn kein spezifisches Ziel angegeben wird.
  • Das Ziel "hello" hat die Abhängigkeiten "main.o" und "hello.o" und wird mit den entsprechenden Regelaktionen erstellt.
  • Das Ziel "clean" wird verwendet, um alle generierten Dateien zu löschen.

Aufruf

  • make all
  • make clean
  • make hello