我想使用Google Closure Compiler来编译我的js代码。我编写了一个makefile来完成这项工作,但它永远不会生效。 我想要的是编译filelist中列出的每个文件并将其输出到../ js /
filelist = thermometer.js logic.combat.js analyse.js logic.js
wp := $(foreach k, $(filelist), ../js/$(k))
$(wp) : $(filelist)
java -jar compiler.jar --js=$< --js_output_file=../js/$<
答案 0 :(得分:0)
在当前的公式中,所有wp对象都依赖于所有js文件,并且只编译了第一个源文件(thermometer.js)。
您应该使用模式规则在Makefile中制定最后两行:
all : $(wp)
../js/%.js : %.js
java -jar compiler.jar --js=$< --js_output_file=$@
答案 1 :(得分:0)
首先,您可能需要一些目标来触发它,例如:
all: $(wp)
其次,您将为每个文件获取一个命令java -jar compiler.jar --js=../js/thermometer.js --js_output_file=../js/../js/thermometer.js
。哪个不太可能是你的目标。我想你想要这样的东西:
../js/%.js: %.js
java -jar compiler.jar --js=$< --js_output_file=$@
all: $(addprefix ../js/,$(filelist))