BACKGROUND_ELM_FILES=$(shell find src/Background/ -name '*.elm') FOREGROUND_ELM_FILES=$(shell find src/Foreground/ -name '*.elm') BACKGROUND_JS_FILES=$(patsubst src/%.elm,build/%.js,$(BACKGROUND_ELM_FILES)) FOREGROUND_JS_FILES=$(patsubst src/%.elm,build/%.js,$(FOREGROUND_ELM_FILES)) DEPENDS_BACKGROUND := background.js DEPENDS_FOREGROUND := app.js DEPENDS := build/background.js build/foreground.js COPY := manifest.json app.html package: all cd build && zip -FS extension.xpi * all: clean prepare $(COPY) $(DEPENDS) cp $(COPY) build build/foreground.js: $(FOREGROUND_JS_FILES) $(DEPENDS_FOREGROUND) cat $^ > $@ build/background.js: $(BACKGROUND_JS_FILES) $(DEPENDS_BACKGROUND) cat $^ > $@ build/%.js: src/%.elm elm make --optimize $^ --output=$@ clean: [ -e build ] && rm -r build || /bin/true prepare: [ ! -e build ] && mkdir build || /bin/true .PHONY: package all clean prepare