makefile - Makerule 只运行一个规则

标签 makefile

我正在尝试编写我的第一个 Makefile。我目前只有 3 条规则。当我运行“make”时,只执行第一个规则,然后 make 退出而不运行其他 2 个规则。我的 Makefile 没有什么复杂的。我什至尝试将规则数量减少到 2,但我得到了相同的结果。这是我目前所拥有的。

SRC = src/analytics.js

lint:
    jshint $(SRC)

build: $(SRC)
    cat $^ > build/analytics.js

min: build
    uglifyjs --no-mangle build/analytics.js > build/analytics.min.js

当我在此处运行 make 时,我得到的是执行了 lint 规则的消息:jshint src/analytics.js

我在 Mac OS 10.8.2 上运行 make 3.81。

最佳答案

当您只运行“make”时,make 将只执行默认目标,通常是第一个目标 - 在您的例子中为“lint:”。

如果“lint”有依赖项,那么您需要列出它们。例如:

lint: dep1 dep2

Make 将在执行 lint 之前执行 dep1 和 dep2。

如果您希望通过一次调用“make”来运行上述所有三件事,请将此目标添加到其他目标之上:

all: lint build min

您可以按照您希望的顺序排列它们。我将目标称为“全部”,因为它就是这样做的,并不是说它意味着要制作任何特别的东西。

关于makefile - Makerule 只运行一个规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807151/

相关文章:

makefile - 如何以与 make 和 dmake 配合使用的方式替换 makefile 中的文本?

c++ - 如果什么都不做,请检查 Makefile

android - 将文件夹中结构化的预建文件集添加到 android out 文件夹

c - Makefile编译

c++ - Emacs 最快的 C++ 编译过程?

docker - 有条件不执行

gcc - 为 ARM 交叉编译 zlib

c - Makefile 文件名约定

c - 用于调试的 makefile 标志(需要符号信息)-g 标志不起作用

c - Makefile:1: *** 缺少分隔符。停止