【问题标题】:Is there any tool to measure the quality of a Makefile?是否有任何工具可以衡量 Makefile 的质量?
【发布时间】:2014-04-16 05:55:17
【问题描述】:

是否有任何工具可以以图形方式查找/测量 Makefile 中的问题(如缺少依赖项、差异等)。 例如,我有一堆从顶级 Makefile 调用/调用的 makefile,其中 build 是从顶级 makefile 运行的。我想知道是否有任何工具可以测量 makefile(在本例中为顶级 makefile)的质量,例如好、坏或丑陋的东西。

我的期望:如果有任何这样的工具来衡量 makefile 的质量,该工具应该能够 1) 报告生成文件中的问题。 2) 理想地绘制点#1的结果。

下面的代码是递归makefile的简单场景,它调用子makefile。

petry@als02%ls 
ant  bee  Makefile

petry@als02% cat Makefile

MODULES= ant bee
all:
        for dir in $(MODULES);do $(MAKE) -C $$dir;done
.PHONY:clean
clean:
        rm -rf ./ant/main.o ./bee/parse.o ./bee/prog

petry@als02% cat ant/makefile

all:main.o
main.o:main.c ../bee/parse.h
        $(CC) -I../bee -c main.c

petry@als02% cat bee/makefile

OBJ=../ant/main.o parse.o
all:prog
prog:$(OBJ)
        $(CC) -o $@ $(OBJ)
parse.o:parse.c
        $(CC) -c parse.c

如果顶级 makefile 有任何与顶级 makefile 中的目标、依赖项或规则有关的问题,该工具应该能够解决/报告这些问题。 谷歌没有帮助。感谢任何帮助。谢谢

【问题讨论】:

  • 我不知道任何图形解决方案,但是我发现make -n [options](或--just-print、--dry-run、--recon)对于调试非常方便,这可能是有点帮助。
  • 感谢您对 jdt 的评论。 “make -n”只会打印将要执行的命令。我正在寻找一个工具,如果我的 makefile 没问题,它会告诉“你的 makefile 没问题”,否则,它应该警告或报告 makefile 中的错误/问题。
  • 没有这样的东西。我什至不知道您所说的“与目标、依赖项或规则有关的任何问题”是什么意思……比如什么样的问题?

标签: makefile


【解决方案1】:

我搜索了“makefile linter”,找到了这两个:

https://github.com/mrtazz/checkmake

https://github.com/softprops/mint

(截至 2019 年)

遗憾的是,两者似乎都没有积极发展。

“lint”已成为静态检查典型错误和可疑样式的软件的分类名称。见https://en.wikipedia.org/wiki/Lint_(software)

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2011-04-22
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多