PACKAGES := assets game server client webtools ui

APPS := server client
OBJS := $(foreach app,$(APPS),$(app)/$(app))
WASM := client/client.wasm webtools/webtools.wasm

.PHONY: all fmt test $(OBJS) $(WASM)
all: $(OBJS) $(WASM)

server/server:
	@echo Building Server ...
	pushd $(@D) >/dev/null && go build && popd >/dev/null

client/client:
	@echo Building Client ...
	pushd $(@D) >/dev/null && go build && popd >/dev/null

client/client.wasm:
	@echo Building Client.wasm ...
	pushd $(@D) >/dev/null && env GOOS=js GOARCH=wasm go build -o $(@F) && popd >/dev/null

webtools/webtools.wasm:
	@echo Building Webtools.wasm ...
	pushd $(@D) >/dev/null && env GOOS=js GOARCH=wasm go build -o $(@F) && popd >/dev/null

fmt:
	set -e; for package in $(PACKAGES); do pushd $$package >/dev/null && go fmt && popd >/dev/null; done

test:
	for package in $(PACKAGES); do pushd $$package >/dev/null && go test && popd >/dev/null; done
