2025-01-01 01:50:26 +00:00
|
|
|
# Directories
|
|
|
|
FRONTEND_DIR := ./frontend
|
|
|
|
BACKEND_DIR := ./backend
|
|
|
|
PUBLIC_DIR := ./public
|
|
|
|
ASSET_DIR := ./assets
|
2024-12-29 02:09:53 +00:00
|
|
|
|
2025-01-01 01:50:26 +00:00
|
|
|
# Commands
|
|
|
|
ELM_MAKE := elm make
|
|
|
|
CARGO_BUILD := cargo build
|
|
|
|
CARGO_RUN := cargo run
|
|
|
|
|
|
|
|
# Targets
|
|
|
|
.PHONY: all frontend backend clean serve
|
|
|
|
|
2025-01-01 02:14:09 +00:00
|
|
|
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
|
2025-01-01 01:50:26 +00:00
|
|
|
|
2025-01-01 02:14:09 +00:00
|
|
|
frontend_debug:
|
|
|
|
make -C $(FRONTEND_DIR) debug_build
|
2025-01-01 01:50:26 +00:00
|
|
|
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
|
2024-12-29 02:09:53 +00:00
|
|
|
|
2025-01-01 02:14:09 +00:00
|
|
|
serve: frontend_release backend
|
2025-01-01 01:50:26 +00:00
|
|
|
$(CARGO_RUN) --manifest-path=$(BACKEND_DIR)/Cargo.toml
|
|
|
|
|
2025-01-01 02:14:09 +00:00
|
|
|
serve_debug: frontend_debug backend
|
2025-01-01 01:50:26 +00:00
|
|
|
RUST_LOG=info,actix_web=debug $(CARGO_RUN) --manifest-path=$(BACKEND_DIR)/Cargo.toml
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf $(PUBLIC_DIR)/*
|
|
|
|
rm -rf $(BACKEND_DIR)/target
|
2024-12-29 02:09:53 +00:00
|
|
|
|