|
|
|
ROOT=$(shell pwd)
|
|
|
|
|
|
|
|
SOURCE_ASSETS_IMG_DIR=frontend/assets/img
|
|
|
|
SOURCE_ASSETS_IMG_FILES=$(wildcard frontend/assets/img/*)
|
|
|
|
TARGET_ASSETS_IMG_DIR=frontend/compiled/img
|
|
|
|
|
|
|
|
TARGET_CSS_DIR=frontend/compiled/css
|
|
|
|
TARGET_CSS_FILE=$(TARGET_CSS_DIR)/style.css
|
|
|
|
|
|
|
|
TARGET_JS_DIR=$(BACKEND_ASSETS_DIR)/js
|
|
|
|
TARGET_JS_FILE=$(TARGET_JS_DIR)/app.js
|
|
|
|
|
|
|
|
SOURCE_ELM_FILES=$(wildcard frontend/src/*.elm)
|
|
|
|
SOURCE_SASS_FILE=frontend/assets/sass/style.scss
|
|
|
|
|
|
|
|
INDEX_FILE=backend/resources/public/index.html
|
|
|
|
|
|
|
|
.PHONY: compile
|
|
|
|
compile: $(TARGET_JS_FILE) $(TARGET_CSS_FILE) $(TARGET_ASSETS_IMG_DIR)
|
|
|
|
|
|
|
|
$(TARGET_JS_FILE): $(SOURCE_ELM_FILES)
|
|
|
|
mkdir -p $(TARGET_JS_DIR)
|
|
|
|
cd frontend && elm make src/Main.elm --output $(ROOT)/$(TARGET_JS_FILE) --optimize
|
|
|
|
|
|
|
|
$(TARGET_CSS_FILE): $(SOURCE_SASS_FILE)
|
|
|
|
mkdir -p $(TARGET_CSS_DIR)
|
|
|
|
sassc --style compressed $(SOURCE_SASS_FILE) > $(TARGET_CSS_FILE)
|
|
|
|
|
|
|
|
$(TARGET_ASSETS_IMG_DIR): $(SOURCE_ASSETS_IMG_FILES)
|
|
|
|
mkdir -p $(TARGET_ASSETS_IMG_DIR)
|
|
|
|
cp $(SOURCE_ASSETS_IMG_DIR)/* $(TARGET_ASSETS_IMG_DIR)
|
|
|
|
|
|
|
|
.PHONY: compile-debug
|
|
|
|
compile-debug:
|
|
|
|
cd frontend && elm make src/Main.elm --output $(ROOT)/$(APP_JS) --debug
|
|
|
|
sassc $(SOURCE_SASS_FILE) > $(TARGET_CSS_FILE)
|
|
|
|
|
|
|
|
.PHONY: elm-live
|
|
|
|
elm-live:
|
|
|
|
cd frontend && \
|
|
|
|
elm-live src/Main.elm \
|
|
|
|
--pushstate \
|
|
|
|
--start-page=../$(INDEX_FILE) \
|
|
|
|
-- \
|
|
|
|
--debug \
|
|
|
|
--output=compiled/js/app.js
|
|
|
|
|
|
|
|
.PHONY: assets-live
|
|
|
|
assets-live:
|
|
|
|
while sleep 1; do make -s $(TARGET_CSS_FILE); make -s $(TARGET_ASSETS_IMG_DIR); done
|