我想维护一个配置文件,它生成一组不同的Makefile,这取决于配置脚本被赋予了什么标志。更具体地说,我希望make dist生成项目中所有目录的子集。
例如,假设我有包含Makefile.am和所有其他必要内容的project/a project/b, project/c目录,以便能够使用./autogen.sh && ./configure && make编译项目。现在,假设我想从发行版tarball中省略目录project/b project/c。我尝试了以下几种方法:
AS_IF([test "x$for_dist" == "xyes"],
[CONDITIONAL_MAKEFILES=""],
[CONDITIONAL_MAKEFILES="b/Makefile c/Makefile"]
)
AC_OUTPUT(Makefile a/Makefile ${CONDITIONAL_MAKEFILES})这不管用,我得到了config.status: error: cannot find input file: b/Makefile.in。如果我不使用变量来指定输出Makefile,它会工作得很好。
你有什么办法让它工作吗?
谢谢,
发布于 2013-04-08 18:31:33
我找到了解决方案-
使用AC_CONFIG_FILES而不是AC_OUTPUT可以实现更大的灵活性。例如,参考上面的示例:
AS_IF([test "x$for_dist" == "xyes"], [AC_CONFIG_FILES(b/Makefile c/Makefile)] )
AC_OUTPUT(Makefile a/Makefile)如果for_dist的值为yes,这将输出三个Makefile,否则将仅输出一个Makefile。
https://stackoverflow.com/questions/15874325
复制相似问题