Makefile Make:在发生错误时是否可以执行目标(例如。删除错误时删除错误时删除目标)

Makefile Make:在发生错误时是否可以执行目标(例如。删除错误时删除错误时删除目标),makefile,Makefile,我有一些挂载点是作为目标创建的,挂载的目的是创建另一个目标。当制作另一个目标时,它们必须被卸载,这相对简单,使用一些其他的假目标来完成。但是,如果发生错误,仍然需要卸载它们。有没有可能让make在发生错误时基于某个必须重新生成的目标执行此操作?我知道遇到错误时,make通常会停止处理配方。我提出的唯一可行的选择是执行submake: virtual_target: sudo mount somelocation somepath ; \ $(MAKE) real_target ;

我有一些挂载点是作为目标创建的,挂载的目的是创建另一个目标。当制作另一个目标时,它们必须被卸载,这相对简单,使用一些其他的假目标来完成。但是,如果发生错误,仍然需要卸载它们。有没有可能让make在发生错误时基于某个必须重新生成的目标执行此操作?我知道遇到错误时,make通常会停止处理配方。我提出的唯一可行的选择是执行submake:

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 $@