example-spa-elm-app/Makefile

42 lines
1 KiB
Makefile

# Directories
FRONTEND_DIR := ./frontend
BACKEND_DIR := ./backend
PUBLIC_DIR := ./public
ASSET_DIR := ./assets
# Commands
ELM_MAKE := elm make
CARGO_BUILD := cargo build
CARGO_RUN := cargo run
# Targets
.PHONY: all frontend backend clean serve
frontend_release:
make -C $(FRONTEND_DIR) release_build
cp $(FRONTEND_DIR)/index.html $(PUBLIC_DIR)/
cp $(FRONTEND_DIR)/elm.min.js $(PUBLIC_DIR)/
cp $(FRONTEND_DIR)/src/ports.websocket.js $(PUBLIC_DIR)/
mkdir -p $(PUBLIC_DIR)/assets
frontend_debug:
make -C $(FRONTEND_DIR) debug_build
cp $(FRONTEND_DIR)/index.html $(PUBLIC_DIR)/
cp $(FRONTEND_DIR)/elm.min.js $(PUBLIC_DIR)/
cp $(FRONTEND_DIR)/src/ports.websocket.js $(PUBLIC_DIR)/
mkdir -p $(PUBLIC_DIR)/assets
backend:
$(CARGO_BUILD) --manifest-path=$(BACKEND_DIR)/Cargo.toml
serve: frontend_release backend
$(CARGO_RUN) --manifest-path=$(BACKEND_DIR)/Cargo.toml
serve_debug: frontend_debug backend
RUST_LOG=info,actix_web=debug $(CARGO_RUN) --manifest-path=$(BACKEND_DIR)/Cargo.toml
clean:
rm -rf $(PUBLIC_DIR)/*
rm -rf $(BACKEND_DIR)/target