Instale o Mesa3D no Debian - LIBDRM não encontrado pelo configure autoconf

1

Estou tentando compilar e instalar o mesa3D a partir do código-fonte. ( ftp://ftp.freedesktop.org/pub/mesa /11.0.0/mesa-11.0.0-rc3.tar.gz )

Estou na configure step

./configure \
CXXFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
CFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
--disable-xvmc \
--disable-glx \
--disable-dri \
--with-dri-drivers="" \
--with-gallium-drivers="swrast" \
--enable-texture-float \
--disable-shared-glapi \
--disable-egl \
--with-egl-platforms="" \
--enable-gallium-osmesa \
--enable-gallium-llvm=yes \
--with-llvm-shared-libs \
--prefix=/opt/mesa/11.0.0/llvmpip

Continuo recebendo o erro sobre configure não encontrar a biblioteca LIBDRM

checking for LIBDRM... no
configure: error: shared GLAPI required when building two or more of
                      the following APIs - opengl, gles1 gles2

Mesmo que a biblioteca seja conhecida por ldconfig

ldconfig -p | grep drm
libdrm_radeon.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_radeon.so.1
libdrm_radeon.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_radeon.so
libdrm_nouveau.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so.1
libdrm_nouveau.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so
libdrm_intel.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
libdrm_intel.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_intel.so
libdrm.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm.so.2
libdrm.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm.so

Eu tentei usar a variável LDFLAGS env, mas sem sucesso

LDFLAGS='-L/usr/lib/x86_64-linux-gnu/' ./configure <my configure parameters here>

ou

export LDFLAGS="-L/usr/lib/x86_64-linux-gnu/" && ./configure <my configure parameters here> 

Aqui está a parte no script de configuração (que eu suponho que seja) gerando esse erro

# Check for libdrm

pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBDRM" >&5
$as_echo_n "checking for LIBDRM... " >&6; }

if test -n "$LIBDRM_CFLAGS"; then
    pkg_cv_LIBDRM_CFLAGS="$LIBDRM_CFLAGS"
 elif test -n "$PKG_CONFIG"; then
    if test -n "$PKG_CONFIG" && \
    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdrm >= \$LIBDRM_REQUIRED\""; } >&5
  ($PKG_CONFIG --exists --print-errors "libdrm >= $LIBDRM_REQUIRED") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
  pkg_cv_LIBDRM_CFLAGS='$PKG_CONFIG --cflags "libdrm >= $LIBDRM_REQUIRED" 2>/dev/null'
                      test "x$?" != "x0" && pkg_failed=yes
else
  pkg_failed=yes
fi
 else
    pkg_failed=untried
fi

Você poderia fornecer algumas proposições ou dicas para resolver esse problema?

Obrigado

    
por LokmanDz 22.03.2016 / 19:08

3 respostas

0

Aqui está como eu criei o Mesa3D a partir do código-fonte no Debian. Obrigado às respostas e comentários de todas as pessoas.

Primeiro, tive que instalar o libdrm-dev package.

# apt-get install libdrm-dev

Em seguida, verifique onde os arquivos de cabeçalho e lib foram instalados

# dpkg-query -L libdrm-dev
...
/usr/include/libdrm/drm.h
...
/usr/lib/x86_64-linux-gnu/libdrm.a
...

Depois disso, exporte duas variáveis de env necessárias para configure para vincular a libdrm ( link )

# export LIBDRM_CFLAGS="-I/usr/include/libdrm/"
# export LIBDRM_LIBS="-L/usr/lib/x86_64-linux-gnu/"

Finalmente, configure , make e make install

# ./configure <parameters here>
# make -j24 # running on a 24 cores machine
# make -j24 install

Caso contrário, o segundo erro que eu estava recebendo,

configure: error: shared GLAPI required when building two or more of
                  the following APIs - opengl, gles1 gles2

não foi vinculado a libdrm . Foi por causa de libgalpi que não deve ser desativado ao executar configure !

    
por 23.03.2016 / 14:57
1

Bibliotecas vistas por ldconfig são usadas para vinculação de tempo de execução; compilar requer um symlink extra (e arquivos de cabeçalho na maioria dos casos). Neste caso você precisa instalar libdrm-dev , e provavelmente outros pacotes -dev também.

Você pode encontrar Como construir mesa útil; Ele explica em detalhes como construir o Mesa a partir do código-fonte no Debian.

    
por 22.03.2016 / 20:00
1

As bibliotecas de tempo de execução são instaladas, mas, de acordo com a sua resposta de comentário, os pacotes de desenvolvimento não são - é disso que o erro ./configure está reclamando. Não tenho certeza do nome exato do pacote, você provavelmente terá que fazer um apt-cache search , mas se você instalar o pacote -dev para libDRM, isso deve resolver esse problema. Você pode encontrar outro erro -dev package not installed, apenas continue instalando os pacotes -dev necessários até que a execução ./configure seja concluída.

    
por 22.03.2016 / 19:59