PACKAGES := assets game server client webtools

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:
	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
