WASM_PKG_DIR = dist_text_js/pkg
ASSET_DIR = woweb/assets
WASM_JS = dist_text_js.js
WASM_BG = dist_text_js_bg.wasm
WASM_JS_PKG = $(WASM_PKG_DIR)/$(WASM_JS)
WASM_BG_PKG = $(WASM_PKG_DIR)/$(WASM_BG)
WASM_JS_ASSET = $(ASSET_DIR)/$(WASM_JS)
WASM_BG_ASSET = $(ASSET_DIR)/$(WASM_BG)
DIST_DIR = dist

.PHONY: default all check wasm serve clean

default: all
all: wasm
wasm: $(WASM_JS_ASSET) $(WASM_BG_ASSET)

$(WASM_JS_ASSET) $(WASM_BG_ASSET): dist_text_js/src/lib.rs
	cd dist_text_js; \
    wasm-pack build --target web --release --no-typescript

	cp $(WASM_JS_PKG) $(WASM_JS_ASSET)
	cp $(WASM_BG_PKG) $(WASM_BG_ASSET)

check:
	cargo deny check

serve: wasm
	cd woweb; \
		cargo run

release: $(DIST_DIR) wasm
	cargo build --package woweb --release
	cp target/release/woweb $(DIST_DIR)
	cp -r $(ASSET_DIR) $(DIST_DIR)

$(DIST_DIR):
	mkdir -p $(DIST_DIR)

clean:
	cargo clean
	rm -rf $(WASM_PKG_DIR)
	rm -f $(ASSET_DIR)/dist_text*