90 lines
2.1 KiB
Makefile
90 lines
2.1 KiB
Makefile
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 =
|
|
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 --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
|