Utilizando GNU/Autotools em Projetos

Na elaboração de projetos de software utilizamos várias formas de padronizar a compilação e instalação. Neste artigo vou explicar como montar facilmente um autoconfigurador para sistemas GNU/Linux, onde podemos fazer a checagem das dependências necessárias para compilar nosso projeto.

[ Hits: 7.582 ]

Por: Alcione Ferreira em 26/10/2015 | Blog: http://www.alcionesytes.net


Gerando script "configure"



Agora executaremos os passos para gerar o script de configuração, na documentação eles passam uma sequência de comandos que podem ser executados, porém podemos abreviar essa sequência utilizando o seguinte comando:

autoreconf -f -i

As opções "-f" e "-i" significam, respectivamente, forçado e instalação, que quer dizer para fazer a reconfiguração do projeto de forma a ignorar versões obsoletas e para copiar as informações auxiliares de instalação, onde será colocado o texto base da documentação GNU para projetos Open Source.

Vejamos o resultado dessa execução:

autoreconf -f -i
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
src/Makefile.am: installing './depcomp'


Pronto nosso projeto já tem o seu script de configuração pronto, agora iremos executá-lo para gerar o Makefile adaptado ao nosso sistema operacional, para posterior geração do executável, vejamos a seguir.

Executando "./configure"

Ao executar o script de configuração o sistema será checado em todas as partes que especificamos no "configure.ac", vamos rodá-lo para ver o resultado:

./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iostream usability... yes
checking iostream presence... yes
checking for iostream... yes
checking string usability... yes
checking string presence... yes
checking for string... yes
checking fstream usability... yes
checking fstream presence... yes
checking for fstream... yes
checking vector usability... yes
checking vector presence... yes
checking for vector... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GTKMM... yes
checking for pg_config... pg_config
checking for size_t... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands


Pronto, os Makefiles já estão gerados e aptos para compilar o fonte e gerar o executável, se houvesse algum problema, e não conseguisse checar alguma especificação teríamos alguma mensagem de erro, mas como não foi o caso, vamos para a próxima etapa que é a geração do nosso programa.

Página anterior     Próxima página

Páginas do artigo
   1. Estrutura padrão
   2. Arquivos configure.ac e Makefile.am
   3. Arquivos src/Makefile.am e src/main.cpp
   4. Gerando script "configure"
   5. Compilando com o "make"
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Considerações sobre medição de JITTER em operadoras VOIP no Wireshark

Implementando rotas estáticas no Linux com route

Criando sites para intranet e trabalhos em equipe com o DokuWiki

Projeto GuaçuLivre - Sistema Operacional e Softwares Educacionais Livres para Computadores Pessoais e do PROINFO Pregão: FNDE 83/2008

Zimbra 7.2 no CentOS

  
Comentários
[1] Comentário enviado por eduardomozart em 26/10/2015 - 09:44h

Parabéns pelo artigo! Muito bom!

[2] Comentário enviado por ksombrah em 27/10/2015 - 09:23h


[1] Comentário enviado por jaysponsored em 26/10/2015 - 09:44h

Parabéns pelo artigo! Muito bom!


Obrigado! O próximo será na mesma linha, mas voltado para bibliotecas


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts