Subacme

Personal weblog. Nonpersonal topics.

用 Makefile 记录编译次数

尚无评论

这是上一篇文章 Counting Build Number with Makefile 的翻译。

如果您喜欢不用 IDE 写代码, Makefile 可能是您无法避免的东西。然而用朴素的 make 自动记录编译次数, 实现起来可能需要一些技巧。

我所见到的大多数解决方案都依赖於专门的脚本, 这种方法既不优雅也不便於移植。这裡我将给出我的方法, 这个方法只依赖 echogrep (当然, 还有 GNU make), 这些工具几乎在所有平台上都可以使用。

利用 make 计数的主要障碍在於它缺乏数值运算。尽管人们通常用数码表示数字, 但数字也可以利用反覆出现的同一个符号来编码——比如, 两个苹果携带了信息 ‘2’。

因此, 我们可以让 make 做它能做的最简单的事情——每次向一个文件中添加一个固定的符号——然後用 grep 来统计这个符号出现的次数, 也就是编译次数。

下面是一个完整的 Makefile, 供您尝试。它利用文件 .BuildCounter 来存储编译次数, 並向文件 BuildCount.inc 写入一行 BuildNumber = N;, 其中 N 为编译次数。

__COUNTER_FILE__ = .BuildCounter
__COUNTER_INC_FILE__ = BuildCount.inc
ifeq ($(wildcard $(__COUNTER_FILE__)),)
$(shell echo > $(__COUNTER_FILE__))
endif
$(shell echo $$ >> $(__COUNTER_FILE__))
$(shell echo BuildNumber = $(shell grep -c -F $$ $(__COUNTER_FILE__))\; > $(__COUNTER_INC_FILE__))

default:
        @more $(__COUNTER_INC_FILE__)

单击此处下载该文件。

VN:F [1.9.13_1145]
Rating: 5.0/5 (1 vote cast)
用 Makefile 记录编译次数, 5.0 out of 5 based on 1 rating

本文的作者为 Jetcheng Chu

发表於 2010 年 8 月 12 日 1:16

分类: 未分类

标签: ,

赞助商链接

您的支持让您喜欢的网站更好地发展。
页面右侧尚有更多赞助商链接。如果您感兴趣, 请别犹豫单击它们。

发表回复

*