Makefile: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
*$^ Name aller Voraussetzungen, getrennt durch Leerzeichen
 
*$^ Name aller Voraussetzungen, getrennt durch Leerzeichen
 
*$< ist die erste Voraussetzung
 
*$< ist die erste Voraussetzung
 +
 +
*Beispiele:
 
<syntaxhighlight lang="makefile">
 
<syntaxhighlight lang="makefile">
Beispiele:
 
 
hello: main.o helper.o
 
hello: main.o helper.o
 
$(CC) $(CC_OPTS) $^ -o $@
 
$(CC) $(CC_OPTS) $^ -o $@

Version vom 6. Mai 2022, 08:12 Uhr

Makefiles

  • Dateinamen für Makefile sind
    • makefile
    • Makefile
    • GNUmakefile
  • make -j N erlaubt N Jobs gleichzeitig

Variablen

  • Man kann Variablen in Makefiles definieren:
CC = gcc
CC_OPTS = -O2 -Wall -Wextra -std=c11
HEADERS = header1.h header2.h
  • Und dann benutzen:
main.o: main.c $(HEADERS)
$(CC) $(CC_OPTS) -c main.c

Automatische Variablen

  • $@ Name das Ziels
  • $^ Name aller Voraussetzungen, getrennt durch Leerzeichen
  • $< ist die erste Voraussetzung
  • Beispiele:
hello: main.o helper.o
$(CC) $(CC_OPTS) $^ -o $@
main.o: main.c $(HEADERS)
$(CC) $(CC_OPTS) -c $