我正在尝试编写一个基本的makefile,它将多个js文件合并为一个,然后执行相同的操作,但压缩它们。
到目前为止,我有一个可以使压缩版本正常的。
# Set the source directory
srcdir = src/
# Create the list of modules
modules = ${srcdir}core.js\
${srcdir}sizzle.js\
${srcdir}json2.js\
${srcdir}ajax.js\
${srcdir}attribute.js\
${srcdir}content.js\
${srcdir}cookie.js\
${srcdir}css.js\
${srcdir}event.js\
${srcdir}json.js\
${srcdir}location.js\
${srcdir}opacity.js\
${srcdir}ready.js\
${srcdir}size.js\
${srcdir}init.js
# Compress all of the modules into spark.js
spark.js: ${modules}
java -jar yuicompressor.jar -o $@ $^
有谁知道如何添加名为spark-dev.js的未压缩版本?我一直在尝试使用猫,但我没有走得太远。这是我写过的第一个makefile。
修改 我用cat
尝试了这段代码spark-dev.js: ${modules}
cat $@ $^
答案 0 :(得分:10)
你几乎在那里:-)这应该有效:
spark-dev.js: ${modules}
cat > $@ $^
背景:cat
的功能是(尝试)打开其命令行中列出的所有文件,并将内容转储到stdout。 shell将> $@
语法理解为“创建文件$@
,并将此命令的stdout连接到它”,所以现在我们最终将$^
的内容合并到一起$@
。