一堆项目 foo-AB、foo-BC、foo-AC 等,每个都依赖于 foo-A、foo-B、foo-C 等。
每个 foo-X 都会安装一个 pkg-config 文件(foo-X.pc.in),其中包含一个变量srcdir=@datarootdir@/foo/foo-B
. 一个 foo-XY 项目需要引用 Xsrcdir 和 Ysrcdir 中的文件。
目前我们在configure.ac中这样做:
PKG_CHECK_MODULES([foo_X], [foo-X])
AC_ARG_VAR(XSRC, "Source directory for foo-X")
AS_IF([test -z "$XSRC"], [XSRC=`pkg-config --variable=srcdir foo-X`])
(所以 Makefile.am 有类似的规则compile "$XSRC"/file.bar $@
)。这还允许开发人员在运行 ./configure 时覆盖 XSRC。
我的问题:是否有更规范的方式在 autotools 配置/makefile 中使用非标准 pkg-config 变量?例如 libdir,我看到 pkg-config 设置变量本身,因此除了 PKG_CHECK_MODULES 之外不需要 configure.ac 行;我们应该使用其他 m4 宏吗?