如何在不修改makefile的情况下让gmake输出所有命令的返回码

哈维德

如何gmake在不修改Makefile?的情况下输出所有命令的退出状态代码如果Makefile可以选择修改,则可能会发生以下情况:

$(CC) -c -o $@ $< $(CFLAGS); echo $$? 

到目前为止,我发现的另一种方法是包装我正在运行的命令。例如,如果

gcc -o $@ $^ $(CFLAGS) $(LIBS)

是正在运行的命令,并且当前目录.位于PATH变量的前面,那么您可以创建一个gcc在当前目录中调用的脚本,其内容如下:

/usr/bin/gcc "$@"; echo $? 

我想知道是否有一个更好的,更少hacky,更优雅的解决方案?

疯狂的科学家

请注意,您建议的所有解决方法都已损坏:因为您现在echo作为配方中的最后一条命令运行,所以配方将始终以返回码退出echo,这始终是成功的。如果按照说明进行更改,换句话说,make将不再检测到任何构建失败,并将每条命令视为成功。

为了使这项工作,您必须编写如下内容:

$(CC) -c -o $@ $< $(CFLAGS); r=$$?; echo $$r; exit $$r

我可以想到的唯一一种“干净”的方法,而无需更改makefile,但仍然可以处理所有不同的目标,那就是SHELL使用自己的一种行为来更改make use。不幸的是,这有点棘手,但是这样的方法应该可以工作:

$ cat shexit
#!/bin/sh
/bin/sh "$@"
r=$?
echo $r
exit $r

$ chmod 755 shexit

$ make SHELL=$(pwd)/shexit

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不修改文件的情况下在cat命令输出中添加值?

来自分类Dev

如何在不修改特定类的情况下扩展具有功能的Scala类?

来自分类Dev

如何在不输出所有目录(如安静模式)的情况下运行“ du”命令?

来自分类Dev

如何在不修改SP的情况下向SP返回的结果集中添加其他列?

来自分类Dev

如何在没有命令的情况下创建服务?

来自分类Dev

如何在没有命令行参数的情况下检查并引发错误

来自分类Dev

如何在不修改现有 rpm 的规范文件的情况下使现有的 rpm 过时新的 rpm

来自分类Dev

如何在不修改外部应用程序的情况下修改网页?

来自分类Dev

如何在不修改子类的情况下增加对现有子类中方法调用的控制?

来自分类Dev

如何在不修改子类的情况下增加对现有子类中方法调用的控制?

来自分类Dev

如何在不修改的情况下封装(和命名空间)现有的大javascript文件?

来自分类Dev

如何在不修改显示的URL和触发CSS动画的情况下跟踪链接?

来自分类Dev

如何在不修改原始框架的情况下扩展外部框架的d.ts(jQuery)?

来自分类Dev

如何在不修改pom本身的情况下跳过maven构建步骤?

来自分类Dev

如何在不修改用户代码的情况下使使用cProfiler分析的代码超时?

来自分类Dev

mysqli-如何在不修改结果集的情况下获取行?

来自分类Dev

如何在不修改样式的情况下将内容插入到元素的末尾?

来自分类Dev

如何在不修改uml图的情况下实现向对象添加价格

来自分类Dev

如何在不修改实际文件的情况下使用“文件”读取?

来自分类Dev

如何在不修改基础界面的情况下以叠加样式创建内部框架?

来自分类Dev

如何在不修改原始代码的情况下忽略关闭标签?

来自分类Dev

如何在不修改HTML内容的情况下加载和解析HTML

来自分类Dev

如何在不修改Windows的情况下连接到Windows无密码共享?

来自分类Dev

如何在不修改指针的情况下递归地反转单个链接列表?

来自分类Dev

如何在不修改第一个变量的情况下使用Fluent

来自分类Dev

如何在不修改第三方元素的情况下替换:: shadow

来自分类Dev

如何在不修改当前会话的情况下重新导入字典对象?

来自分类Dev

如何在不修改工作树的情况下从git status输出中排除某些目录(例如_not_ Modifying .gitignore)

来自分类Dev

如何在没有命令提示符的情况下运行Python服务器

Related 相关文章

  1. 1

    如何在不修改文件的情况下在cat命令输出中添加值?

  2. 2

    如何在不修改特定类的情况下扩展具有功能的Scala类?

  3. 3

    如何在不输出所有目录(如安静模式)的情况下运行“ du”命令?

  4. 4

    如何在不修改SP的情况下向SP返回的结果集中添加其他列?

  5. 5

    如何在没有命令的情况下创建服务?

  6. 6

    如何在没有命令行参数的情况下检查并引发错误

  7. 7

    如何在不修改现有 rpm 的规范文件的情况下使现有的 rpm 过时新的 rpm

  8. 8

    如何在不修改外部应用程序的情况下修改网页?

  9. 9

    如何在不修改子类的情况下增加对现有子类中方法调用的控制?

  10. 10

    如何在不修改子类的情况下增加对现有子类中方法调用的控制?

  11. 11

    如何在不修改的情况下封装(和命名空间)现有的大javascript文件?

  12. 12

    如何在不修改显示的URL和触发CSS动画的情况下跟踪链接?

  13. 13

    如何在不修改原始框架的情况下扩展外部框架的d.ts(jQuery)?

  14. 14

    如何在不修改pom本身的情况下跳过maven构建步骤?

  15. 15

    如何在不修改用户代码的情况下使使用cProfiler分析的代码超时?

  16. 16

    mysqli-如何在不修改结果集的情况下获取行?

  17. 17

    如何在不修改样式的情况下将内容插入到元素的末尾?

  18. 18

    如何在不修改uml图的情况下实现向对象添加价格

  19. 19

    如何在不修改实际文件的情况下使用“文件”读取?

  20. 20

    如何在不修改基础界面的情况下以叠加样式创建内部框架?

  21. 21

    如何在不修改原始代码的情况下忽略关闭标签?

  22. 22

    如何在不修改HTML内容的情况下加载和解析HTML

  23. 23

    如何在不修改Windows的情况下连接到Windows无密码共享?

  24. 24

    如何在不修改指针的情况下递归地反转单个链接列表?

  25. 25

    如何在不修改第一个变量的情况下使用Fluent

  26. 26

    如何在不修改第三方元素的情况下替换:: shadow

  27. 27

    如何在不修改当前会话的情况下重新导入字典对象?

  28. 28

    如何在不修改工作树的情况下从git status输出中排除某些目录(例如_not_ Modifying .gitignore)

  29. 29

    如何在没有命令提示符的情况下运行Python服务器

热门标签

归档