Usar o autoreconf sem direitos de root em um caminho de prefixo resulta em um script de configuração corrompido

1

Estou tentando compilar um pacote (libdrm-2.4.59) e usar sed e autoreconf para remover uma dependência:

sed -e "/pthread-stubs/d" -i configure.ac &&
autoreconf -fiv

Produz a seguinte saída:

autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I /u/f0/students/estermad/tmp/share/aclocal --force -I m4 ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --install --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: You should add the contents of 'm4/libtool.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: You should add the contents of 'm4/ltoptions.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: You should add the contents of 'm4/ltsugar.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: You should add the contents of 'm4/lt~obsolete.m4' to 'aclocal.m4'.
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:32: installing 'build-aux/missing'
exynos/Makefile.am: installing 'build-aux/depcomp'
autoreconf: Leaving directory '.'

Isso parece bem até agora, mas como eu chamo configure , a construção pára com um erro estranho:

...
checking for pkg-config... /u/f0/students/estermad/tmp/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for PCIACCESS... configure: error: in '/u/f0/students/estermad/xc/libdrm-2.4.59':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
...

Aqui estão algumas partes do config.log que mostram o erro, os flags do compilador e do vinculador correspondentes que foram definidos corretamente e os valores relacionados a pkg-config que não estão definidos:

configure:12927: checking for PCIACCESS
configure:12932: $PKG_CONFIG --exists --print-errors "pciaccess >= 0.10"
configure:12935: $? = 0
configure:12945: $PKG_CONFIG --exists --print-errors "pciaccess >= 0.10"
configure:12948: $? = 0
configure:12970: error: in '/u/f0/students/estermad/xc/libdrm-2.4.59':
...
ac_cv_env_PCIACCESS_CFLAGS_set=set
ac_cv_env_PCIACCESS_CFLAGS_value=-I/u/f0/students/estermad/tmp/include
ac_cv_env_PCIACCESS_LIBS_set=set
ac_cv_env_PCIACCESS_LIBS_value='-L/u/f0/students/estermad/tmp/lib -lpciaccess'
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=

O autoreconf usa libtoolize que estava faltando no meu sistema, então eu tive que criar libtool eu mesmo. Todas as compilações que faço neste sistema possuem um prefixo. O prefixo usado para criar dependências de libdrm entre outras coisas. Para libtool , corri o seguinte:

$ cd libtool-2.4.5
$ ./configure --prefix=/u/f0/students/estermad/tmp && make && make install
$ libtool --finish /u/f0/students/estermad/tmp/lib

No entanto, a compilação e a instalação da libtool são executadas sem erros. Não tenho idéia se o configure -script resultante está corrompido devido a autoreconf (localizado em / usr / bin / autoreconf), libtoolize (localizado em / u / f0 / students / estermad / tmp / bin), aclocal ou algo diferente.

Eu tentei criar libdrm sem usar autoreconf , comentando pthread-stubs manualmente. A construção correu bem. Portanto, o problema mencionado acima só é exibido depois de executar autoreconf . Eu realmente aprecio algumas dicas úteis.

    
por Danny Lo 03.02.2015 / 12:07

1 resposta

-1

A solução é atualizar o pkg-config para a versão mais recente (0.28 no momento). Eu tinha 0,18.

    
por 17.02.2015 / 22:56