Automake - Automake

Automake
Heckert GNU white.svg
Desenvolvedor (s) Projeto GNU
lançamento inicial 28 de maio de 1996 ; 25 anos atrás ( 1996-05-28 )
Versão estável
1.16.4 / 26 de julho de 2021 ; 40 dias atrás ( 2021-07-26 )
Repositório
Sistema operacional Plataforma cruzada
Modelo Ferramenta de programação
Licença GNU General Public License
Local na rede Internet www .gnu .org / software / automake / Edite isso no Wikidata

No desenvolvimento de software , GNU Automake é uma ferramenta de programação para automatizar partes do processo de compilação. Facilita os problemas usuais de compilação. Por exemplo, ele aponta para as dependências necessárias.

Ele gera automaticamente um ou mais Makefile.in a partir de arquivos chamados Makefile.am . Cada Makefile.am contém, entre outras coisas, definições de variáveis ​​úteis para o software compilado, como sinalizadores de compilador e vinculador , dependências e suas versões, etc. Os " Makefile.in " s gerados são portáteis e compatíveis com as convenções Makefile no GNU Coding Standards , e podem ser usados ​​por scripts de configuração para gerar um Makefile funcional .

A Free Software Foundation mantémautomakecomo um dos programas GNU e como parte do sistema de construção GNU . É usado para construir vários aplicativos e bibliotecas GNU, como GTK , bem como software não GNU, como XCircuit .

Processo

Diagrama de fluxo de autoconf e automake

O Automake visa permitir que o programador escreva um makefile em uma linguagem de nível superior, ao invés de ter que escrever o makefile inteiro manualmente. Em casos simples, basta dar:

  • Uma linha que declara o nome do programa a ser construído
  • Uma lista de arquivos de origem
  • Uma lista de opções de linha de comando a serem passadas para o compilador (por exemplo, em que arquivos de cabeçalho de diretórios serão encontrados)
  • Uma lista de opções de linha de comando a serem passadas ao vinculador (de quais bibliotecas o programa precisa e em quais diretórios elas podem ser encontradas)

O Automake também se encarrega de gerar automaticamente as informações de dependência , de forma que quando um arquivo de origem for modificado, a próxima chamada do comando make saberá quais arquivos de origem precisam ser recompilados. Se o compilador permitir, o Automake tenta tornar o sistema de dependências dinâmico: sempre que um arquivo fonte é compilado, as dependências desse arquivo são atualizadas pedindo ao compilador para gerar novamente a lista de dependências do arquivo. Em outras palavras, o rastreamento de dependência é um efeito colateral do processo de compilação.

Isso tenta evitar o problema com alguns sistemas de dependência estática, onde as dependências são detectadas apenas uma vez quando o programador começa a trabalhar no projeto.

Projeto

Automake é escrito em Perl e deve ser usado com GNU Autoconf . O Automake contém os seguintes comandos:

  • local
  • automake

aclocal , entretanto, é um programa de propósito geral que pode ser útil para usuários do autoconf. O GNU Compiler Collection (GCC), por exemplo, usa aclocal embora seu makefile está escrito mão.

Como o Autoconf, o Automake não é totalmente compatível com versões anteriores . Por exemplo, um projeto criado com o automake 1.13 não funcionará necessariamente com o automake 1.14.

Veja também

Referências

Fontes

  • Vaughan, Gary V .; Elliston, Ben; Tromey, Tom (2000). GNU Autoconf, Automake e Libtool . Sams. ISBN 1-57870-190-2.

links externos