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