Pergunta

Estou tentando compilar um programa que usa a biblioteca do festival.

Basicamente, os requisitos são que você inclua os diretórios de cabeçalho do festival e estools no caminho de inclusão e inclua os dois caminhos de biblioteca.

Em uma instalação normal, eles simplesmente permanecem em suas próprias pastas, então você

/some/path/festival/src/include 
/some/other/path/estools/include

como o caminho de pesquisa obrigatório e

/some/path/festival/src/lib
/some/other/path/estools/lib

como o caminho da biblioteca.

Acho que a maneira adequada de lidar com isso é com as opções de configuração "--with-estools" e "--with-festival".

No entanto, há uma configuração diferente quando ele é instalado em um sistema debian / ubuntu. Eu gostaria de ser capaz de lidar com essa configuração, onde os caminhos de pesquisa estão

/usr/include/festival
/usr/include/estools

e o caminho de pesquisa é apenas

/usr/lib

Gostaria de detectar o segundo caso e tratá-lo automaticamente, mas ainda exigindo que o usuário especifique os primeiros dois diretórios se o segundo caso não for satisfeito.Como eu faria isso?

Foi útil?

Solução

Existe algo que impediria opções de configuração como essa?

  1. --festival-includes com um valor padrão (se não definido) para / usr / include / festival

  2. --festival-libs com um valor padrão (se não definido) para /usr/lib/libfestival.XXX

O mesmo vale para estools.

Outras dicas

Não há necessidade do mantenedor do pacote se preocupar com esses detalhes;é responsabilidade do usuário.Se o usuário instalou uma biblioteca em um local não padrão, o usuário precisa adicionar LDFLAGS= -L / path / to / lib a um arquivo CONFIG_SITE ou a cada invocação de configure ou colocar esse caminho no caminho de pesquisa do compilador por meioalgum mecanismo dependente do sistema.Da mesma forma, o usuário deve anexar -I / path / to / include ao CPPFLAGS.

Em outras palavras, o debian está fazendo a coisa certa simplesmente instalando as bibliotecas e cabeçalhos no local padrão.Qualquer pessoa que opte por instalar as bibliotecas em um local fora do padrão está se dando mais trabalho.Não é sua responsabilidade consertar os erros deles.

Adicionar opções como --with-festival ou --with-festival-headers não é útil;o usuário pode facilmente atribuir a LDFLAGS e CPPFLAGS, e essas variáveis são padronizadas.

Algumas plataformas adotaram o Filesystem Heirarchy Standard - http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Isso realmente deve ser refletido no autoconf, em vez de insistir que o usuário deve lidar com isso definindo CFLAGS, porque / opt / openssl / lib não é mais um local "não padrão".

O FHS também especifica que / usr / local é uma "hierarquia terciária para dados locais, específica para este host."Portanto, provavelmente / opt deve ser verificado primeiro.

Mais sobre FHS / opt -> http://www.pathname.com / fhs / pub / fhs-2.3.html # OPTADDONAPPLICATIONSOFTWAREPACKAGES

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