Idioma: 日本語 | Español | Français | Português | 中文 | English
Anterior | Próximo | Índice | Original em inglês (gnu.org)

1 Visão geral do make

O utilitário make determina automaticamente quais partes de um programa grande precisam ser recompiladas e emite os comandos para recompilá-las. Este manual descreve a versão GNU, o GNU make. O GNU make foi implementado por Richard M. Stallman e Roland McGrath, e desde a versão 3.76 seu desenvolvimento está a cargo de Paul D. Smith.

O GNU make está em conformidade com a seção 6.2 da IEEE Standard 1003.2-1992 (POSIX.2).

Nos exemplos deste livro usamos programas em linguagem C, por ser a mais comum. No entanto, é possível usar o make com qualquer linguagem de programação cujo compilador possa ser executado a partir de um comando do shell. Na verdade, o make nem sequer se limita a programas. Sempre que houver uma tarefa do tipo «quando um arquivo é modificado, outro arquivo deve ser atualizado automaticamente em função disso», você pode aplicá-lo.

Preparação e execução do make

Para preparar o uso do make, você precisa escrever um arquivo chamado makefile. Esse arquivo descreve as relações entre os arquivos que compõem o programa e os comandos para atualizar cada um deles. Em um programa típico, por exemplo, o arquivo executável é gerado a partir de arquivos objeto (object files), os quais, por sua vez, são gerados pela compilação dos arquivos fonte.

Uma vez que exista um makefile adequado, sempre que você alterar os arquivos fonte basta digitar este simples comando do shell:

make

Isso é suficiente para executar todas as recompilações necessárias. O make decide quais arquivos precisam ser atualizados com base na base de dados do makefile e nos horários da última modificação de cada arquivo. Para cada arquivo que precisa ser atualizado, ele emite as receitas (recipe, o conteúdo de execução da regra) registradas na base de dados.

Quais arquivos recompilar e como fazê-lo pode ser controlado passando argumentos de linha de comando ao make. Consulte o capítulo Como executar o make.

1.1 Como ler este manual

Se você está tendo o primeiro contato com o make ou quer apenas ter uma visão geral, leia somente as primeiras seções de cada capítulo e pule as posteriores. Em todos os capítulos, as primeiras seções têm conteúdo introdutório ou geral, e as seções posteriores têm conteúdo mais especializado ou técnico. A exceção é o capítulo 2, «Introdução aos Makefiles», cujo conteúdo é inteiramente introdutório.

Se você já está acostumado com outros programas make, comece pelo capítulo Recursos do GNU make, que apresenta a lista dos recursos adicionais que o GNU make oferece. Veja também o capítulo Incompatibilidades e recursos não implementados, que explica os poucos pontos que existem em outros make mas faltam no GNU make.

Para uma referência rápida, consulte o resumo de opções, a Referência rápida e a seção Nomes especiais de alvos embutidos.

1.2 Problemas e bugs

Se você tiver problemas com o GNU make ou achar que encontrou um bug, por favor relate-o aos desenvolvedores. Não podemos prometer que algo será feito, mas é bem possível que queiramos corrigi-lo.

Antes de relatar um bug, certifique-se de que realmente encontrou um bug de verdade. Releia a documentação com atenção e veja se ela de fato diz que você pode fazer aquilo que está tentando fazer. Se não estiver claro se algo deveria ser possível ou não, relate isso também: trata-se de um bug na documentação!

Antes de relatar um bug ou tentar corrigi-lo por conta própria, procure isolá-lo no menor makefile possível que reproduza o problema. Em seguida, envie-nos esse makefile junto com o resultado exato que o make produziu, incluindo quaisquer mensagens de erro ou de aviso. Por favor, não parafraseie essas mensagens: o melhor é copiá-las e colá-las diretamente no relatório. Ao criar esse makefile reduzido, tome cuidado para não usar ferramentas não livres ou incomuns nas suas receitas: na maioria das vezes é possível emular o que tal ferramenta faria com simples comandos do shell. Por fim, não deixe de explicar o que você esperava que acontecesse; isso nos ajuda a decidir se o problema estava de fato na documentação.

Uma vez que você tenha o problema identificado com precisão, pode relatá-lo de uma destas duas maneiras. Envie um e-mail para o seguinte endereço:

bug-make@gnu.org

ou use a nossa ferramenta de gerenciamento de projeto baseada na Web, em:

https://savannah.gnu.org/projects/make/

Além das informações acima, lembre-se de incluir o número da versão do make que você está usando. Você pode obter essa informação com o comando make --version. Não se esqueça também de informar o tipo de máquina e o sistema operacional que utiliza. Essas informações também podem ser obtidas observando as últimas linhas da saída do comando make --help.

Se você quiser propor uma alteração de código, consulte a seção «Submitting Patches» do arquivo README.

(N. do T.: os contatos acima são os endereços originais do projeto oficial (GNU). Os relatos de bug devem preferencialmente ser escritos em inglês, e não relate ao GNU erros do próprio texto traduzido. Observações sobre a tradução devem ser enviadas a ecoop.net.)


Anterior | Próximo | Índice | Original em inglês (gnu.org)