Каков обычный способ работы с нестандартными библиотеками в сценарии autoconf?

Я впервые пытаюсь использовать инструментальную цепочку GNU autoconf / automake, поэтому ответ на мой вопрос может быть тривиальным.

Программе нужен OpenGL / GLUT, где заголовки и библиотеки установлены в нестандартном месте. Я нашел эти макросы, которые должны выполнять всю проверку за меня. Я просто вызываю это с помощью AX_CHECK_GLUT. Как заставить макрос находить библиотеки? Я ищу что-то вроде

./configure --with-glut-dir = / home / hanno / glut

В более общем плане: каков нормальный способ работы с нестандартными библиотеками в сценарии autoconf? Конечно, я могу поиграться с переменными CPPFLAGS и LIBS, но у меня такое чувство, что я чего-то упускаю.


person hanno    schedule 03.06.2009    source источник


Ответы (1)


Поскольку Autotools спроектирован так, что автору пакета не нужно ничего делать для поддержки необходимых компонентов, установленных в нестандартных местах. Вывод ./configure --help включает следующие строки:

LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
            nonstandard directory <lib dir>
CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
            you have headers in a nonstandard directory <include dir>

Следовательно, если у установщика есть предварительное условие, установленное в нестандартном месте, ему придется выпустить

./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib

Поскольку CPPFLAGS и LDFLAGS используются configure проверками и Makefile правилами, все должно работать.

Некоторые авторы пакетов любят предлагать параметр --with- package =location как сокращение для вышеуказанного, но обычно это не является целью параметров --with- package. Эти параметры лучше использовать , чтобы указать, следует ли использовать дополнительный пакет. , или как должно быть выполнено предварительное условие.

person adl    schedule 06.06.2009