1

我正在尝试构建一个我不熟悉的软件包,它使用我也不熟悉的 automake。各种 Makefile 到处都有宏 $(AM_MAKEFLAGS)。我需要知道这个宏中有什么。我已经 grepped 和 grepped 并且找不到它的定义位置。这是否意味着 AM_MAKEFLAGS 为空白?还是 automake 通常把它放在我永远不会想到的地方?底线:如果我在任何地方都找不到它的定义,我怎么知道里面有什么?谢谢。

4

2 回答 2

4

调用时make,您可以使用命令行参数-p--print-data-base让它打印它遇到的所有规则和变量的值。将输出重定向到文件并AM_MAKEFLAGS在该文件中搜索将显示变量是否已定义,如果已定义,其值是什么。有关一些额外信息,请参阅第9.7 节选项摘要。

于 2013-02-01T07:59:33.313 回答
1

首先,请注意,很少有必要也不需要查看模板中Makefile.in的 automake 生成的或Makefileconfigure(通过 config.status)构建的。Makefile.in这些不打算用于人类消费。阅读它们类似于查看编译器生成的机器代码而不是原始源代码。

AM_MAKEFLAGS是一种机制,包维护者基本上可以通过该机制将文本附加到MAKEFLAGS. 每次调用都makeAM_MAKEFLAGS作为参数调用。它(非常)经常未定义,可以忽略。如果维护者确实选择定义它,定义将是 in Makefile.am,并且提供定义的行将Makefile.in被 automake 简单地逐字复制。

于 2013-02-02T16:00:30.573 回答