SRC_FILES := $(shell find src -name "*.elm") all: elm.min.js .PHONY: elm.min.js 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 clean: rm elm.js elm.min.js