Pregunta

Estoy intentando compilar un programa que use la biblioteca del festival.

Básicamente, los requisitos son que incluya los directorios de encabezado de festival y estools en la ruta de inclusión, e incluya ambas rutas de biblioteca.

En una instalación normal, simplemente permanecen en sus propias carpetas, por lo que tiene

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

como la ruta de búsqueda requerida, y

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

como ruta de la biblioteca.

Creo que la forma correcta de manejar esto es con una opción de configuración "--with-estools" y "--with-festival".

Sin embargo, hay una configuración diferente cuando se instala en un sistema debian / ubuntu. Me gustaría poder manejar esta configuración, donde están las rutas de búsqueda

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

y la ruta de búsqueda es simplemente

/usr/lib

Me gustaría detectar el segundo caso y manejarlo automáticamente, sin dejar de requerir que el usuario especifique los dos primeros directorios si el segundo caso no se cumple.¿Cómo haría esto?

¿Fue útil?

Solución

¿Hay algo que impida configurar opciones como esta?

  1. --festival-includes con un valor predeterminado (si no está establecido) a / usr / include / festival

  2. --festival-libs con un valor predeterminado (si no está configurado) a /usr/lib/libfestival.XXX

Lo mismo ocurre con los estools.

Otros consejos

No es necesario que el encargado del paquete se preocupe en absoluto por estos detalles;es responsabilidad del usuario.Si el usuario ha instalado una biblioteca en una ubicación no estándar, entonces el usuario debe agregar LDFLAGS= -L / path / to / lib a un archivo CONFIG_SITE oa cada invocación de configure o poner esa ruta en la ruta de búsqueda del compilador a través dealgún mecanismo dependiente del sistema.De manera similar, el usuario debe agregar -I / ruta / a / incluir a CPPFLAGS.

En otras palabras, debian está haciendo lo correcto simplemente instalando las bibliotecas y los encabezados en la ubicación estándar.Cualquiera que elija instalar las bibliotecas en una ubicación no estándar se está dando más trabajo.No es su responsabilidad corregir sus errores.

Agregar opciones como --with-festival o --with-festival-headers no es útil;el usuario puede asignar fácilmente a LDFLAGS y CPPFLAGS, y esas variables están estandarizadas.

Algunas plataformas han adoptado el estándar de jerarquía del sistema de archivos: http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Esto realmente debería reflejarse en autoconf, en lugar de insistir en que el usuario debe manejarlo configurando CFLAGS, porque / opt / openssl / lib ya no es una ubicación "no estándar".

La FHS también especifica que / usr / local es una "jerarquía terciaria para datos locales, específica para este host".Por lo tanto, podría decirse que / opt debería comprobarse primero.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top