这是我的makefile
file1:
uglifyjs myfile1.js -c | gzip -c -9 > myfile1.min.js
file2:
uglifyjs myfile2.js -c | gzip -c -9 > myfile2.min.js
如何更改makefile以删除重复的代码:
file1:
FILE=myfile1.js
#How to call build target?
file2:
FILE=myfile2.js
build:
uglifyjs $(FILE).js -c | gzip -c -9 > $(FILE).min.js
我知道我可以使用make build
但是还有其他方法可以在不调用make的情况下执行此操作吗?
答案 0 :(得分:1)
使用自动变量:
file1 file2:
uglifyjs my$@.js -c | gzip -c -9 > my$@1.min.js
当您实际构建的文件为file1
时,我不知道您为何使用myfile1.min.js
等目标。那不是一个好的makefile。
但是,这不是你问的问题。
答案 1 :(得分:1)
使用模式规则运行命令,然后使目标依赖于所需的文件:
file1: myfile1.min.js
file2: myfile2.min.js
%.min.js: %.js
uglifyjs $< -c | gzip -c -9 >$@
模式规则告诉make如何从.js文件构建.min.js文件,其他规则告诉它构建特定文件。