BUNDLE_NAME = bundle.lua HAXE_NAME = haxe.lua MINIFYD_NAME = bundle.min.lua HAXE_ZIP_NAME = "haxe.zip" UNPACK_NAME = unpack.lua UNPACK_POLYFILLED_NAME = unpack.polyfill.lua UNPACK_MINIFYD_NAME = unpack.min.lua BUILD_DIR = build HAXE_FLAGS = -D message.reporting=pretty POLYFILLED_NAME = bundle.polyfill.lua POLYFILL_SRC = src/polyfill.lua CREAFTOS_PATH = craftos BUILD_HXML = build.hxml HAXE_PATH := $(BUILD_DIR)/$(HAXE_NAME) MIN_PATH := $(BUILD_DIR)/$(MINIFYD_NAME) POLYFILL_PATH := $(BUILD_DIR)/$(POLYFILLED_NAME) UNPACK_PATH := $(BUILD_DIR)/$(UNPACK_NAME) UNPACK_MINIFYD_PATH := $(BUILD_DIR)/$(UNPACK_MINIFYD_NAME) HAXE_ZIP_PATH := $(BUILD_DIR)/$(HAXE_ZIP_NAME) UNPACK_POLYFILLED_PATH := $(BUILD_DIR)/$(UNPACK_POLYFILLED_NAME) all: clean build unpack build: HAXE_FLAGS += -D analyzer-optimize -D no-traces build: $(MIN_PATH) debug: HAXE_FLAGS += -D webconsole -D error_stack --debug debug: $(MIN_PATH) unpack: $(UNPACK_MINIFYD_PATH) $(HAXE_ZIP_PATH) $(HAXE_PATH): HAXE_FLAGS += --main kernel.Entrypoint --lua $(HAXE_PATH) $(HAXE_PATH): $(shell find src -name '*.hx') haxe $(BUILD_HXML) $(HAXE_FLAGS) $(POLYFILL_PATH): $(POLYFILL_SRC) $(HAXE_PATH) cat $(POLYFILL_SRC) $(HAXE_PATH) > $@ $(MIN_PATH): $(POLYFILL_PATH) node tools/minify.js < $(POLYFILL_PATH) > $@ $(HAXE_ZIP_PATH): $(MIN_PATH) node tools/zlibDeflate.js < $(MIN_PATH) > $@ $(UNPACK_PATH): HAXE_FLAGS += --main Unpack -D analyzer-optimize --lua $(UNPACK_PATH) $(UNPACK_PATH): $(shell find src -name '*.hx') haxe $(BUILD_HXML) $(HAXE_FLAGS) $(UNPACK_POLYFILLED_PATH): $(UNPACK_PATH) cat $(POLYFILL_SRC) $(UNPACK_PATH) > $@ $(UNPACK_MINIFYD_PATH): $(UNPACK_POLYFILLED_PATH) node tools/minify.js < $(UNPACK_POLYFILLED_PATH) > $@ .PHONY: deps deps: deps-hx deps-node .PHONY: deps-hx deps-hx: haxelib install all --always .PHONY: deps-node deps-node: npm install .PHONY: clean clean: rm -rf $(BUILD_DIR) mkdir $(BUILD_DIR) .PHONY: watch watch: find src | entr make debug .PHONY: emulator emulator: $(CREAFTOS_PATH) --mount-ro /=$(shell pwd)/$(BUILD_DIR) .PHONY: webconsole webconsole: node tools/console.js .PHONY: format format: haxelib run formatter -s src .PHONY: format-deps format-deps: haxelib install formatter