【问题标题】:AC_SUBST macro usage in Makefile.am SUBDIRSMakefile.am SUBDIRS 中的 AC_SUBST 宏用法
【发布时间】:2015-05-26 15:01:27
【问题描述】:

在 configure.ac 中,我有:

AC_SUBST([with_dir2],[dir2])

在一些 Makefile.am 中,我有:

SUBDIRS = @with_dir2@

这似乎有效。

但是使用

SUBDIRS = dir1/@with_dir2@/dir3

不起作用(字符串@with_dir2@ 直接进入makefile,没有任何替换)...为什么?什么是解决方法:-) ...

【问题讨论】:

  • 目前我发现的最好的是 AC_SUBST([with_dir123],[dir1/${with_dir2}/dir3]) 和 SUBDIRS= @withdir123@。不好...有更好的主意吗?
  • 您能描述一下您要完成的工作吗? automake 文档描述了如何处理可选的子目录。您是否从选择中选择一个子目录?在这种情况下,也许让每个选择都成为条件子目录。
  • 我正在尝试使用一个参数来给定“配置”作为构建目录。例如,如果我写 'configure --with_dir2=dir2' 我希望 'dir1/dir2/dir3' 是“sub-automaked”(即由 SUBDIRS 完成)。我目前无法重组项目(因此放入 SUBDIRS 的路径是 dir1//dir3)。

标签: autotools automake


【解决方案1】:

Automake 也会自动将所有 AC_SUBST 变量作为 Makefile 变量发出。因此,您可以将其重写为:

SUBDIRS = dir1/$(with_dir2)/dir3

无论如何,我总是更喜欢这种方法,因为它更适合调试——您可以覆盖make 命令行上的变量进行测试。

【讨论】:

  • 对不起,我可能遗漏了一些明显的东西,但我得到:错误:所需目录 dir1/$(with_dir2)/dir3 不存在。运行 automake 时。 SUBDIRS 是 automake 使用的变量。感谢您查看它。希望我做错了:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
相关资源
最近更新 更多