Befehle in einem Makefile

Ein Beschreibungsblock oder eine Rückschlussregel gibt einen Befehlsblock an, der ausgeführt werden soll, wenn die Abhängigkeit veraltet ist. NMAKE zeigt jeden Befehl vor der Ausführung an, es sei denn /S, , .SILENT, !CMDSWITCHESoder @ wird verwendet. NMAKE sucht nach einer übereinstimmenden Rückschlussregel, wenn auf einen Beschreibungsblock kein Befehlsblock folgt.

Ein Befehlsblock enthält mindestens einen Befehl in einer eigenen Zeile. Zwischen der Abhängigkeit oder Regel und dem Befehlsblock kann keine leere Zeile angezeigt werden. Es kann jedoch eine Zeile angezeigt werden, die nur Leerzeichen oder Registerkarten enthält. Diese Zeile wird als NULL-Befehl interpretiert, und es tritt kein Fehler auf. Zwischen Befehlszeilen sind leere Zeilen zulässig.

Eine Befehlszeile beginnt mit einem oder mehreren Leerzeichen oder Registerkarten. Ein umgekehrter Schrägstrich (\), gefolgt von einem Neuzeilenzeichen, wird als Leerzeichen im Befehl interpretiert. Verwenden Sie einen umgekehrten Schrägstrich am Ende einer Zeile, um einen Befehl in der nächsten Zeile fortzusetzen. NMAKE interpretiert den umgekehrten Schrägstrich wörtlich, wenn ein anderes Zeichen, einschließlich eines Leerzeichens oder einer Registerkarte, dem umgekehrten Schrägstrich folgt.

Ein Befehl, dem ein Semikolon (;) vorangestellt ist, kann in einer Abhängigkeitszeile oder einer Rückschlussregel angezeigt werden, unabhängig davon, ob ein Befehlsblock folgt oder nicht:

project.obj : project.c project.h ; cl /c project.c

Befehlsmodifizierer

Sie können einen oder mehrere Befehlsmodifizierer vor einem Befehl angeben, optional durch Leerzeichen oder Registerkarten getrennt. Wie bei Befehlen müssen Modifizierer eingezogen werden.

Modifizierer Zweck
@Befehl Verhindert die Anzeige des Befehls. Die Anzeige durch Befehle wird nicht unterdrückt. NmAKE gibt standardmäßig alle ausgeführten Befehle wieder. Verwenden Sie , um die Anzeige für das gesamte Makefile zu unterdrücken. Verwenden Sie /S , .SILENT um die Anzeige für einen Teil des Makefiles zu unterdrücken.
-[Zahl] Befehl Deaktiviert die Fehlerüberprüfung für den Befehl. NMAKE wird standardmäßig angehalten, wenn ein Befehl einen Exitcode ungleich 0 (null) zurückgibt. Wenn -number verwendet wird, wird NMAKE beendet, wenn der Exitcode die Anzahl überschreitet. Zwischen Bindestrich und Zahl dürfen keine Leerzeichen oder Registerkarten angezeigt werden. Zwischen number und command muss mindestens ein Leerzeichen oder eine Registerkarte angezeigt werden. Verwenden Sie , um die Fehlerüberprüfung für das gesamte Makefile zu deaktivieren. Verwenden Sie /I.IGNORE , um die Fehlerüberprüfung für einen Teil des Makefiles zu deaktivieren.
!Befehl Führt den Befehl für jede abhängige Datei aus, wenn der Befehl (alle abhängigen Dateien in der Abhängigkeit) oder $? (alle abhängigen Dateien in der Abhängigkeit mit einem späteren Zeitstempel als das Ziel) verwendet $** .

Syntax für Dateinamenteile

Filename-parts-Syntax in Befehlen stellt Komponenten des ersten abhängigen Dateinamens dar (die möglicherweise implizit abhängig sind). Dateinamenkomponenten sind das Laufwerk, der Pfad, der Basisname und die Erweiterung der Datei wie angegeben, nicht wie auf dem Datenträger vorhanden. Verwenden Sie %s , um den vollständigen Dateinamen darzustellen. Verwenden Sie %|[parts]F (ein vertikales Balkenzeichen folgt dem Prozentzeichen), um Teile des Dateinamens darzustellen, wobei Teile 0 (null) oder mehr der folgenden Buchstaben in beliebiger Reihenfolge sein können.

Letter BESCHREIBUNG
Kein Buchstabe Vollständiger Name (identisch mit %s)
d Laufwerk
p Pfad
f Dateibasisname
e Dateierweiterung

Wenn der Dateiname z. B. lautet c:\prog.exe:

  • %s wird zu c:\prog.exe

  • %|F wird zu c:\prog.exe

  • %|dF wird zu c

  • %|pF wird zu c:\

  • %|fF wird zu prog

  • %|eF wird zu exe

Worüber möchten Sie mehr erfahren?

Inlinedateien in einem Makefile

Siehe auch

NMAKE-Referenz