我正在尝试编写我的第一个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。
答案 0 :(得分:1)
当你只运行'make'时,make将只执行默认目标,通常是第一个目标 - 在你的情况下'lint:'。
如果'lint'有依赖关系,那么你需要列出它们。例如:
lint: dep1 dep2
make在执行lint之前会执行dep1和dep2。
如果您希望上述所有三件事只需一次调用“make”就可以将此目标添加到其他目标之上:
all: lint build min
您可以按照您希望它们发生的顺序放置它们。我把目标称为“全部”,因为它就是它的作用,而不是它意味着什么特别的东西。