SRC_FILES := $(shell find src -name "*.elm") all: elm.min.js .PHONY: elm.min.js serve ifeq ($(DEBUG)$(RELEASE),) # Both are empty $(error You must set exactly one of DEBUG=1 or RELEASE=1) endif ifeq ($(DEBUG)$(RELEASE),11) # Both are set $(error Both DEBUG and RELEASE cannot be set at the same time) endif elm.min.js: ifeq ($(DEBUG),1) ./build.sh --debug src/Main.elm else ifeq ($(RELEASE),1) ./build.sh --optimize src/Main.elm endif serve: ifeq ($(DEBUG),1) elm-go src/Main.elm \ --dir=../public \ --port=8000 \ --start-page=../public/index.html \ --host=localhost \ --proxy-prefix=/ \ --proxy-host=http://localhost:8080 \ -- \ --debug \ --output=../public/elm.min.js else ifeq ($(RELEASE),1) $(error Cannot use serve target with RELEASE=1) endif clean: rm elm.js elm.min.js