我的项目依赖于子文件夹中的其他项目。我想以递归方式调用make来一次性构建所有内容。
我的第一次尝试是这样的:
.PHONY: all make_recursion
all: program
program: submake1/lib submake2/lib
submake1/lib: make_recursion
submake2/lib: make_recursion
make_recursion:
make -C submake1
make -C submake2
这不按预期工作。如果在这些项目中更改了文件,则执行每次运行make两个子映射。对于submake2,如果更新了submake2 / lib,我的程序也会被重建。如果只更新了submake1 / lib,我必须再次运行第二次更新程序。
这样做的原因是make在make_recursion之前获取submake1 / lib的时间戳,但之后不会更新它。我怎样才能改善这个?