我正在为autoconf中的已安装库编写自定义检查:
AC_DEFUN([AC_GHC_PKG_CHECK],[
...
GHC_PKG_RESULT=$($PYTHON autotools/check-ghc-version-range ....)
...
])
我实际执行检查的Python脚本位于项目的autotools/
子目录中。
但是,这不可移植,例如make dist-check
失败,因为从其他目录调用autoconf工具。如何引用我的Python脚本的绝对路径,以便无论当前目录是什么都能正确调用它?
答案 0 :(得分:0)
ac_top_srcdir
或ac_abs_top_srcdir
应该有效:
AC_DEFUN([AC_GHC_PKG_CHECK],[
...
GHC_PKG_RESULT=$($PYTHON $ac_top_srcdir/autotools/check-ghc-version-range ....)
...
])
编辑:我不认为这种方法会起作用 - 似乎$ac_top_srcdir
直到稍后才会被评估(AC_OUTPUT
?)。
我认为在这种情况下可能会运行类似于运行时C测试的操作:将配置测试扩展到临时文件(在这种情况下为conftest.py
而不是conftest.c
)和运行。不幸的是,还有(还)没有内置宏或者用于automake / autoconf的其他工具直接帮助完成这项任务。
幸运的是,似乎a clever person至少写了几种不同的方法。第一个是GNU pyconfigure,它似乎有facilities用于编写Python测试代码,如上所述。第二个更多的是他用于他的项目的ad hoc macro collection。
答案 1 :(得分:0)
您可以使用$srcdir
。
它不一定是绝对路径,但它是从构建树顶部指向源树顶部的路径。