【发布时间】:2014-04-11 02:51:41
【问题描述】:
我想知道是否可以为给定的 Makefile 执行生成完成百分比?我有一个运行 sum 测试的 Makefile,出于 UI 目的,输出对用户隐藏,但是,我想知道是否可以给出该 Makefile 执行的百分比指示。
没有代码,我什至不知道如何追求这一点,只是在寻找指针。
另外,即使您确实从 make 获得了百分比数字,我们如何在 shell 中更新它?
谢谢
【问题讨论】:
我想知道是否可以为给定的 Makefile 执行生成完成百分比?我有一个运行 sum 测试的 Makefile,出于 UI 目的,输出对用户隐藏,但是,我想知道是否可以给出该 Makefile 执行的百分比指示。
没有代码,我什至不知道如何追求这一点,只是在寻找指针。
另外,即使您确实从 make 获得了百分比数字,我们如何在 shell 中更新它?
谢谢
【问题讨论】:
make 自己无法提供这些信息,因为 make 不知道。 Make 不能通过首先计算所有需要重建的目标,然后再构建它们来工作。相反,通过一次遍历一个节点来完成依赖图,直到最后没有工作要做。由于 make 在完成之前不知道将构建多少个目标,因此它无法提供完成百分比值。
您这样做的唯一方法是计算百分比值,因为您知道有多少目标以及当前正在运行的目标。您必须将此信息写入您的食谱中。
【讨论】:
echo "+" >> count.txt。然后计算 + 并使用该数字创建第二个文件“total.txt”。在 shell 脚本的第二次和后续运行中,检测顶层是否存在 total.txt,并将到目前为止完成的数量与 total.txt 进行比较。然后您的脚本可以将其输出到 stderr,因此 make all >> /dev/null 仍会报告已完成的百分比。