【发布时间】:2021-10-25 18:51:42
【问题描述】:
我正在为一个项目维护一个 Makefile,其中包含许多变量声明:
DOCKER_IMAGE_VERSION := latest
DOCKER_EXPOSE_PORT := 8080
PIP := python -m pip
...
有时使用这些变量的行会被删除,这些声明就会过时。
是否有工具可以在 Makefile 中查找未使用的变量声明?
【问题讨论】:
-
我不知道有这样的情况。你可以使用
grep。 -
我可以一一
grep,但是大多数现代编译器可以通过分析AST来向我发出警告。我希望 Makefile 也有一些东西。 -
这里没有 AST。 makefile 本身不是“编译”的。每个配方都是一个文本 blob,它被传递给 shell 以执行,此外,对于任何给定的 make 执行,也没有办法知道其他执行(构建了其他一些目标集)是否可能使用了该变量。没有任何 GNU make 模式会搜索所有配方以查找被引用的变量。