Comandi di un makefile
Una regola di inferenza o blocco di descrizione specifica un blocco di comandi da eseguire se la dipendenza non è aggiornata. NMAKE visualizza ogni comando prima di eseguirlo, a meno che /S
non venga usato , .SILENT
!CMDSWITCHES
, o @
. NMAKE cerca una regola di inferenza corrispondente se un blocco di descrizione non è seguito da un blocco di comandi.
Un blocco di comandi contiene uno o più comandi, ognuno nella propria riga. Nessuna riga vuota può essere visualizzata tra la dipendenza o la regola e il blocco dei comandi. Tuttavia, può essere visualizzata una riga contenente solo spazi o tabulazioni; questa riga viene interpretata come comando Null e non si verifica alcun errore. Le righe vuote sono consentite tra le righe di comando.
Una riga di comando inizia con uno o più spazi o schede. Una barra rovesciata (\
) seguita da un carattere di nuova riga viene interpretata come uno spazio nel comando. Usare una barra rovesciata alla fine di una riga per continuare un comando nella riga successiva. NMAKE interpreta letteralmente la barra rovesciata se qualsiasi altro carattere, incluso uno spazio o una scheda, segue la barra rovesciata.
Un comando preceduto da un punto e virgola (;
) può essere visualizzato in una riga di dipendenza o in una regola di inferenza, indipendentemente dal fatto che un blocco di comandi segua o meno:
project.obj : project.c project.h ; cl /c project.c
Modificatori di comandi
È possibile specificare uno o più modificatori di comando prima di un comando, separati facoltativamente da spazi o schede. Come per i comandi, i modificatori devono essere rientrati.
Modificatore | Scopo |
---|---|
@ command |
Impedisce la visualizzazione del comando. La visualizzazione da parte dei comandi non viene eliminata. Per impostazione predefinita, NMAKE restituisce tutti i comandi eseguiti. Utilizzare per eliminare la visualizzazione per l'intero makefile. Utilizzare /S .SILENT per eliminare la visualizzazione per parte del makefile. |
- Comando [number] |
Disattiva il controllo degli errori per il comando. Per impostazione predefinita, NMAKE si interrompe quando un comando restituisce un codice di uscita diverso da zero. Se si usa -number , NMAKE si arresta se il codice di uscita supera il numero. Gli spazi o le schede non possono essere visualizzati tra il trattino e il numero. Almeno uno spazio o una scheda devono essere visualizzati tra numero e comando. Usare per disattivare il controllo degli errori per l'intero makefile. Usare /I .IGNORE per disattivare il controllo degli errori per parte del makefile. |
! comando |
Esegue il comando per ogni file dipendente se il comando usa $** (tutti i file dipendenti nella dipendenza) o $? (tutti i file dipendenti nella dipendenza con un timestamp successivo rispetto alla destinazione). |
Sintassi filename-parts
La sintassi filename-parts nei comandi rappresenta i componenti del primo nome file dipendente (che può essere un dipendente implicito). I componenti del nome file sono l'unità, il percorso, il nome di base e l'estensione del file, come specificato, non come esiste su disco. Usare %s
per rappresentare il nome file completo. Usare %|
[parti]F
(un carattere barra verticale segue il simbolo percentuale) per rappresentare parti del nome file, dove le parti possono essere zero o più delle lettere seguenti, in qualsiasi ordine.
Lettera | Descrizione |
---|---|
Nessuna lettera | Nome completo (uguale a %s ) |
d |
Unità |
p |
Percorso |
f |
Nome di base file |
e |
Estensione di file |
Ad esempio, se il nome file è c:\prog.exe
:
%s
diventac:\prog.exe
%|F
diventac:\prog.exe
%|dF
diventac
%|pF
diventac:\
%|fF
diventaprog
%|eF
diventaexe