Makefile Make:在检查依赖项之前运行代码

Makefile Make:在检查依赖项之前运行代码,makefile,Makefile,我有一个依赖于外部库的目标: output.txt: library/build.txt main.txt cat library/build.txt main.txt >output.txt (这只是一个例子,我的实际makefile要复杂得多) 但是,library/build.txt由单独的生成文件生成。 在检查library/build.txt是否比output.txt更新之前,我需要运行library makefile(可能会更新build.txt) 我可以让它每次运行$(

我有一个依赖于外部库的目标:

output.txt: library/build.txt main.txt
  cat library/build.txt main.txt >output.txt
(这只是一个例子,我的实际makefile要复杂得多)

但是,library/build.txt由单独的生成文件生成。 在检查library/build.txt是否比output.txt更新之前,我需要运行library makefile(可能会更新build.txt)

我可以让它每次运行
$(MAKE)-C library
,但我希望只在需要时调用它(也就是说,当您尝试创建一个依赖于library/build.txt的目标时)


这可能吗?(如果列表中包含library/build.txt,也许有一种方法可以获取依赖项列表,然后运行一些东西?

您可以尝试以下方法:

FORCE:

library/build.txt: FORCE
    @echo make to build $@

output.txt: library/build.txt main.txt
    cat $^ > $@