debug: FORCE meson setup build_dbg -Dbuildtype=debugoptimized meson install --only-changed -C build_dbg cp build_dbg/cell . && chmod +x cell fast: FORCE meson setup build_fast meson install -C build_fast release: FORCE meson setup -Dbuildtype=release -Db_lto=true -Db_lto_mode=thin -Db_ndebug=true build_release meson install -C build_release sanitize: FORCE meson setup -Db_sanitize=address -Db_sanitize=memory -Db_sanitize=leak -Db_sanitize=undefined build_sani meson install -C build_sani small: FORCE meson setup -Dbuildtype=minsize -Db_lto=true -Db_ndebug=true build_small meson install -C build_small web: FORCE meson setup -Deditor=false -Dbuildtype=minsize -Db_lto=true -Db_ndebug=true --cross-file emscripten.cross build_web meson compile -C build_web crosswin: FORCE meson setup -Dbuildtype=debugoptimized --cross-file mingw32.cross build_win meson compile -C build_win FORCE: IMAGE_LINUX := prosperon/linux-builder:latest IMAGE_MINGW := prosperon/mingw-builder:latest IMAGE_EMSCRIPTEN := prosperon/emscripten-builder:latest PWD := $(shell pwd) ARTIFACTS_DIR := artifacts build: meson setup build -Dbuildtype=release -Db_lto=true -Db_lto_mode=thin -Db_ndebug=true meson compile -C build dockerclean: rm -rf build build-win $(ARTIFACTS_DIR) dockerlinux: build-linux-image run-linux build-linux-image: docker build -f .github/docker/Dockerfile.linux -t $(IMAGE_LINUX) . run-linux: @mkdir -p $(ARTIFACTS_DIR)/linux docker run --rm -v $(PWD):/src -w /src $(IMAGE_LINUX) bash -lc 'meson setup build -Dbuildtype=release -Db_lto=true -Db_ndebug=true && meson compile -C build && cp build/cell $(ARTIFACTS_DIR)/linux/' dockerwin: build-mingw-image run-win build-mingw-image: docker build -f .github/docker/Dockerfile.mingw -t $(IMAGE_MINGW) . run-win: @mkdir -p $(ARTIFACTS_DIR)/windows docker run --rm -v $(PWD):/src -w /src $(IMAGE_MINGW) bash -lc 'meson setup build-win --cross-file mingw32.cross -Dbuildtype=release -Db_lto=true -Db_ndebug=true && meson compile -C build-win && cp build-win/cell.exe $(ARTIFACTS_DIR)/windows/' dockeremc: build-emscripten-image run-emc build-emscripten-image: docker build -f .github/docker/Dockerfile.emscripten -t $(IMAGE_EMSCRIPTEN) . run-emc: @mkdir -p $(ARTIFACTS_DIR)/emscripten docker run --rm -v $(PWD):/src -w /src $(IMAGE_EMSCRIPTEN) bash -lc 'meson setup build-emscripten --cross-file emscripten.cross -Dbuildtype=release -Db_ndebug=true -Ddefault_library=static -Dcpp_std=c++11 && meson compile -C build-emscripten && cp build-emscripten/cell.wasm build-emscripten/cell.js $(ARTIFACTS_DIR)/emscripten/' WINFILES = cell.exe steam_api64.dll steam_appid.txt tangletart.bat WINDIRS = scripts .cell accio prosperon win_release: FORCE make dockerwin cp build-win/cell.exe . cp sdk/redistributable_bin/win64/steam_api64.dll . zip -r $@ $(WINFILES) $(WINDIRS) --exclude=*.git* --exclude=*_doc* --exclude=*_concepts*