我正在构建一个小型库,我正在使用autotools。代码用c ++编写,输出一些html代码。有很多与html代码相关的样式表和javascript代码。由于后者是固定的,代码会将这些文件复制到写入html输出(动态)的文件夹中。输出路径是函数的参数。
问题是,要复制javascript和样式表,我需要知道源目录的完整路径。一些代码基于模板,代码直接在头文件中。因此,在Makefile中定义变量(编译器标志)对我不起作用。
我打算在config.h中定义一个变量,这样,如果config.h包含在原始头文件中,我将获得路径。
我尝试使用
AC_DEFINE_UNQUOTED([DATA_PATH],[“$ srcdir”],“数据路径”
运行autoconf后,config.h文件将DATA_PATH定义为“。” 。但我需要完整的安装路径。
执行此操作的正确/最佳方式是什么
答案 0 :(得分:3)
您正在寻找srcdir
的绝对路径。它可以通过使用:
readlink -f $srcdir
回想一下,configure.ac文件实际上是一个带有m4
宏的shell脚本。所以virtually
每个标准命令都可以访问:
这是处理问题的可能方法:
srcdir2=`readlink -f $srcdir`
AC_DEFINE_UNQUOTED([DATA_PATH], ["$srcdir2"], [data path])