Executando NMAKE

Sintaxe

NMAKE [option ...] [macros ...] [targets ...] [@command-file ...]

Comentários

O NMAKE compila somente targets especificados ou, quando nenhum for especificado, o primeiro destino no makefile. O primeiro destino do makefile pode ser um pseudotarget que compila outros destinos. O NMAKE usa makefiles especificados com /F, ou se /F não for especificado, o arquivo Makefile do diretório atual. Se nenhum makefile for especificado, ele usará regras de inferência para criar targets de linha de comando.

O arquivo de texto command-file (ou arquivo de resposta) contém a entrada de linha de comando. Outras entradas podem preceder ou seguir @command-file. Um caminho é permitido. No command-file, as quebras de linha são tratadas como espaços. Coloque as definições de macro entre aspas se elas contiverem espaços.

Opções de NMAKE

As opções do NMAKE estão descritas na tabela a seguir. As opções são precedidas por uma barra (/) ou um traço (-) e não diferenciam maiúsculas de minúsculas. Use !CMDSWITCHES para alterar as configurações de opção em um makefile ou em Tools.ini.

Opção Finalidade
/A Força a compilação de todos os destinos avaliados, mesmo que não estejam desatualizados em comparação com os dependentes. Não força builds de destinos não relacionados.
/B Força o build mesmo que os carimbos de data/hora sejam iguais. Recomendado apenas para sistemas rápidos (resolução de dois segundos ou menos).
/C Suprime a saída padrão, incluindo erros ou avisos NMAKE não fatais, carimbos de data/hora e mensagem de direitos autorais do NMAKE. Suprime avisos emitidos por /K.
/D Exibe carimbos de data/hora de cada destino e dependente avaliado e exibe uma mensagem quando um destino não existe. Útil com /P para depurar um makefile. Use !CMDSWITCHES para definir ou limpar /D para uma parte do makefile.
/E Faz com que variáveis de ambiente substituam definições de macro do makefile.
/ERRORREPORT [ NONE | PROMPT | QUEUE | SEND ] Preterido. Relatório de configurações de controle do WER (Relatório de Erros do Windows).
/Ffilename Especifica filename como um makefile. Espaços ou tabulações podem preceder o filename. Especifique /F uma vez para cada makefile. Para fornecer um makefile da entrada padrão, especifique um traço (-) para filename e finalize a entrada de teclado com F6 ou CTRL+Z.
/G Exibe os makefiles incluídos com a diretiva !INCLUDE. Para obter mais informações, confira Diretivas de pré-processamento do Makefile.
/HELP, /? Exibe um breve resumo da sintaxe de linha de comando do NMAKE.
/I Ignora códigos de saída de todos os comandos. Para definir ou limpar /I para uma parte do makefile, use !CMDSWITCHES. Para ignorar códigos de saída para parte de um makefile, use um modificador de comando traço (-) ou .IGNORE. Substitui /K se ambos forem especificados.
/K Continua criando dependências não relacionadas, se um comando retornar um erro. Também emite um aviso e retorna um código de saída 1. Por padrão, o NMAKE será interrompido se qualquer comando retornar um código de saída diferente de zero. Os avisos de /K são suprimidos por /C; o /I substitui /K se ambos forem especificados.
/N Exibe, mas não executa comandos; os comandos de pré-processamento são executados. Não exibe comandos em chamadas recursivas do NMAKE. Útil para depurar makefiles e verificar carimbos de data/hora. Para definir ou limpar /N para uma parte do makefile, use !CMDSWITCHES.
/NOLOGO Suprime a mensagem de direitos autorais do NMAKE.
/P Exibe informações (definições de macro, regras de inferência, destinos, lista de .SUFFIXES) para a saída padrão e, em seguida, executa o build. Se não existir nenhum makefile nem um destino de linha de comando, ele exibirá apenas informações. Use com /D para depurar um makefile.
/Q Verifica carimbos de data/hora de destinos; não executa o build. Retorna um código de saída zero se todos os destinos estiverem atualizados e um código de saída diferente de zero se algum destino estiver desatualizado. Os comandos de pré-processamento são executados. Útil ao executar o NMAKE por meio de um arquivo em lote.
/R Limpa a lista .SUFFIXES e ignora regras de inferência e macros definidas no arquivo Tools.ini ou que são predefinidas.
/S Suprime a exibição de comandos executados. Para suprimir a exibição em parte de um makefile, use o modificador de comando @ ou .SILENT. Para definir ou limpar /S para uma parte do makefile, use !CMDSWITCHES.
/T Atualiza carimbos de data/hora de destinos da linha de comando (ou do primeiro destino do makefile) e executa comandos de pré-processamento, mas não executa o build.
/U Deve ser usado em conjunto com /N. Despeja arquivos NMAKE embutidos para que a saída /N possa ser usada como um arquivo em lote.
/Xfilename Envia a saída de erro do NMAKE para filename em vez de um erro padrão. Espaços ou tabulações podem preceder o filename. Para enviar a saída de erro para a saída padrão, especifique um traço (-) para filename. Não afeta a saída de comandos para erro padrão.
/Y Desabilita as regras de inferência do modo de lote. Quando essa opção está selecionada, todas as regras de inferência do modo de lote são tratadas como regras de inferência regulares.

Tools.ini e NMAKE

O NMAKE lê Tools.ini antes de ler makefiles, a menos que /R seja usado. Ele procura Tools.ini primeiro no diretório atual e, em seguida, no diretório especificado pela variável de ambiente INIT. A seção de configurações do NMAKE no arquivo de inicialização começa com [NMAKE] e pode conter qualquer informação do makefile. Especifique um comentário em uma linha separada começando com um sinal de número (#).

Códigos de saída de NMAKE

O NMAKE retorna os seguintes códigos de saída:

Código Significado
0 Nenhum erro (possivelmente um aviso)
1 Build incompleto (emitido somente quando /K é usado)
2 Erro do programa, possivelmente causado por um destes problemas:
– Um erro de sintaxe no makefile
– Um erro ou um código de saída de um comando
– Uma interrupção por parte do usuário
4 Erro do sistema – sem memória
255 O destino não está atualizado (emitido somente quando /Q é usado)

Confira também

Referência a NMAKE