Поиск пользовательских включает в себя каталоги с автоконф - PullRequest
3 голосов
/ 17 июня 2011

Я пытаюсь скомпилировать программу, которая использует библиотеку фестивалей.

По сути, требования включают в себя каталоги заголовков фестиваля и estools в пути включения и оба пути к ним в библиотеке.

При обычной установке они просто остаются в своих собственных папках, поэтому у вас есть

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

в качестве требуемого пути поиска и

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

в качестве пути к библиотеке.

Я думаю, что правильный способ справиться с этим - использовать параметр конфигурации "--with-estools" и "--with-festival".

Однако при установке в системе Debian / Ubuntu существует другая настройка. Я хотел бы иметь возможность обрабатывать эту настройку, где пути поиска

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

и путь поиска просто

/usr/lib

Я хотел бы обнаружить второй случай и обработать его автоматически, при этом все же требуя от пользователя указать первые два каталога, если второй случай не удовлетворен. Как бы я это сделал?

Ответы [ 3 ]

2 голосов
/ 22 июня 2011

Сопровождающему пакета не нужно беспокоиться об этих деталях; это ответственность пользователя. Если пользователь установил библиотеку в нестандартном месте, ему нужно добавить LDFLAGS = -L / path / to / lib в файл CONFIG_SITE или при каждом вызове configure или поместить этот путь в путь поиска компилятора через какой-то системно-зависимый механизм. Аналогично, пользователь должен добавить -I / path / to / include к CPPFLAGS.

Другими словами, debian делает правильные вещи, просто устанавливая библиотеки и заголовки в стандартном месте. Любой, кто хочет установить библиотеки в нестандартном месте, дает больше работы. Вы не обязаны исправлять их ошибки.

Добавление опций, таких как --with-festival или --with-festival-headers, не поможет; пользователь может так же легко назначить LDFLAGS и CPPFLAGS, и эти переменные стандартизированы.

2 голосов
/ 17 июня 2011

Есть ли что-то, что препятствует настройке параметров, подобных этому?

  1. - festival-include со значением по умолчанию (если не установлено) для / usr / include / festival

  2. - festival-libs со значением по умолчанию (если не установлено) для /usr/lib/libfestival.XXX

То же самое относится и к estools.

1 голос
/ 30 сентября 2012

Некоторые платформы приняли стандарт Heirarchy файловой системы - http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Это действительно должно быть отражено в autoconf, вместо того, чтобы настаивать на том, чтобы пользователь справился с этим, установив CFLAGS, потому что / opt/ openssl / lib больше не является «нестандартным» местоположением.

FHS также указывает, что / usr / local является «третичной иерархией для локальных данных, специфичных для этого хоста».Поэтому, возможно, сначала следует проверить / opt.

Подробнее о FHS / opt -> http://www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES

...