Makefile Make:在发生错误时是否可以执行目标(例如。删除错误时删除错误时删除目标)
我有一些挂载点是作为目标创建的,挂载的目的是创建另一个目标。当制作另一个目标时,它们必须被卸载,这相对简单,使用一些其他的假目标来完成。但是,如果发生错误,仍然需要卸载它们。有没有可能让make在发生错误时基于某个必须重新生成的目标执行此操作?我知道遇到错误时,make通常会停止处理配方。我提出的唯一可行的选择是执行submake:Makefile Make:在发生错误时是否可以执行目标(例如。删除错误时删除错误时删除目标),makefile,Makefile,我有一些挂载点是作为目标创建的,挂载的目的是创建另一个目标。当制作另一个目标时,它们必须被卸载,这相对简单,使用一些其他的假目标来完成。但是,如果发生错误,仍然需要卸载它们。有没有可能让make在发生错误时基于某个必须重新生成的目标执行此操作?我知道遇到错误时,make通常会停止处理配方。我提出的唯一可行的选择是执行submake: virtual_target: sudo mount somelocation somepath ; \ $(MAKE) real_target ;
virtual_target:
sudo mount somelocation somepath ; \
$(MAKE) real_target ; \ ret=$$? \
sudo umount -fl somepath ; \
exit $$ret
real_target:
echo "Do something magical"
我没有将位置作为目标挂载,而是创建了一个宏来挂载它们。然后我在配方中设置了一个陷阱,以便在退出时卸载它们:
target:
trap "$(umount)" EXIT ; \
$(mount) && \
echo "Do something magical"
touch $@