Manuais para a linha de comandos

Man » Manual online do make - documentação online detalhada para a página de manual do make

🌍
make - Utilitário GNU Make para manter grupos de programas

SINTAXE

make [OPÇÃO]... [ALVO]...

DESCRIÇÃO

O utilitário make determinará automaticamente quais partes de um programa grande precisam ser recompiladas e emitirá os comandos para recompilá-las. O manual descreve a implementação GNU do make, que foi escrito por Richard Stallman e Roland McGrath, e atualmente é mantido por Paul Smith. Nossos exemplos mostram programas em C, pois são muito comuns, mas você pode usar make com qualquer linguagem de programação cujo compilador possa ser executado com um comando de shell. Na verdade, make não é limitado a programas. Você pode usá-lo para descrever qualquer tarefa em que alguns arquivos devem ser atualizados automaticamente a partir de outros sempre que os outros forem alterados.

Para se preparar para usar make, você deve escrever um arquivo chamado makefile que descreva os relacionamentos entre os arquivos em seu programa e forneça comandos para atualizar cada arquivo. Em um programa, tipicamente o arquivo executável é atualizado a partir de arquivos de objeto, que, por sua vez, são criados compilando arquivos de código-fonte.

Uma vez que um makefile adequado exista, sempre que você alterar alguns arquivos de código-fonte, este simples comando de shell:

make

é suficiente para executar todas as recompilações necessárias. O programa make usa a descrição do makefile
e os tempos de modificação dos arquivos para decidir quais dos arquivos precisam ser atualizados.

Para cada um desses arquivos, ele emite os comandos registrados no makefile.

make executa comandos no makefile para atualizar um ou mais alvos, onde alvo é tipicamente um
programa. Se nenhuma opção -f estiver presente, make procurará pelos makefiles GNUmakefile, makefile e

Makefile, nessa ordem.

Normalmente, você deve nomear seu makefile como makefile ou Makefile. (Recomendamos Makefile porque ele aparece proeminentemente perto do início de uma listagem de diretório, bem perto de outros arquivos importantes, como README.) O primeiro nome verificado, GNUmakefile, não é recomendado para a maioria dos makefiles. Você deve usar este nome se tiver um makefile que seja específico para GNU Make e não será entendido por outras versões de make. Se makefile for '-', a entrada padrão será lida.

make atualiza um alvo se ele depender de arquivos de pré-requisito que foram modificados desde que o alvo foi modificado pela última vez, ou se o alvo não existir.

OPÇÕES

-b, -m

Essas opções são ignoradas para compatibilidade com outras versões de make.

-B, --always-make

Force o recálculo de todos os alvos incondicionalmente.

-C dir, --directory=dir

Altere para o diretório dir antes de ler os makefiles ou fazer qualquer outra coisa. Se várias opções -C forem especificadas, cada uma é interpretada em relação à anterior: -C / -C etc. é equivalente a -C /etc. Isso é normalmente usado com invocações recursivas de make.

-d Imprima informações de depuração, além do processamento normal. As informações de depuração
dizem quais arquivos estão sendo considerados para recriação, quais tempos de arquivo estão sendo comparados
e com quais resultados, quais arquivos realmente precisam ser recriados, quais regras implícitas são consideradas e quais são aplicadas - tudo interessante sobre como make decide o que fazer.

--debug[=FLAGS]

Imprima informações de depuração, além do processamento normal. Se os sinalizadores forem omitidos, então o comportamento é o mesmo que se -d fosse especificado. FLAGS pode ser qualquer um ou todos os seguintes nomes, separados por vírgulas ou espaços. Apenas o primeiro caractere é significativo: o restante pode ser omitido: all para toda a saída de depuração (o mesmo que usar -d), basic para depuração básica, verbose para depuração básica mais detalhada, implicit para mostrar operações de pesquisa de regras implícitas, jobs para detalhes sobre a invocação de comandos, makefile para depuração durante a recriação de makefiles, print mostra todas as receitas que são executadas, mesmo que sejam silenciosas, e why mostra a razão pela qual make decidiu reconstruir cada alvo. Use none para desabilitar todos os sinalizadores de depuração anteriores.

-e, --environment-overrides

Dê às variáveis ​​obtidas do ambiente precedência sobre as variáveis ​​dos makefiles.

-E string, --eval=string

Execute o comando shell e, em seguida, continue.

-f file, --file=file

Use file como o makefile.

-i, --ignore-errors

Continue mesmo se um comando retornar um erro.

-I dir, --include-dir=dir

Adicione dir à lista de diretórios que serão pesquisados ​​para arquivos include.

-j [n], --jobs[=n]

Execute n comandos em paralelo. Se n não for especificado, execute o máximo possível.

-k, --keep-going

Continue após um erro.

-l, --local-variables

Defina as variáveis ​​localmente para o makefile em que são definidas.

-L, --library-dir=dir

Adicione dir à lista de diretórios que serão pesquisados ​​para bibliotecas.

-m, --missing-makefile

Não interrompa se o makefile não for encontrado.

-n, --just-print

Imprima os comandos a serem executados, mas não os execute.

-o file, --output-file=file

Defina o nome do arquivo de saída.

-p, --print-data-base

Imprima o banco de dados de variáveis ​​internas de make.

-q, --quiet

Suprima a maioria das mensagens.

-r, --recursive

Faça com que make seja executado recursivamente.

-R, --no-recursion

Não faça com que make seja executado recursivamente.

-s, --silent

Suprima todas as mensagens.

-S, --no-print-commands

Não imprima os comandos a serem executados.

-t, --touch

Atualize os alvos sem executar os comandos.

--trace

Imprima informações sobre a disposição de cada alvo (por que o alvo está sendo reconstruído e quais comandos são executados para reconstruí-lo).

-v, --version

Imprima a versão do programa make, além de um aviso de direitos autorais, uma lista de autores e um aviso de que não há garantia.

-w, --print-directory

Imprima uma mensagem contendo o diretório de trabalho antes e depois de outros processamentos. Isso pode ser útil para rastrear erros de ninhos complicados de comandos make recursivos.

--no-print-directory

Desative -w, mesmo que tenha sido ativado implicitamente.

--shuffle[=MODE]

Habilite a mistura da ordem dos alvos e pré-requisitos. MODE é um de none para desativar o modo de mistura, random para misturar os pré-requisitos em ordem aleatória, reverse para considerar os pré-requisitos em ordem inversa ou um inteiro , que habilita o modo aleatório com um valor de semente específico. Se MODE for omitido, o padrão é random.

-W file, --what-if=file, --new-file=file, --assume-new=file

Finja que o arquivo alvo foi modificado. Quando usado com o sinalizador -n, isso mostra o que aconteceria se você modificasse esse arquivo. Sem -n, é quase o mesmo que executar um comando touch no arquivo fornecido antes de executar make, exceto que o tempo de modificação é alterado apenas na imaginação de make.

STATUS DE SAÍDA

GNU Make sai com um status de zero se todos os makefiles foram analisados ​​com sucesso e nenhum dos alvos que foram construídos falhou. Um status de um será retornado se o sinalizador -q for usado e make determinar que um alvo precisa ser reconstruído. Um status de dois será retornado se ocorrerem quaisquer erros.

VEJA TAMBÉM

A documentação completa para make é mantida como um manual Texinfo. Se os programas info e make estiverem instalados corretamente em seu site, o comando

info make

deve fornecer acesso ao manual completo.

ERROS

Veja o capítulo "``Problemas e erros''" no Manual GNU Make.

AUTOR

Esta página de manual foi contribuída por Dennis Morse da Universidade de Stanford. Atualizações adicionais contribuídas por Mike Frysinger. Foi refeito por Roland McGrath. Mantido por Paul Smith.

DIREITOS AUTORAIS

Copyright © 1992-1993, 1996-2023 Free Software Foundation, Inc. Este arquivo faz parte do GNU Make.

GNU Make é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License, conforme publicada pela Free Software Foundation; versão 3 da Licença ou (à sua opção) qualquer versão posterior.

GNU Make é distribuído na esperança de que será útil, mas SEM NENHUMA GARANTIA; sem até mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR. Veja o GNU General Public License para mais detalhes.

Você deve ter recebido uma cópia da GNU General Public License junto com este programa. Se não, veja https://www.gnu.org/licenses/.