如何在没有错误消息的情况下中止makefile
如果当前目标中满足某些条件,我如何从其他目标中止makefile 例如:如何在没有错误消息的情况下中止makefile,makefile,gnu-make,abort,Makefile,Gnu Make,Abort,如果当前目标中满足某些条件,我如何从其他目标中止makefile 例如: Step01: @# Do something Step02: Step01_Output @# Check that Step01_output meet certain condition, otherwise, abort Step03: Step02 @# Do somethings (of course if did not abort in Step02) # And so on
Step01:
@# Do something
Step02: Step01_Output
@# Check that Step01_output meet certain condition, otherwise, abort
Step03: Step02
@# Do somethings (of course if did not abort in Step02)
# And so on
我尝试使用状态为0==>的“退出”,但它仍然继续!
我尝试使用“exit 1”或其他exist status==>它将中止,但在输出时给出错误消息。
我想中止,但仍然不想在调用shell时给出错误消息。
我还尝试在步骤02中设置env变量,并在步骤03和之后在if检查中设置env变量,如下所示:
ifneq ($(ToAbort),1)
Step03:
...
StepN
endif
不幸的是,make甚至没有查看条件,或者变量值没有在目标之间传递
有什么想法吗?可能是通过添加额外的目标还是这样?我认为只有在创建所有目标或出现任何错误时才能退出。
顺便说一下,命令是在子shell中运行的,因此使用“exit”不会导致make退出。我认为只有在创建了所有目标或出现任何错误时,make才会退出。
顺便说一下,命令是在子shell中运行的,因此使用“exit”不会导致make退出。不确定您的想法是否正确。 将工作的挑选留待决定 但是,, 您可以用一点shell和递归make来表达您的请求(对不起)。 你想表达“如果a完成时有/没有错误,那么我们就完成了,否则继续b。” 注意那些符号。
if命令3;然后${MAKE}Step02;fi
不执行您想要的操作。
如果制造失败,
您不想继续进入command4
另外,如果这些步骤不是真实的文件,不要忘记将它们标记为虚假的。不确定您在这一点上的想法是否正确。 将工作的挑选留待决定 但是,, 您可以用一点shell和递归make来表达您的请求(对不起)。 你想表达“如果a完成时有/没有错误,那么我们就完成了,否则继续b。” 注意那些符号。
if命令3;然后${MAKE}Step02;fi
不执行您想要的操作。
如果制造失败,
您不想继续进入command4
另外,如果这些步骤不是真实文件,请不要忘记将其标记为虚假文件。请提供真实示例,而不是伪代码,这可能是错误的。请提供真实示例,而不是伪代码,这可能是错误的。
Step01:
command1
command2
command3 && ${MAKE} Step02
command4
Step02:
cmd5
cmd6 && ${MAKE} Step03
⋮