Skip to content

Instantly share code, notes, and snippets.

@EpocSquadron
Forked from rgrove/Makefile
Created September 15, 2011 17:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save EpocSquadron/1219938 to your computer and use it in GitHub Desktop.
Save EpocSquadron/1219938 to your computer and use it in GitHub Desktop.
Simple Makefile to minify CSS and JS.
# Patterns matching CSS files that should be minified. Files with a -min.css
# suffix will be ignored.
CSS_FILES = $(filter-out %-min.css,$(wildcard \
public/css/*.css \
public/css/**/*.css \
))
# Patterns matching JS files that should be minified. Files with a -min.js
# suffix will be ignored.
JS_FILES = $(filter-out %-min.js,$(wildcard \
public/js/*.js \
public/js/**/*.js \
))
# Set css minifier and flags
CSS_COMPRESSOR = csstidy
CSS_COMPRESSOR_FLAGS = --discard_invalid=false \
--template=highest
# Set javascript minifier and flags
JS_COMPRESSOR = uglifyjs
JS_COMPRESSOR_FLAGS =
CSS_MINIFIED = $(CSS_FILES:.css=-min.css)
JS_MINIFIED = $(JS_FILES:.js=-min.js)
# target: minify - Minifies CSS and JS.
minify: minify-css minify-js
# target: minify-css - Minifies CSS.
minify-css: $(CSS_FILES) $(CSS_MINIFIED)
# target: minify-js - Minifies JS.
minify-js: $(JS_FILES) $(JS_MINIFIED)
%-min.css: %.css
@echo '==> Minifying css file $<'
$(CSS_COMPRESSOR) $< $(CSS_COMPRESSOR_FLAGS) >$@
@echo
%-min.js: %.js
@echo '==> Minifying javascript file $<'
$(JS_COMPRESSOR) $(JS_COMPRESSOR_FLAGS) -o >$@ $<
@echo
# target: clean - Removes minified CSS and JS files.
clean:
rm -f $(CSS_MINIFIED) $(JS_MINIFIED)
# target: help - Displays help.
help:
@egrep "^# target:" Makefile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment