2

我正在尝试编写我的第一个 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。

4

1 回答 1

2

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

如果 'lint' 有依赖关系,那么你需要列出它们。例如:

lint: dep1 dep2

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

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

all: lint build min

您可以按照您希望它们发生的顺序放置它们。我称目标为“全部”,因为这就是它的作用,而不是它意味着任何特殊的东西。

于 2013-02-11T07:34:40.630 回答