.PHONY: web test dist clean realclean ASSETS_SRC = $(wildcard game/www/*) ASSETS_DST = $(patsubst game/www/%,dist/%,$(ASSETS_SRC)) TEST_PORT ?= 8000 EMSDK_SYSROOT ?= $(EMSDK)/upstream/emscripten/cache/sysroot EMCC_CFLAGS := -O3 \ -sUSE_GLFW=3 \ -sASSERTIONS=1 \ -sWASM=1 \ -sASYNCIFY \ -sGL_ENABLE_GET_PROC_ADDRESS=1 \ -sEXPORTED_RUNTIME_METHODS=HEAPF32,ccall,cwrap,callMain web: dist $(ASSETS_DST) test: web cd dist && python3 -m http.server $(TEST_PORT) dist: env \ CC=emcc \ EMCC_CFLAGS="$(EMCC_CFLAGS)" \ C_INCLUDE_PATH="$(EMSDK_SYSROOT)/include:$C_INCLUDE_PATH" \ cargo build --target wasm32-unknown-emscripten --profile wasm mkdir -p dist cp ./target/wasm32-unknown-emscripten/wasm/game.{js,wasm} dist dist/%: game/www/% cp -r $< $@ clean: rm -rf dist realclean: clean cargo clean