Поиск настраиваемых подключаемых каталогов с помощью autoconf
-
28-10-2019 - |
Вопрос
Я пытаюсь скомпилировать программу, использующую фестивальную библиотеку.
По сути, требования состоят в том, чтобы вы включили каталоги заголовков Festival и estools в путь включения, а также оба пути к их библиотекам.
При обычной установке они просто остаются в своих папках, поэтому у вас
родовое словов качестве необходимого пути поиска и
родовое словокак путь к библиотеке.
Я думаю, что правильный способ справиться с этим - использовать параметры конфигурации "--with-estools" и "--with-festival".
Однако при установке в системе debian / ubuntu существует другая настройка. Я хотел бы иметь возможность справиться с этой настройкой, где пути поиска
родовое словои путь поиска просто
родовое словоЯ хотел бы обнаружить второй случай и обработать его автоматически, при этом по-прежнему требуя от пользователя указания первых двух каталогов, если второй случай не удовлетворяет.Как мне это сделать?
Решение
Есть ли что-то, что помешало бы такой настройке?
-
--festival-includes со значением по умолчанию (если не задано) в / usr / include / festival
-
--festival-libs со значением по умолчанию (если не установлено) /usr/lib/libfestival.XXX
То же самое и с эстулами.
Другие советы
Сопровождающему пакета вообще не нужно беспокоиться об этих деталях;это ответственность пользователя.Если пользователь установил библиотеку в нестандартном месте, то ему необходимо добавить LDFLAGS= -L / path / to / lib в файл CONFIG_SITE или при каждом вызове configure или поместить этот путь в путь поиска компилятора черезкакой-то системно-зависимый механизм.Точно так же пользователь должен добавить -I / path / to / include к CPPFLAGS.
Другими словами, debian поступает правильно, просто устанавливая библиотеки и заголовки в стандартном месте.Любой, кто решил установить библиотеки в нестандартном месте, дает себе больше работы.Вы не обязаны исправлять их ошибки.
Добавление таких параметров, как --with-festival или --with-festival-headers, бесполезно;пользователь может так же легко назначить LDFLAGS и CPPFLAGS, и эти переменные стандартизированы.
Некоторые платформы приняли Стандарт иерархии файловой системы - 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