Makefile для объединения js файлов и создания сжатой версии
Я пытаюсь написать базовый make файл, который объединяет несколько 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 [email protected] $^
Кто-нибудь знает, как я собирался добавить несжатую версию под названием spark-dev.js? Я пытался использовать кошку, но я не очень далеко. Это мой первый makefile, который я когда-либо писал.
ИЗМЕНИТЬ
Я пробовал этот код с cat
spark-dev.js: ${modules}
cat [email protected] $^
Ответы
Ответ 1
Вы были почти там:-) Это должно работать:
spark-dev.js: ${modules}
cat > [email protected] $^
Фон: функция cat
заключается в том, чтобы (попытаться) открыть все файлы, перечисленные в его командной строке, и сбросить содержимое в stdout. Синтаксис > [email protected]
понимается под оболочкой, означающей "создать файл [email protected]
и подключить к нему эту команду stdout", поэтому теперь мы закончим содержимое $^
, объединенное вместе в [email protected]
.