Qual é a maneira normal de lidar com as localizações de biblioteca não-padrão em um script autoconf?
-
09-09-2019 - |
Pergunta
Eu estou tentando usar o GNU autoconf / automake toolchain, pela primeira vez, então a resposta à minha pergunta poderia ser trivial.
O programa precisa OpenGL / GLUT onde os cabeçalhos e bibliotecas são instaladas em um local não padrão. Eu encontrei essas macros que deve fazer toda a verificação para mim. Estou simplesmente chamá-lo com AX_CHECK_GLUT . Como posso fazer a macro encontrar as bibliotecas? Eu estou procurando algo como
./ configure --with-GLUT-dir = / home / hanno / excesso
De modo mais geral: O que é a maneira normal de lidar com as localizações de biblioteca não-padrão em um script autoconf? Claro, eu posso brincar com variáveis ??CPPFLAGS e LIBS, mas tenho a sensação de que eu estou faltando alguma coisa.
Solução
A forma como os Autotools são projetados, um autor pacote não precisa fazer nada para pré-requisito suporte instalado em locais não-padrão. A saída de ./configure --help
inclui as seguintes linhas:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
Portanto, se o instalador tem um pré-requisito instalada em um local não padrão, ele terá de emissão
./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib
Porque CPPFLAGS
e LDFLAGS
são usados ??por cheques configure
e regras Makefile
, tudo deve funcionar.
Alguns autores pacote gostaria de oferecer uma --with-
pacote opção =location
como um atalho para o acima, mas isso normalmente não é o propósito da --with-
pacote opções. Estas opções são melhor utilizados para especificar se um pacote opcional deve ser usado , ou como um pré-requisito deve ser cumprido .