O GNU Autoconf é uma ferramenta para a produção de scripts shell para compilação, instalação e empacotamento de software em sistemas de computador onde o Bourne shell está disponível.
O Autoconf é agnóstico quanto à linguagem de programação utilizada, mas normalmente é usado para projetos que usam C, C++, Fortran, Fortran 77, Erlang ou Objective-C.
Um script configure configura um pacote de software para instalação em um sistema alvo particular. Após executar uma série de testes sobre o sistema alvo, o script configure gera arquivos de cabeçalho e um makefile a partir de templates, personalizando, desta forma, o pacote de software para o sistema alvo. Juntamente com o Automake e Libtool, o Autoconf forma o GNU Build System, que abrange várias outras ferramentas, notavelmente o Autoheader.
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
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
- Gary V. Vaughan, Ben Elliston, Tom Tromey, Ian Lance Taylor: GNU Autoconf, Automake, and Libtool