Para gerar nosso programa (executável), utilizaremos o comando "make", que irá, recursivamente, executar as instruções passadas nos Makefile.am que fizemos, e que geraram os Makefile correspondentes, vejamos agora o comportamento no projeto:
make
make all-recursive
make[1]: Entering directory '/home/alcione/Documentos/Artigo-Gnu-Autotools'
Making all in src
make[2]: Entering directory '/home/alcione/Documentos/Artigo-Gnu-Autotools/src'
g++ -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/x86_64-linux-gnu/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/x86_64-linux-gnu/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/x86_64-linux-gnu/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -g -O2 -MT Exemplo-main.o -MD -MP -MF .deps/Exemplo-main.Tpo -c -o Exemplo-main.o `test -f 'main.cpp' || echo './'`main.cpp
mv -f .deps/Exemplo-main.Tpo .deps/Exemplo-main.Po
g++ -g -O2 -lgtkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -L/usr/pgsql/lib -lpq -Wl,--as-needed -o Exemplo Exemplo-main.o -lgtkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -L/usr/pgsql/lib -lpq -Wl,--as-needed
make[2]: Leaving directory '/home/alcione/Documentos/Artigo-Gnu-Autotools/src'
make[2]: Entering directory '/home/alcione/Documentos/Artigo-Gnu-Autotools'
make[2]: Leaving directory '/home/alcione/Documentos/Artigo-Gnu-Autotools'
make[1]: Leaving directory '/home/alcione/Documentos/Artigo-Gnu-Autotools'
Pronto nosso programa já está compilado, observem que a quantidade de informação que é criada é muito maior que a que a configuramos. Essa é a mágica do autotools, você especifica o que precisa e o script inclui o necessário.
Vamos ver o resultado desse trabalho.
Testando execução "./src/Exemplo"
Para chamar o executável que criamos, partindo da raiz do nosso projeto, digitamos ./src/Exemplo, lembrando que esse exemplo foi o que definimos no src/Makefile.am.
Pronto! Com isso encerramos esse artigo, espero que tenham aproveitado mais esse conhecimento!
Vou disponibilizar o projeto que trabalhamos gerado pela execução do comando "make dist" na pasta raiz do projeto:
http://www.alcionesytes.net/uploads/projeto-1.0.0.tar.gz
Até o próximo artigo e viva o conhecimento!
Alcione Ferreira <sombra[at]alcionesytes.net>
Referências