我第一次尝试使用GNU autoconf / automake工具链,所以我的问题的答案可能是微不足道的。
程序需要OpenGL / GLUT,其中标头和库安装在非标准位置。我发现these个宏应该为我做所有的检查。我只是用 AX_CHECK_GLUT 调用它。如何让宏找到库?我正在寻找像
这样的东西./ configure --with-glut-dir = / home / hanno / glut
更一般地说:在autoconf脚本中处理非标准库位置的常规方法是什么?当然,我可以使用CPPFLAGS和LIBS变量,但我觉得我错过了一些东西。
答案 0 :(得分:3)
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-
<的目的em> package 选项。这些选项使用得更好to specify whether an optional package should be used, or how a prerequisite should be fulfilled。