Qual é a maneira normal de lidar com as localizações de biblioteca não-padrão em um script autoconf?

StackOverflow https://stackoverflow.com/questions/944235

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.

Foi útil?

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 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top