我正在尝试学习GNU autotools,并且我正在遵循一些教程,我试着一步一步地从:
http://kern-81.homepage.t-online.de/autotools_tutorial.pdf
但我有一个问题,在第8页有手动编写的Makefile.in和一行:
BINDIR=@bindir@之后
autoconf
./configure在我生成的makefile中,我得到
BINDIR=${exec_prefix}/bin但当我这么做的时候
@echo $(exec_prefix)看起来这个变量是空的,所以我想
make install 将转到/bin,这有点奇怪,为什么不将其设置为/usr/bin,我应该向autoconf发出一些参数吗?
此外,在此.pdf文件中还写道:
bindir is an output variable of AC INIT which also detects includedir, srcdir, libdir, and others.是真的吗?因为在这个autoconf.am示例中,它是:
AC_INIT(helloworld, 0.0.1, dev@helloworld.org)那么这个简单的宏可以完成所有这些任务吗?如果是,是如何实现的?
发布于 2012-03-17 20:13:08
是的,AC_INIT完成了所有这些工作;-)您可以通过查看/usr/share/autoconf/autoconf/general.m4了解AC_INIT及其子例程是如何定义的,从而了解它是如何做到这一点的。或者,只创建一个除了AC_INIT调用之外的空configure.ac,然后查看生成的配置脚本,看看它扩展到了什么。
我认为如果exec_prefix未设置,则默认为prefix,因此二进制文件仍将进入/usr/local/bin。当然,您可以通过简单地运行make install并检查二进制文件的位置来验证这一点。
https://stackoverflow.com/questions/9749058
复制相似问题