我正在尝试构建一个我不熟悉的软件包,它使用的是automake,我也不熟悉。各种Makefile在整个地方都有宏$(AM_MAKEFLAGS)。我需要知道这个宏中的内容。我已经grepped和grepped,无法找到它的定义。这是否意味着AM_MAKEFLAGS是空白的?或者automake typicall把它放在我永远不会想到的地方吗?一句话:如果我无法在任何地方找到它,我怎么知道它里面有什么?感谢。
答案 0 :(得分:4)
调用make
时,您可以使用命令行参数-p
或--print-data-base
来打印它遇到的所有规则和变量的值。将输出重定向到文件并在该文件中搜索AM_MAKEFLAGS
将显示变量是否已定义,如果已定义,则其值是什么。有关其他信息,请参阅9.7 Summary of Options部分。
答案 1 :(得分:1)
首先,请注意,很少有必要也不需要查看automake生成的Makefile.in
或者Makefile
中由configure(通过config.status)构建的Makefile.in
模板。这些不是人类消费的目的。读取它们类似于查看编译器生成的机器代码而不是原始源代码。
AM_MAKEFLAGS
是一种机制,通过该机制,包维护者可以基本上将文本附加到MAKEFLAGS
。 make
的每次调用都将以AM_MAKEFLAGS
作为参数调用。它(经常)未定义,可以忽略。如果维护者确实选择定义它,那么定义将在Makefile.am
中,并且提供定义的行只会被automake逐字复制到Makefile.in
。