Makefile:print BUILD SUCCESSFUL或BUILD FAILED

时间:2017-02-06 02:37:22

标签: makefile gnu-make

我使用Makefile构建我的C ++项目。这有点令人讨厌,有时很难发现构建是成功还是失败。我希望在构建结束时看到一个明确的声明,就像在gradle中一样。

如果构建通过:

BUILD SUCCESSFUL

如果构建失败:

BUILD FAILED

对于积极的情况,我找到了这个解决方案:

all: dependencies #every job is done in dependencies
    echo "BUILD SUCCESSFUL"

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

  • Unix(或任何命令行,真正的)软件的一个共同原则是“如果一切顺利,请保持安静”。当然,使自己(以及通常的方式编写的文件)已经违反了左右规则,但它仍然是一个很好的准则......
  • Unix命令行程序使用退出状态通信成功/失败,因此在终端中,您可以在调用Make后立即执行echo $?0成功,其他任何事情都没有。
  • 无论上面的美学要点如何,让失败时让Make做可靠的事情很难,因为它不是为此而设计的。使用shell脚本包装Make调用非常容易,方法如下:
#!/bin/sh

if make "$@"; then
  echo BUILD SUCCESSFUL
else
  echo BUILD FAILED
fi