gnu make-force exit不删除目标
问题描述:
我正在逐步验证我的编译输出,并希望能够在给定配方执行后退出。gnu make-force exit不删除目标
如果原来的配方是
$(HEADER_BUILD)/mpversion.h: FORCE | $(HEADER_BUILD)
$(Q)$(PYTHON) $(PY_SRC)/makeversionhdr.py [email protected]
我希望能够在最后添加一行像这样
$(HEADER_BUILD)/mpversion.h: FORCE | $(HEADER_BUILD)
$(Q)$(PYTHON) $(PY_SRC)/makeversionhdr.py [email protected]
some_command
和some_command
应该仅仅停止生成文件的执行而不会干扰配方的其余部分。
如果我设置some_command
为exit 1
,我得到
../py/py.mk:269:配方目标 '集结GNU/genhdr/mpversion.h' 失败化妆:* [集结GNU/genhdr/mpversion.h]错误1化妆:* 删除文件 '集结GNU/genhdr/mpversion.h'
如果我设置some_command
为$(error)
,配方更是连即使它在之前执行
是否有这样的命令,可以停止执行makefile,但不会删除目标?
UPDATE
我发现这个技巧:让.PRECIOUS
取决于目标,并添加exit 1
在配方中的最后一行。
答
如果您想保留文件是中间文件(没有提到作为目标或规则的依赖 - 但通过图案规则可能隐含的),那么你就需要使它的.PRECIOUS
的依赖。
否则,应该暂时删除或注释掉我们都放在每个Makefile中的.DELETE_ON_ERROR:
目标。