Skip to content

Instantly share code, notes, and snippets.

@detomon
Created November 19, 2019 08:51
Show Gist options
  • Save detomon/3cbd9fb295e30ba97af428df65379579 to your computer and use it in GitHub Desktop.
Save detomon/3cbd9fb295e30ba97af428df65379579 to your computer and use it in GitHub Desktop.
Makefile for compiling Elm modules
MODULES = src/Main.elm # add more if needed...
TARGET_JS = elm.js
TARGET_JS_MIN = elm.min.js
ELM = elm
ELM_FLAGS = --optimize
UGLIFY = uglifyjs
UGLIFY_ELM_FLAGS = 'pure_funcs="F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9",pure_getters,keep_fargs=false,unsafe_comps,unsafe'
main: \
$(TARGET_JS_MIN)
$(TARGET_JS): $(MODULES)
$(ELM) make $(ELM_FLAGS) $(MODULES) --output=$(TARGET_JS)
$(TARGET_JS_MIN): $(TARGET_JS)
$(UGLIFY) $(TARGET_JS) --compress $(UGLIFY_ELM_FLAGS) | $(UGLIFY) --mangle --output=$(TARGET_JS_MIN)
.PHONY: clean
clean:
rm -f $(TARGET_JS) $(TARGET_JS_MIN)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment