Comandos em um makefile
Um bloco de descrição ou uma regra de inferência especifica um bloco de comandos a serem executados caso a dependência esteja desatualizada. O NMAKE exibe cada comando antes de executá-lo, a menos que /S
, .SILENT
, !CMDSWITCHES
ou @
seja, usado. O NMAKE vai procurar uma regra de inferência correspondente se um bloco de descrição não for seguido por um bloco de comandos.
Um bloco de comandos contém um ou mais comandos, cada um em sua própria linha. Nenhuma linha em branco pode aparecer entre a dependência ou a regra e o bloco de comandos. No entanto, uma linha que contém apenas espaços ou tabulações pode aparecer; essa linha é interpretada como um comando nulo e nenhum erro ocorre. Linhas em branco são permitidas entre linhas de comando.
Uma linha de comando começa com um ou mais espaços ou tabulações. Uma barra invertida (\
) seguida de um caractere de nova linha é interpretada como um espaço no comando. Use uma barra invertida no final de uma linha para continuar um comando na próxima linha. NMAKE interpreta a barra invertida de maneira literal se qualquer outro caractere, incluindo um espaço ou tabulação, vier após a barra invertida.
Um comando precedido por ponto e vírgula (;
) pode aparecer em uma linha de dependência ou regra de inferência, independentemente de um bloco de comandos seguir ou não:
project.obj : project.c project.h ; cl /c project.c
Modificadores de comando
Você pode especificar um ou mais modificadores de comando anteriores a um comando, opcionalmente separados por espaços ou tabulações. Assim como acontece com os comandos, os modificadores devem ser recuados.
Modificador | Finalidade |
---|---|
@ command |
Impede a exibição do comando. A exibição por comandos não é suprimida. Por padrão, o NMAKE ecoa todos os comandos executados. Use /S para suprimir a exibição de todo o makefile; use .SILENT para suprimir a exibição de parte do makefile. |
- [number] command |
Desativa a verificação de erro para command. Por padrão, o NMAKE é interrompido quando um comando retorna um código de saída diferente de zero. Se -number for usado, NMAKE será interrompido se o código de saída exceder number. Espaços ou tabulações não podem aparecer entre o traço e o number. Pelo menos um espaço ou tabulação deve aparecer entre number e command. Use /I para desativar a verificação de erros de todo o makefile; use .IGNORE para desativar a verificação de erros em parte do makefile. |
! comando |
Executa command para cada arquivo dependente se o command usar $** (todos os arquivos dependentes na dependência) ou $? (todos os arquivos dependentes na dependência com um carimbo de data/hora posterior ao do destino). |
Sintaxe filename-parts
A sintaxe filename-parts em comandos representa componentes do primeiro nome de arquivo dependente (que pode ser um dependente implícito). Os componentes de nome de arquivo são a unidade, o caminho, o nome de base e a extensão do arquivo, conforme especificado, não como existe no disco. Use %s
para representar o nome de arquivo completo. Use %|
[parts]F
(um caractere de barra vertical segue o símbolo de porcentagem) para representar partes do nome do arquivo, em que parts podem ser zero ou mais das seguintes letras, em qualquer ordem.
Letter | Descrição |
---|---|
Nenhuma letra | Nome completo (mesmo que %s ) |
d |
Unidade |
p |
Caminho |
f |
Nome de base do arquivo |
e |
Extensão de arquivo |
Por exemplo, se o nome do arquivo for c:\prog.exe
:
%s
torna-sec:\prog.exe
%|F
torna-sec:\prog.exe
%|dF
torna-sec
%|pF
torna-sec:\
%|fF
torna-seprog
%|eF
torna-seexe
Que mais você deseja saber?
Arquivos embutidos em um makefile