include config.mk CSS_FILES = $(patsubst assets_src/%, assets/%, $(shell find assets_src/css/ -type f -name '*.css')) LESS_FILES = $(patsubst assets_src/%.less, assets/%.css, $(shell find assets_src/css/ -type f -name '*.less')) JS_FILES = $(patsubst assets_src/%, assets/%, $(shell find assets_src/js/ -maxdepth 1 -type f -name '*.js')) DEPFILES = $(patsubst assets/%, assets_src/%, $(JS_FILES:.js=.d)) BROWSERIFY := ./node_modules/browserify/bin/cmd.js LESSC := ./node_modules/less/bin/lessc -include $(DEPFILES) all: $(CSS_FILES) $(LESS_FILES) $(JS_FILES) print_info: @echo $(CSS_FILES) @echo $(LESS_FILES) @echo $(JS_FILES) @echo $(DEPFILES) .npm_update: package.json touch $@ npm install package.json: package.json.tpl config.mk export NAME=$(NAME) &&\ export VERSION=$(VERSION) &&\ ./bin/template.awk < $< | sh > $@ assets/css/%.css: assets_src/css/%.css @mkdir -p $(@D) cp $< $@ assets/css/%.css: assets_src/css/%.less .npm_update mkdir -p $(@D) @echo lessc $< > $@ @$(LESSC) $< > $@ assets_src/js/%.d: assets_src/js/%.js @./bin/generate-dependencies $(patsubst assets_src/%, assets/%, $<) $< $@ assets/js/%.js: assets_src/js/%.js assets_src/js/%.d .babelrc .npm_update @echo browserify $< -o $@ @$(BROWSERIFY) --debug $< -o $@ -t babelify clean: -rm -- $(CSS_FILES) -rm -- $(LESS_FILES) -rm -- $(JS_FILES) -rm -- $(DEPFILES) superclean: clean -rm -- .npm_update -rm -- package.json ultraclean: superclean -rm -r -- node_modules run: all go run *.go .PHONY: all print_info clean superclean ultraclean run