# debug/release
MODE ?= debug
OUT_DIR ?= build

ODIN_FLAGS_debug   := -debug
ODIN_FLAGS_release := -o:speed
ODIN_FLAGS := $(ODIN_FLAGS_$(MODE))

.PHONY: all
all: build

## build
.PHONY: build build-client build-server build-web
build: build-client build-server build-web

build-client:
	odin build client/main_desktop -collection:client=client -collection:src=. -out:$(OUT_DIR)/client $(ODIN_FLAGS)
	cp -R ./assets/ ./$(OUT_DIR)/

build-server:
	odin build server -collection:server=server -collection:src=. -out:$(OUT_DIR)/server $(ODIN_FLAGS)

build-web:
	./build_web.sh


## run
.PHONY: run run-client run-server run-proxy
run-client: build-client
	$(OUT_DIR)/client

run-server: build-server
	$(OUT_DIR)/server

run-proxy:
	cd proxy && npm start


##
.PHONY: debug release clean
debug:
	$(MAKE) MODE=debug

release:
	$(MAKE) MODE=release
