Como apontar autoconf / automake para pacotes não-padrão
-
07-07-2019 - |
Pergunta
Eu estou tentando construir ZooKeeper em uma caixa de RedHat Linux. (Exatamente o que ZooKeeper é provavelmente não é importante: -)
Quando eu siga as instruções da embalagem, eu recebo:
$ autoreconf -if
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
configure.ac:33: error: possibly undefined macro: AM_PATH_CPPUNIT
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
Não consigo instalar CPPPUNIT no local padrão. (Não tem privilégios de root, o Team System tem uma política de "sem desvios" da configuração padrão.)
Eu trabalhei em torno do problema comentando as referências a
AM_PATH_CPPUNI
T no meu arquivo configure.ac, mas o que eu realmente gostaria de fazer
é instalar CPPPUNIT no meu diretório pessoal e apontar para ele, mas eu sou
não fazendo muito progresso em descobrir como dizer a autoconf / auotmake
sistema para procurá-lo em um lugar não-padrão. Alguém tem alguma dica sobre
como fazer isso?
Solução
Você deseja definir a variável de ambiente ACLOCAL_PATH.
ACLOCAL_PATH="/home/YOU/path/to/share/aclocal" autoreconf -if
Para descobrir o diretório que você precisa para ponto ACLOCAL_PATH em, você terá que encontrar o diretório que contém o arquivo .m4 que define AM_PATH_CPPUNIT.
Outras dicas
No meu caso, eu tenho esse erro por causa da falta do pacote cppunit-devel. Depois de instalar este pacote no meu servidor centos por yum -y install cppunit-devel
, tudo funciona bem.
Se a variável de caminho não pode ser adicionado ao seu perfil ou environmen .. ou o que você tem, você pode tentar "exportar" o caminho antes da execução do autoconf. Isto irá definir essa opção, pelo menos para essa sessão ...
export ACLOCAL_PATH=/home/YOU/path/to/share/aclocal
Além disso, se o impulso vem shove, você pode .. (Isso limpa para fora seu Makefiles de qualquer porcaria não-trabalho que o autoconf / configure comandos deixou com ...)
make clean
E abrir seu script "./configure", e é amiguinhos (qualquer coisa chamada 'configure. *') .. em um editor de texto. Então, um pouco cuidado "Localizar e substituir" as instâncias de qualquer "coisa" está mexendo-lo. Depois de corrigir as directivas nos scripts configurar e executá-los de novo ... com alguma sorte seus arquivos fizer vai trabalhar em seu ambiente.
Nota: Este é o que eu faço no meu MAC, geralmente para compilar LINUX SW que não é testado ou concebido para ser executado em um Mac. Esta pode ser a maneira errada de fazê-lo, mas quando não há um monte de opções, às vezes você apenas tem que chegar lá e muck com ele.
Em caso de múltiplos caminhos, adicioná-los com: separador. Como:
export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal"