diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..11b164a --- /dev/null +++ b/Makefile @@ -0,0 +1,109 @@ +LUA?="$(shell where lua | head -n 1)" +MOONC?="$(shell where moonc | head -n 1)" +BUSTED?="$(shell where busted | head -n 1)" +AMULET?="$(shell where amulet | head -n 1)" +MAGICK?="$(shell where magick | head -n 1)" -script +PYTHON?=python +PYTEST?=$(PYTHON) -m pytest +# Works on windows and linux (and mac?) +CP?=cp +RM?=rm +CD?=cd +UNZIP?=7z x -y + +.PHONY: all clean test test-integration test-integration-headless test1 + +# Recursive wildcard +rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d)) + +# Source code +src_moon=$(call rwildcard,src,*.moon) +built_moon=$(src_moon:src/%.moon=data/%.lua) +dbg_moon=$(src_moon:src/%.moon=data/%.lua.X) + +src_lua=$(call rwildcard,src,*.lua) +built_lua=$(src_lua:src/%.lua=data/%.lua) + +src_js=$(call rwildcard,src,*.js) +built_js=$(src_js:src/%.js=data/%.lua) + +src_vert=$(call rwildcard,src,*.vert) +built_vert=$(src_vert:src/%.vert=data/%.vert) + +src_frag=$(call rwildcard,src,*.frag) +built_frag=$(src_frag:src/%.frag=data/%.frag) + +src_imagemagick=$(call rwildcard,assets_src,*.imagemagick) +built_imagemagick=$(src_imagemagick:assets_src/%.imagemagick=data/assets/%.png) +src_png=$(call rwildcard,assets_src,*.png) +built_png=$(src_png:assets_src/%.png=data/assets/%.png) +sprites=$(built_imagemagick) $(built_png) + +built=$(built_moon) $(built_lua) $(built_js) $(built_vert) $(built_frag) $(built_imagemagick) data/sprites.lua data/sprites.png +built_dbg=$(built) $(dbg_moon) + +all: ggj26/amulet.js ggj26/amulet.wasm ggj26/data.pak ggj26/index.html + echo "Done" + $(AMULET) export -r -html -a data + #scp ggj26-0.0.0-html.zip alex@cogarr.net: + $(UNZIP) *.zip + $(CD) ggj26 && python3 -m http.server -b 0.0.0.0 8000 + + +ggj26/index.html ggj26/amulet.js ggj26/amulet.wasm ggj26/data.pak: ggj26-0.0.0-html.zip + $(UNZIP) *.zip + +data/sprites.lua data/sprites.png : $(sprites) + $(AMULET) pack -png data/sprites.png -lua data/sprites.lua yataghan.ttf@64 yataghan.ttf@32 $^ + # $(RM) -rf data/assets + sed -i 's|data/sprites\.png|sprites.png|g; s|data/assets/|assets/|g' data/sprites.lua + +ggj26-0.0.0-html.zip : $(built_dbg) + $(AMULET) export -r -html -a data + +clean: + $(RM) $(built) + +test: $(built_dbg) + $(BUSTED) -m "./data/?.lua" -o utfTerminal -v spec + +test-integration: + $(PYTEST) -v + +test-integration-headless: + @set HEADLESS=1 && $(PYTEST) -v + +test1: test test-integration + +$(built_lua) : data/%.lua : src/%.lua + $(CP) $< $@ + +$(built_moon) : data/%.lua : src/%.moon + # $(MOONC) -l $< # Linter isn't good enough yet + $(MOONC) -p $< > $@ + +$(dbg_moon) : data/%.lua.X : src/%.moon + # $(MOONC) -l $< # Linter isn't good enough yet + $(MOONC) -X $< > $@ + +$(built_js) : data/%.lua : src/%.js + $(if $(findstring party/,$<),@echo Skipping jshint for third-party library: $<,npx jshint $<) + echo "return [=====[" > $@ + cat $< >> $@ + echo "]=====]" >> $@ + +$(built_imagemagick) : data/assets/%.png : assets_src/%.imagemagick + @mkdir -p $(dir $@) + $(MAGICK) $< > $@ + +$(built_png) : data/assets/%.png : assets_src/%.png + @mkdir -p $(dir $@) + $(CP) $< $@ + +$(built_vert) : data/%.vert : src/%.vert + @mkdir -p $(dir $@) + $(CP) $< $@ + +$(built_frag) : data/%.frag : src/%.frag + @mkdir -p $(dir $@) + $(CP) $< $@ |
