我正在尝试构建一个我不熟悉的软件包,它使用我也不熟悉的 automake。各种 Makefile 到处都有宏 $(AM_MAKEFLAGS)。我需要知道这个宏中有什么。我已经 grepped 和 grepped 并且找不到它的定义位置。这是否意味着 AM_MAKEFLAGS 为空白?还是 automake 通常把它放在我永远不会想到的地方?底线:如果我在任何地方都找不到它的定义,我怎么知道里面有什么?谢谢。
问问题
2067 次
2 回答
4
调用时make
,您可以使用命令行参数-p
或--print-data-base
让它打印它遇到的所有规则和变量的值。将输出重定向到文件并AM_MAKEFLAGS
在该文件中搜索将显示变量是否已定义,如果已定义,其值是什么。有关一些额外信息,请参阅第9.7 节选项摘要。
于 2013-02-01T07:59:33.313 回答
1
首先,请注意,很少有必要也不需要查看模板中Makefile.in
的 automake 生成的或Makefile
configure(通过 config.status)构建的。Makefile.in
这些不打算用于人类消费。阅读它们类似于查看编译器生成的机器代码而不是原始源代码。
AM_MAKEFLAGS
是一种机制,包维护者基本上可以通过该机制将文本附加到MAKEFLAGS
. 每次调用都make
将AM_MAKEFLAGS
作为参数调用。它(非常)经常未定义,可以忽略。如果维护者确实选择定义它,定义将是 in Makefile.am
,并且提供定义的行将Makefile.in
被 automake 简单地逐字复制。
于 2013-02-02T16:00:30.573 回答