Makerule只运行一条规则

时间:2013-02-11 06:44:58

标签: makefile

我正在尝试编写我的第一个Makefile。我目前只有3条规则。当我运行“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。

1 个答案:

答案 0 :(得分:1)

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

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

lint: dep1 dep2

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

如果您希望上述所有三件事只需一次调用“make”就可以将此目标添加到其他目标之上:

all: lint build min

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