从故障点重新启动make target

时间:2017-02-27 06:09:52

标签: makefile

有没有办法从之前失败的点重启make目标?或者也许其他一些可以实现这一目标的技术?

make testtargetcommand b失败

testtarget:
  command a
  command b
  command c

我希望能够在需要进行任何更改的情况下手动运行命令b,然后运行make testtarget --resume或类似的东西。

1 个答案:

答案 0 :(得分:0)

我建议您将testtarget目标配方中的命令分开到单独的配方中。像这样:

# Separate recipe of 'testtarget' target into sub targets and order them.
testtarget: testtarget_a testtarget_b testtarget_c
testtarget_c:|testtarget_b
testtarget_b:|testtarget_a

testtarget_a:; command a
testtarget_b:; command b || $(MAKE) testtarget_b_failed
testtarget_c:; command c

# Add commands to recipe of this target to fix failure of "command b"
testtarget_b_failed:; 

.PHONY: testtarget_b_failed testtarget testtarget_a testtarget_b testtarget_c