Как обычно работать с нестандартными расположениями библиотек в скрипте autoconf? - PullRequest
2 голосов
/ 03 июня 2009

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

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

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

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

1 Ответ

3 голосов
/ 06 июня 2009

При разработке 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- пакет =location в качестве сокращения для вышеперечисленного, но обычно это не цель --with- пакет вариантов , Эти параметры лучше использовать , чтобы указать, следует ли использовать необязательный пакет или как выполнить предварительное условие .

...