如何找到AM_MAKEFLAGS的值?

时间:2013-02-01 01:14:17

标签: linux makefile automake

我正在尝试构建一个我不熟悉的软件包,它使用的是automake,我也不熟悉。各种Makefile在整个地方都有宏$(AM_MAKEFLAGS)。我需要知道这个宏中的内容。我已经grepped和grepped,无法找到它的定义。这是否意味着AM_MAKEFLAGS是空白的?或者automake typicall把它放在我永远不会想到的地方吗?一句话:如果我无法在任何地方找到它,我怎么知道它里面有什么?感谢。

2 个答案:

答案 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是一种机制,通过该机制,包维护者可以基本上将文本附加到MAKEFLAGSmake的每次调用都将以AM_MAKEFLAGS作为参数调用。它(经常)未定义,可以忽略。如果维护者确实选择定义它,那么定义将在Makefile.am中,并且提供定义的行只会被automake逐字复制到Makefile.in