在autotools中获取config.h中的完整源代码路径

时间:2015-04-08 21:05:37

标签: autotools autoconf

我正在构建一个小型库,我正在使用autotools。代码用c ++编写,输出一些html代码。有很多与html代码相关的样式表和javascript代码。由于后者是固定的,代码会将这些文件复制到写入html输出(动态)的文件夹中。输出路径是函数的参数。

问题是,要复制javascript和样式表,我需要知道源目录的完整路径。一些代码基于模板,代码直接在头文件中。因此,在Makefile中定义变量(编译器标志)对我不起作用。

我打算在config.h中定义一个变量,这样,如果config.h包含在原始头文件中,我将获得路径。

我尝试使用

AC_DEFINE_UNQUOTED([DATA_PATH],[“$ srcdir”],“数据路径”

运行autoconf后,config.h文件将DATA_PATH定义为“。” 。但我需要完整的安装路径。

执行此操作的正确/最佳方式是什么

1 个答案:

答案 0 :(得分:3)

您正在寻找srcdir的绝对路径。它可以通过使用:

轻松完成
 readlink -f $srcdir

回想一下,configure.ac文件实际上是一个带有m4宏的shell脚本。所以virtually每个标准命令都可以访问: 这是处理问题的可能方法:

srcdir2=`readlink -f $srcdir`
AC_DEFINE_UNQUOTED([DATA_PATH], ["$srcdir2"], [data path])