规则的先决条件是文件和另一个规则,是仅检查文件日期,还是始终先检查“子规则”本身?

问题描述 投票:0回答:1

考虑一般规则形式:

output_file_name: dep_file_name1, ... dep_file_name2
    recipe

并假设在一个假设的

makefile
中没有任何虚假目标,every
dep_file_name_x
always一个文件名,often也是另一个规则(即,它是另一个规则的
output_file_name
),我的问题是:

满足许多此类规则中的任何一个,是否

make
检查
dep_file_name_x
文件的文件修改时间(如果它当然存在)或
make
认识到
dep_file_name_x
也是同一个
makefile
中的另一个规则——如果“运行”(但可能还没有还没有),更新实际文件

也就是说:如果

dep_file_name_x
引用现有规则并且现有文件,是否保证在通常的文件修改时间检查之前调用该规则(带有其自己的先决条件检查等)?

makefile gnu-make
1个回答
0
投票
递归地制作作品。每个先决条件都被视为一个目标,并经历使该目标更新的整个过程。磁盘上是否存在该目标的文件并不重要(除非它如何影响 make 是否更新它的决定)。目标是否有规则甚至都不重要(如果没有,make 将尝试匹配隐式规则)。

但是,是的,如果我正确理解你的问题,make 将始终完全尝试重建所有先决条件并等待它们完成,然后再检查时间戳以查看当前目标是否需要更新。

© www.soinside.com 2019 - 2024. All rights reserved.