Autoconf

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Fluxograma

O autoconf é uma ferramenta para a produção de scripts shell que configuram automaticamente os pacotes de software de código aberto para se adaptarem a vários tipos de sistemas baseados em UNIX. Uma vez produzidos, os scripts de configuração produzidos pelo autoconf são autónomos, pelo que podem depois ser executados sem a necessidade de dispôr do autoconf.

Junto com o automake e o libtool, o autoconf forma o GNU build system.

O autoconf faz uso do GNU m4 para transformar um arquivo configure.ac (primeiramente e em projetos antigos, chamado configure.in) escrito pelo usuário, em um script shell chamado configure. Quando executado, o script configure analisa as características do sistema presente de modo não interativo e gera ficheiros de cabeçalhos e makefiles personalizados derivados de modelos pré-escritos. Pode-se dizer que o autoconf compila o programa M4 do configure.ac em um script shell.

Aproximação[editar | editar código-fonte]

O autoconf é similar ao pacote metaconfig usado pelo Perl. O sistema imake usado pelo X Window System está proximamente relacionado, mas tem uma filosofia diferente.

A aproximação do autoconf para a obtenção da portabilidade consiste na pesquisa por características e não na análise de versões. Por exemplo, o compilador de C nativo do SunOS 4 não suportava o ISO C. Porém, é possível que o usuário/administrador instale um compilador de ISO C. Uma aproximação puramente baseada na versão não faria uso do compilador de ISO C, mas a aproximação de um teste de característica seria capaz de descobrir que o compilador especificado suporta o ISO C. O racional dessa aproximação é que

  • o script de configuração pode obter resultados razoáveis em sistemas novos ou desconhecidos
  • ela permite que os administradores personalizem suas máquinas e façam o script de configuração tirar vantagem dessas personalizações
  • não há necessidade de se rastrear detalhes das versões, números de correções etc., para perceber se uma característica em particular é suportada ou não.

Ligações externas[editar | editar código-fonte]