mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 15:43:58 +00:00
fixed typos and grammar
I have fixed some typos and comama errors in make
This commit is contained in:
parent
1eecfded69
commit
d6f4b949d5
@ -11,14 +11,14 @@ lang: de-de
|
|||||||
---
|
---
|
||||||
|
|
||||||
Eine Makefile definiert einen Graphen von Regeln um ein Ziel (oder Ziele)
|
Eine Makefile definiert einen Graphen von Regeln um ein Ziel (oder Ziele)
|
||||||
zu erzeugen. Es dient dazu die geringste Menge an Arbeit zu verrichten um
|
zu erzeugen. Es dient dazu, die geringste Menge an Arbeit zu verrichten um
|
||||||
ein Ziel in einklang mit dem Quellcode zu bringen. Make wurde berühmterweise
|
ein Ziel in Einklang mit dem Quellcode zu bringen. Make wurde berühmterweise
|
||||||
von Stuart Feldman 1976 übers Wochenende geschrieben. Make ist noch immer
|
von Stuart Feldman 1976 übers Wochenende geschrieben. Make ist noch immer
|
||||||
sehr verbreitet (vorallem im Unix umfeld) obwohl es bereits sehr viel
|
sehr verbreitet (vorallem im Unix Umfeld) obwohl es bereits sehr viel
|
||||||
Konkurrenz und Kritik zu Make gibt.
|
Konkurrenz und Kritik zu Make gibt.
|
||||||
|
|
||||||
Es gibt eine vielzahl an Varianten von Make, dieser Artikel beschäftig sich
|
Es gibt eine Vielzahl an Varianten von Make, dieser Artikel beschäftigt sich
|
||||||
mit der Version GNU Make. Diese Version ist standard auf Linux.
|
mit der Version GNU Make. Diese Version ist Standard auf Linux.
|
||||||
|
|
||||||
```make
|
```make
|
||||||
|
|
||||||
@ -44,14 +44,15 @@ file0.txt:
|
|||||||
# die erste Regel ist die Standard-Regel.
|
# die erste Regel ist die Standard-Regel.
|
||||||
|
|
||||||
|
|
||||||
# Diese Regel wird nur abgearbeitet wenn file0.txt aktueller als file1.txt ist.
|
# Diese Regel wird nur abgearbeitet, wenn file0.txt aktueller als file1.txt ist.
|
||||||
file1.txt: file0.txt
|
file1.txt: file0.txt
|
||||||
cat file0.txt > file1.txt
|
cat file0.txt > file1.txt
|
||||||
# Verwende die selben Quoting-Regeln wie die Shell
|
# Verwende die selben Quoting-Regeln wie die Shell
|
||||||
@cat file0.txt >> file1.txt
|
@cat file0.txt >> file1.txt
|
||||||
# @ unterdrückt die Ausgabe des Befehls an stdout.
|
# @ unterdrückt die Ausgabe des Befehls an stdout.
|
||||||
-@echo 'hello'
|
-@echo 'hello'
|
||||||
# - bedeutet das Make die Abarbeitung fortsetzt auch wenn Fehler passieren.
|
# - bedeutet, dass Make die Abarbeitung fortsetzt auch wenn Fehler
|
||||||
|
# passieren.
|
||||||
# Versuche `make file1.txt` auf der Kommandozeile.
|
# Versuche `make file1.txt` auf der Kommandozeile.
|
||||||
|
|
||||||
# Eine Regel kann mehrere Ziele und mehrere Voraussetzungen haben.
|
# Eine Regel kann mehrere Ziele und mehrere Voraussetzungen haben.
|
||||||
@ -59,7 +60,7 @@ file2.txt file3.txt: file0.txt file1.txt
|
|||||||
touch file2.txt
|
touch file2.txt
|
||||||
touch file3.txt
|
touch file3.txt
|
||||||
|
|
||||||
# Make wird sich beschweren wenn es mehrere Rezepte für die gleiche Regel gibt.
|
# Make wird sich beschweren, wenn es mehrere Rezepte für die gleiche Regel gibt.
|
||||||
# Leere Rezepte zählen nicht und können dazu verwendet werden weitere
|
# Leere Rezepte zählen nicht und können dazu verwendet werden weitere
|
||||||
# Voraussetzungen hinzuzufügen.
|
# Voraussetzungen hinzuzufügen.
|
||||||
|
|
||||||
@ -67,8 +68,8 @@ file2.txt file3.txt: file0.txt file1.txt
|
|||||||
# Phony-Ziele
|
# Phony-Ziele
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
# Ein Phony-Ziel ist ein Ziel das keine Datei ist.
|
# Ein Phony-Ziel ist ein Ziel, das keine Datei ist.
|
||||||
# Es wird nie aktuell sein, daher wird Make immer versuchen es abzuarbeiten
|
# Es wird nie aktuell sein, daher wird Make immer versuchen, es abzuarbeiten
|
||||||
all: maker process
|
all: maker process
|
||||||
|
|
||||||
# Es ist erlaubt Dinge ausserhalb der Reihenfolge zu deklarieren.
|
# Es ist erlaubt Dinge ausserhalb der Reihenfolge zu deklarieren.
|
||||||
@ -89,14 +90,14 @@ ex0.txt ex1.txt: maker
|
|||||||
# Automatische Variablen & Wildcards
|
# Automatische Variablen & Wildcards
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
process: file*.txt # Eine Wildcard um Dateinamen zu Vergleichen
|
process: file*.txt # Eine Wildcard um Dateinamen zu vergleichen
|
||||||
@echo $^ # $^ ist eine Variable die eine Liste aller
|
@echo $^ # $^ ist eine Variable die eine Liste aller
|
||||||
# Voraussetzungen enthält.
|
# Voraussetzungen enthält.
|
||||||
@echo $@ # Namen des Ziels ausgeben.
|
@echo $@ # Namen des Ziels ausgeben.
|
||||||
#(Bei mehreren Ziel-Regeln enthält $@ den Verursacher der Abarbeitung
|
#(Bei mehreren Ziel-Regeln enthält $@ den Verursacher der Abarbeitung
|
||||||
#der Regel.)
|
#der Regel.)
|
||||||
@echo $< # Die erste Voraussetzung aus der Liste
|
@echo $< # Die erste Voraussetzung aus der Liste
|
||||||
@echo $? # Nur die Voraussetzungen die nicht aktuell sind.
|
@echo $? # Nur die Voraussetzungen, die nicht aktuell sind.
|
||||||
@echo $+ # Alle Voraussetzungen inklusive Duplikate (nicht wie Üblich)
|
@echo $+ # Alle Voraussetzungen inklusive Duplikate (nicht wie Üblich)
|
||||||
#@echo $| # Alle 'order only' Voraussetzungen
|
#@echo $| # Alle 'order only' Voraussetzungen
|
||||||
|
|
||||||
@ -114,20 +115,20 @@ process: ex1.txt file0.txt
|
|||||||
%.png: %.svg
|
%.png: %.svg
|
||||||
inkscape --export-png $^
|
inkscape --export-png $^
|
||||||
|
|
||||||
# Muster-Vergleichs-Regeln werden nur abgearbeitet wenn make entscheidet das Ziel zu
|
# Muster-Vergleichs-Regeln werden nur abgearbeitet, wenn make entscheidet das
|
||||||
# erzeugen
|
# Ziel zu erzeugen
|
||||||
|
|
||||||
# Verzeichnis-Pfade werden normalerweise bei Muster-Vergleichs-Regeln ignoriert.
|
# Verzeichnis-Pfade werden normalerweise bei Muster-Vergleichs-Regeln ignoriert.
|
||||||
# Aber make wird versuchen die am besten passende Regel zu verwenden.
|
# Aber make wird versuchen die am besten passende Regel zu verwenden.
|
||||||
small/%.png: %.svg
|
small/%.png: %.svg
|
||||||
inkscape --export-png --export-dpi 30 $^
|
inkscape --export-png --export-dpi 30 $^
|
||||||
|
|
||||||
# Make wird die letzte Version einer Muster-Vergleichs-Regel verwenden die es
|
# Make wird die letzte Version einer Muster-Vergleichs-Regel verwenden, die es
|
||||||
# findet.
|
# findet.
|
||||||
%.png: %.svg
|
%.png: %.svg
|
||||||
@echo this rule is chosen
|
@echo this rule is chosen
|
||||||
|
|
||||||
# Allerdings wird make die erste Muster-Vergleicher-Regel verwenden die das
|
# Allerdings wird make die erste Muster-Vergleicher-Regel verwenden, die das
|
||||||
# Ziel erzeugen kann.
|
# Ziel erzeugen kann.
|
||||||
%.png: %.ps
|
%.png: %.ps
|
||||||
@echo this rule is not chosen if *.svg and *.ps are both present
|
@echo this rule is not chosen if *.svg and *.ps are both present
|
||||||
@ -171,7 +172,7 @@ name4 ?= Jean
|
|||||||
# nicht gibt.
|
# nicht gibt.
|
||||||
|
|
||||||
override name5 = David
|
override name5 = David
|
||||||
# Verhindert das Kommando-Zeilen Argumente diese Variable ändern können.
|
# Verhindert, dass Kommando-Zeilen Argumente diese Variable ändern können.
|
||||||
|
|
||||||
name4 +=grey
|
name4 +=grey
|
||||||
# Werte an eine Variable anhängen (inkludiert Leerzeichen).
|
# Werte an eine Variable anhängen (inkludiert Leerzeichen).
|
||||||
@ -179,9 +180,9 @@ name4 +=grey
|
|||||||
# Muster-Spezifische Variablen Werte (GNU Erweiterung).
|
# Muster-Spezifische Variablen Werte (GNU Erweiterung).
|
||||||
echo: name2 = Sara # Wahr innerhalb der passenden Regel und auch innerhalb
|
echo: name2 = Sara # Wahr innerhalb der passenden Regel und auch innerhalb
|
||||||
# rekursiver Voraussetzungen (ausser wenn es den Graphen zerstören
|
# rekursiver Voraussetzungen (ausser wenn es den Graphen zerstören
|
||||||
# kann wenn es zu kompilizert wird!)
|
# kann, wenn es zu kompilizert wird!)
|
||||||
|
|
||||||
# Ein paar Variablen die von Make automatisch definiert werden.
|
# Ein paar Variablen, die von Make automatisch definiert werden.
|
||||||
echo_inbuilt:
|
echo_inbuilt:
|
||||||
echo $(CC)
|
echo $(CC)
|
||||||
echo ${CXX}
|
echo ${CXX}
|
||||||
@ -196,7 +197,7 @@ echo_inbuilt:
|
|||||||
# Variablen 2
|
# Variablen 2
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
# Der erste Typ von Variablen wird bei jeder verwendung ausgewertet.
|
# Der erste Typ von Variablen wird bei jeder Verwendung ausgewertet.
|
||||||
# Das kann aufwendig sein, daher exisitert ein zweiter Typ von Variablen.
|
# Das kann aufwendig sein, daher exisitert ein zweiter Typ von Variablen.
|
||||||
# Diese werden nur einmal ausgewertet. (Das ist eine GNU make Erweiterung)
|
# Diese werden nur einmal ausgewertet. (Das ist eine GNU make Erweiterung)
|
||||||
|
|
||||||
@ -215,7 +216,7 @@ var4 ::= good night
|
|||||||
# Funktionen
|
# Funktionen
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
# Make verfügt über eine vielzahl von Funktionen.
|
# Make verfügt über eine Vielzahl von Funktionen.
|
||||||
|
|
||||||
sourcefiles = $(wildcard *.c */*.c)
|
sourcefiles = $(wildcard *.c */*.c)
|
||||||
objectfiles = $(patsubst %.c,%.o,$(sourcefiles))
|
objectfiles = $(patsubst %.c,%.o,$(sourcefiles))
|
||||||
|
Loading…
Reference in New Issue
Block a user