Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

       make - GNU-Make-Dienstprogramm zur Verwaltung von Programmgruppen

ÜBERSICHT

       make [OPTION] … [ZIEL] …

BESCHREIBUNG

       Das  Dienstprogramm  make bestimmt automatisch, welche Teile eines großen Programms neu kompiliert werden
       müssen und gibt die Befehle zur Neukompilierung aus. Das Handbuch beschreibt die GNU-Implementierung  von
       make,  die  von  Richard  Stallman  und  Roland  McGrath geschrieben wurde und gegenwärtig von Paul Smith
       betreut wird. Unsere Beispiele zeigen C-Programme, da diese sehr verbreitet sind, aber  Sie  können  make
       mit  jeder  Programmiersprache  verwenden,  deren Compiler mit einem Shell-Befehl aufgerufen werden kann.
       Tatsächlich ist make nicht auf Programme beschränkt. Sie können damit jede Aufgabe  beschreiben,  in  der
       einige  Dateien  automatisch  aus  anderen  aktualisiert  werden  müssen, wann immer sich wiederum andere
       ändern.

       Um die Verwendung von make vorzubereiten, müssen Sie eine Datei namens makefile  (eine  Make-Steuerdatei)
       schreiben,  welche  die Beziehungen zwischen den Dateien in Ihrem Programm beschreibt und die Befehle zur
       Aktualisierung jeder der Dateien angibt. In einem Programm wird die ausführbare Datei typischerweise  aus
       Objektdateien aktualisiert, die im Gegenzug durch Kompilieren von Quelldateien erzeugt werden.

       Sobald  eine  geeignetes  Makefile  existiert, können Sie nach jeder Änderung an den Quelldateien mit dem
       einfachen Shell-Befehl

              make

       alle erforderlichen Neukompilierungen durchführen. Das Programm make entscheidet anhand der  Beschreibung
       im Makefile und der Zeitstempel der letzten Änderungen an den Dateien, welche Dateien aktualisiert werden
       müssen. Für jede dieser Dateien führt es die im Makefile angegebenen Befehle aus.

       make führt die im makefile angegebenen Befehle aus, um ein oder mehrere Ziele zu aktualisieren, wobei ein
       Ziel  typischerweise  ein  Programm  ist.  Falls  die Option -f nicht angegeben ist, schaut make nach den
       Dateien GNUmakefile, makefile und Makefile, in dieser Reihenfolge.

       Normalerweise sollten Sie Ihr Makefile entweder makefile oder Makefile nennen. Wir empfehlen Makefile, da
       es so an exponierter Stelle nahe des Anfangs einer Verzeichnisauflistung erscheint, auch nahe zu  anderen
       wichtigen  Dateien  wie  README.  Der Name GNUmakefile, nach dem zuerst gesucht wird, ist für die meisten
       Makefiles nicht zu empfehlen. Sie sollten diesen Namen nur verwenden, wenn Ihr Makefile speziell für  GNU
       make  geschrieben  ist  und  von anderen Versionen von make nicht verstanden wird. Falls »-« als makefile
       angegeben ist, wird aus der Standardeingabe gelesen.

       make aktualisiert ein Ziel, falls dieses von anderen Dateien abhängt, die seit der letzten Aktualisierung
       des Ziels verändert wurden, oder falls das Ziel nicht existiert.

OPTIONEN

       -b, -m
            Diese Optionen werden ignoriert und sind nur zwecks Kompatibilität zu  anderen  Versionen  von  make
            vorhanden.

       -B, --always-make
            erstellt bedingungslos alle Ziele.

       -C Verzeichnis, --directory=Verzeichnis
            wechselt  in das angegebene Verzeichnis, bevor die Makefiles gelesen werden oder irgendetwas anderes
            getan wird. Falls Sie die Option -C  mehrmals  angeben,  wird  jede  davon  relativ  zur  vorherigen
            interpretiert:  -C  /  -C  etc ist gleichbedeutend mit -C /etc. Dies ist bei rekursiven Aufrufen von
            make typisch.

       -d   gibt   zusätzlich   Debugging-Meldungen   zu   den   normalen   Verarbeitungsmeldungen   aus.    Die
            Debugging-Informationen  sagen,  welche  Dateien zum Neuerstellen infrage kommen, welche Zeitstempel
            verglichen werden und mit welchen  Ergebnissen,  welche  Dateien  tatsächlich  neu  erstellt  werden
            müssen,  welche  impliziten Regeln dabei berücksichtigt und welche angewendet werden – einfach alles
            von Interesse, wie und warum make entscheidet, was zu tun ist.

       --debug[=SCHALTER]
            gibt zusätzlich Debugging-Meldungen zu den normalen Verarbeitungsmeldungen aus. Falls die  SCHALTETR
            weggelassen werden, dann ist das Verhalten so, als wäre -d angegeben worden. SCHALTER kann eine oder
            alle  der  folgenden  Namen  sein - getrennt durch Kommata oder Leeraum. Nur der erste Buchstabe ist
            wichtig, der Rest darf entfallen: all für alle Debug-Ausgaben (gleichbedeutend mit  -d),  basic  für
            grundlegende  Debug-Ausgaben,  verbose  für ausführlichere grundlegende Debug-Ausgaben, implicit für
            die Anzeige der impliziten Regelsuchaktionen, jobs für Details zu den Befehlsaufrufen, makefile  für
            Debugging  während  der  Neuerstellung  der  Makefiles,  print  zur Anzeige der ausgeführten Rezepte
            (selbst wenn sie stillschweigend arbeiten) und why für den Grund,  aus  dem  make  sich  entschloss,
            jedes Ziel neu zu bauen. Mit none können Sie alle vorherigen Debugging-Schalter deaktivieren.

       -e, --environment-overrides
            bevorzugt Umgebungsvariablen gegenüber den Variablen in Makefiles.

       -E Zeichenkette, --eval Zeichenkette
            interpretiert  die  angegebene  Zeichenkette  mit  der  Funktion  eval, bevor irgendwelche Makefiles
            ausgewertet werden.

       -f Datei, --file=Datei, --makefile=DATEI
            verwendet die angegebene Datei als Makefile.

       -i, --ignore-errors
            ignoriert alle von den Befehlen zur Neuerstellung von Dateien ausgegebenen Fehlermeldungen.

       -I Verzeichnis, --include-dir=Verzeichnis
            gibt ein Verzeichnis an, in dem nach darin enthaltenen Makefiles  gesucht  werden  soll.  Falls  die
            Option -I mehrmals mit verschiedenen Verzeichnissen angegeben ist, werden die Verzeichnisse in genau
            der  angegebenen  Reihenfolge  durchsucht.  Im Gegensatz zu den Argumenten anderer Schalter für make
            dürfen Sie Verzeichnisse direkt nach dem Schalter angeben: -IVerzeichnis ist ebenso zulässig wie  -I
            Verzeichnis. Diese Syntax dient der Kompatibilität zum Schalter -I des C-Präprozessors.

       -j [Aufträge], --jobs[=Aufträge]
            gibt  die  Anzahl  der  Aufträge  (Befehle)  an, die gleichzeitig ausgeführt werden sollen. Wird die
            Option -j mehrmals angegeben, ist die zuletzt angegebene wirksam. Wird die Option -j  ohne  Argument
            angegeben, begrenzt make die Anzahl der gleichzeitig ausführbaren Aufträge nicht.

       --jobserver-style=Art
            gibt  die  Art  des  zu  verwendenden Auftragsservers an. Die Art kann fifo, pipe oder sem sein (nur
            unter Windows).

       -k, --keep-going
            setzt nach einer Fehlermeldung so weit wie möglich fort. Während zwar das fehlgeschlagene  Ziel  und
            die  davon  abhängigen  Ziele  nicht  neu  erstellt  werden  können,  ist es dennoch möglich, andere
            Abhängigkeiten dieser Ziele zu verarbeiten.

       -l [Last], --load-average[=Last]
            gibt an, dass keine neuen Aufträge (Befehle) gestartet werden sollen, wenn bereits  andere  Aufträge
            ausgeführt  werden  und  die  gemittelte  Last  mindestens  der  angegebenen  Last  entspricht (eine
            Fließkommazahl). Ohne Argument wird die vorherige Lastbegrenzung aufgehoben.

       -L, --check-symlink-times
            verwendet die letzte »mtime« (Veränderungszeit) zwischen Symlinks und Zielen.

       -n, --just-print, --dry-run, --recon
            gibt die Befehle aus, die ausgeführt werden würden, aber führt sie nicht wirklich aus  (außer  unter
            bestimmten Umständen).

       -o Datei, --old-file=Datei, --assume-old=Datei
            erstellt  die  angegebene  Datei  nicht  neu, selbst wenn sie älter als ihre Abhängigkeiten ist, und
            erneuert nichts aufgrund von Änderungen in der angegebenen Datei. Im Wesentlichen wird die Datei als
            uralt betrachtet und deren Regeln werden ignoriert.

       -O[Typ], --output-sync[=Typ]
            stellt beim parallelen Ausführen mehrerer Aufträge mit -j sicher, dass die  Ausgabe  jedes  Auftrags
            zusammengeführt  wird, statt sich mit den Ausgaben anderer Aufträge zu überschneiden. Falls kein Typ
            angegeben  wird  oder  target  ist,  wird  die  Ausgabe  des  gesamten  Rezepts   für   jedes   Ziel
            zusammengefasst.  Falls  line  als  Typ angegeben ist, wird die Ausgabe jeder Befehlszeile innerhalb
            eines Rezepts zusammengefasst. Falls recurse als Typ angegeben ist, wird die Ausgabe eines  gesamten
            Make-Aufrufs  rekursiv  zusammengefasst.  Falls none als Typ angegeben ist, ist die Synchronisierung
            der Ausgabe deaktiviert.

       -p, --print-data-base
            gibt die Datenbasis (Regeln und Variablenwerte) aus, die  sich  aus  der  Auswertung  der  Makefiles
            ergibt.   Dann   wird   wie  üblich  oder  anderweitig  angegeben  fortgesetzt.  Damit  werden  auch
            Versionsinformationen angezeigt, die mit dem Schalter -v ausgegeben werden (siehe  nachfolgend).  Um
            die  Datenbasis  auszugeben, ohne zu versuchen, irgendwelche Dateien neu zu erstellen, verwenden Sie
            make -p -f/dev/null.

       -q, --question
            aktiviert den »Fragemodus«. Es werden keine  Befehle  ausgeführt  oder  etwas  ausgegeben.  Es  wird
            lediglich  ein Exit-Status ausgegeben, der 0 ist, sofern die angegebenen Ziele bereits aktuell sind,
            oder anderenfalls 1.

       -r, --no-builtin-rules
            deaktiviert die Berücksichtigung der eingebauten impliziten Regeln. Außerdem wird die  Standardliste
            der Suffixe für die Suffix-Regeln geleert.

       -R, --no-builtin-variables
            definiert keine der eingebauten Variablen.

       -s, --silent, --quiet
            aktiviert den stillen Modus, in dem die ausgeführten Befehle nicht ausgegeben werden.

       --no-silent
            setzt die Option -s außer Kraft.

       -S, --no-keep-going, --stop
            setzt die Option -k außer Kraft.

       -t, --touch
            greift  auf  Dateien  zu  (markiert sie als aktuell, ohne sie wirklich zu verändern), anstelle deren
            Befehle auszuführen. Dadurch wird vorgegaukelt, dass  die  Befehle  bereits  ausgeführt  wurden,  um
            zukünftige Aufrufe von make zu täuschen.

       --trace
            gibt  Informationen zur Verwendung jedes Ziels aus, also warum das Ziel zur Neuerstellung vorgesehen
            ist und welche Befehle zur Neuerstellung ausgeführt werden.

       -v, --version
            gibt die Version von make sowie einen Urheberrechtshinweis, eine Liste der Autoren und einen Hinweis
            zum Haftungsausschluss aus.

       -w, --print-directory
            gibt eine Meldung aus, welche das Arbeitsverzeichnis vor und nach der weiteren Verarbeitung  angibt.
            Dies  ist  hilfreich,  um  Fehler  einzugrenzen,  die  in komplizierten Verschachtelungen rekursiver
            make-Aufrufe entstehen.

       --no-print-directory
            deaktiviert -w selbst dann, wenn es implizit aktiviert wurde.

       --shuffle[=MODUS]
            aktiviert das Umsortieren von Zielen und der Anordnung der Vorbedingungen. MODUS ist entweder  none,
            um  den  Umsortiermodus  zu  deaktivieren,  random,  um  die  Vorbedingungen zufällig umzusortieren,
            reverse, um Vorbedingungen in inverser Reihenfolge zu berücksichtigen oder eine Ganzzahl <Saat>, die
            den Modus random mit dem speziellen Saat-Wert aktiviert. Falls MODUS nicht angegeben  ist,  ist  die
            Vorgabe random.

       -W Datei, --what-if=Datei, --new-file=Datei, --assume-new=Datei
            täuscht  vor,  dass  die  angegebene  Ziel-Datei  gerade  geändert wurde. Wenn dies zusammen mit dem
            Schalter -n verwendet wird, zeigt es Ihnen, was  geschehen  würde,  wenn  Sie  die  Datei  verändern
            würden.  Ohne  -n ist es fast das Gleiche wie die Ausführung eines touch-Befehls mit der angegebenen
            Datei vor der Ausführung von make, aber mit dem Unterschied, dass der Änderungszeitpunkt nur in  der
            Fantasie von make geändert wurde.

       --warn-undefined-variables
            warnt, wenn eine nicht definierte Variable referenziert wird.

EXIT-STATUS

       GNU make beendet sich mit dem Status 0, wenn alle Makefiles erfolgreich ausgewertet wurden und für keines
       der  Ziele  die  Erstellung  fehlgeschlagen  ist. Der Status 1 wird zurückgeliefert, wenn der Schalter -q
       angegeben wurde und make ermittelt hat, dass ein Ziel  neu  erstellt  werden  muss.  Der  Status  2  wird
       zurückgeliefert, falls irgendwelche Fehler aufgetreten sind.

SIEHE AUCH

       Die  vollständige  Dokumentation  für  make  wird  als  ein Texinfo-Handbuch gepflegt. Wenn die Programme
       info(1) und make auf Ihrem Rechner ordnungsgemäß installiert sind, können Sie mit dem Befehl

              info make

       auf das vollständige Handbuch zugreifen.

FEHLER

       Siehe das Kapitel »Problems and Bugs« in The GNU Make Manual.

AUTOR

       Diese  Handbuchseite  wurde  von  Dennis  Morse  von  der  Stanford   University   geschrieben.   Spätere
       Aktualisierungen  stammen  von Mike Frysinger. Sie wurde von Roland McGrath überarbeitet und wird derzeit
       von Paul Smith betreut.

COPYRIGHT

       Copyright © 1992-1993, 1996-2023 Free Software Foundation, Inc. Diese Datei ist Teil von GNU Make.

       GNU Make ist freie Software; Sie können es weitergeben und/oder verändern, solange Sie sich an die Regeln
       der »GNU General Public License« halten, so wie sie von der Free Software Foundation  festgelegt  wurden;
       entweder in Version 3 der Lizenz oder (nach Ihrem Ermessen) in jeder neueren Version.

       GNU  Make  wurde mit dem Ziel veröffentlicht, dass Sie es nützlich finden, jedoch OHNE JEGLICHE GARANTIE,
       sogar ohne eine implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT  FÜR  EINEN  SPEZIELLEN  ZWECK.
       Schauen Sie für weitere Informationen bitte in der »GNU General Public License« (GNU GPL) nach.

       Zusammen  mit  diesem  Programm sollten Sie außerdem eine Kopie der »GNU General Public License« erhalten
       haben. Wenn dem nicht so ist, siehe https://www.gnu.org/licenses/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann  <mario.blaettermann@gmail.com>
       und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte  eine  E-Mail  an  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

GNU                                               26. Mai 2023                                           MAKE(1)