Каков обычный способ работы с нестандартными расположениями библиотек в сценарии автоконфигурации?
-
09-09-2019 - |
Вопрос
Я пытаюсь впервые использовать набор инструментов GNU autoconf / automake, поэтому ответ на мой вопрос может быть тривиальным.
Программе нужен OpenGL / GLUT, где заголовки и библиотеки установлены в нестандартном месте.Я нашел эти макросы, которые должны выполнять всю проверку за меня.Я просто называю это с AX_CHECK_GLUT ТОПОР_CHECK_GLUT.Как мне заставить макрос находить библиотеки?Я ищу что-то вроде
./configure --with-glut-dir=/главная страница/ханно/перенасыщение
В более общем плане:Каков обычный способ работы с нестандартными расположениями библиотек в сценарии автоконфигурации?Конечно, я могу поиграть с переменными CPPFLAGS и LIBS, но у меня такое чувство, что я чего-то не понимаю.
Решение
Благодаря тому, как разработаны автоинструменты, автору пакета не нужно ничего делать для поддержки предварительных условий, установленных в нестандартных расположениях.Результат работы ./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-
упаковка Опции.Эти варианты лучше использовать чтобы указать, следует ли использовать необязательный пакет или как должно выполняться предварительное условие.