Já que você está usando o autotools para gerar seus Makefiles, você precisa dizer ao automake como encontrar as dependências de cabeçalho e biblioteca do seu projeto e incorporá-los nos Makefiles finais. Esta não é minha área de especialização, mas vou tentar apontar você na direção certa. A maioria dos itens a seguir é baseada no tutorial encontrado em Usando bibliotecas C / C ++ com Automake e Autoconf
Primeiro, você deve modificar o arquivo configure.ac de nível superior para adicionar a dependência do Gtk-2.0. Você pode usar a macro PKG_CHECK_MODULES
para executar pkg-config
para encontrar as diretivas de inclusão e biblioteca correspondentes - é uma boa prática verificar se pkg-config
existe primeiro, por isso devemos adicionar um teste PKG_PROG_PKG_CONFIG
também. As partes em negrito indicam o que é adicionado, em relação aos arquivos no tutorial original do amhello do qual você começou.
AC_INIT([amhello], [1.0], [[email protected]])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
])
dnl Test for pkg-config
PKG_PROG_PKG_CONFIG([0.22])
dnl Test for gtk+
PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24.10])
AC_OUTPUT
Em seguida, no seu src/Makefile.am
, você pode recuperar os CFLAGS e LIBS usando o identificador GTK
usado na macro PKG_CHECK_MODULES
acima
bin_PROGRAMS = hello
hello_SOURCES = main.c
AM_CPPFLAGS = ${GTK_CFLAGS}
hello_LDADD = ${GTK_LIBS}
Quando você executar novamente o make
, ele deverá gerar novamente o arquivo src / Makefile com os caminhos -I
include, -L
, bibliotecas e bibliotecas.