BUILD_DIR=build THEME_DIR=theme HTML_DIR=clean fonts_dir=static/fonts js_dir=static/js css_dir=static/css js_files=$(wildcard $(THEME_DIR)/$(js_dir)/*.js) css_files=$(sort $(wildcard $(THEME_DIR)/$(css_dir)/*.css)) render_sources=$(wildcard $(CLEAN_DIR)/*.html) render_targets=$(addprefix $(BUILD_DIR)/, $(notdir $(render_sources))) .PHONY: render cssmin jsmin assets render all jslint csslint all: assets render assets: cssmin jsmin | $(BUILD_DIR)/$(fonts_dir) cssmin: $(BUILD_DIR)/$(css_dir)/style.min.css jsmin: $(BUILD_DIR)/$(js_dir)/main.min.js jslint: $(js_files) jshint $^ csslint: $(THEME_DIR)/$(css_dir)/main.css $(THEME_DIR)/$(css_dir)/chapter.css csslint $^ render: $(render_targets) $(BUILD_DIR)/$(fonts_dir): $(THEME_DIR)/$(fonts_dir) | $(BUILD_DIR) cp -r $< $@ $(BUILD_DIR)/$(js_dir) $(BUILD_DIR)/$(css_dir): | $(BUILD_DIR) mkdir -p $@ $(BUILD_DIR): mkdir -p $@ $(BUILD_DIR)/%.html: $(HTML_DIR)/%.html render.py $(THEME_DIR)/layout.html python2 render.py $< $@ $(BUILD_DIR)/$(js_dir)/main.min.js: $(js_files) | $(BUILD_DIR)/$(js_dir) uglifyjs $^ > $@ $(BUILD_DIR)/$(css_dir)/style.min.css: $(css_files) | $(BUILD_DIR)/$(css_dir) cat $(css_files) | cssmin > $@