I am trying to write a basic makefile that combines multiple js files into a single one and then does the same but compresses them.
So far I have this one that can make the compressed version fine.
# 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 $@ $^
Does anyone know how I would go about adding an uncompressed version called spark-dev.js? I have been trying to use cat but I didn't get very far. This is my first makefile I have ever written.
EDIT I tried this code with cat
spark-dev.js: ${modules}
cat $@ $^
You were almost there :-) This should work:
spark-dev.js: ${modules}
cat > $@ $^
Background: The function of cat
is to (try to) open all the files listed on its command line, and dump the contents to stdout. The > $@
syntax is understood by the shell to mean "create the file $@
, and connect this command's stdout to it", so now we end up with the contents of $^
combined together into $@
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With