aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: b6fd71cfdf4dd423c4048e0cf479d0e0f64cdc57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#Binaries
BLENDER = "D:\Programs\Blender\blender.exe"
CONVERT = convert #Imagemagik
MAGICK = magick
MOONC = lua C:/Users/user/AppData/Roaming/luarocks/lib/luarocks/rocks-5.3/moonscript/0.5.0-1/bin/moonc
LUASTR = tools/luastr.sh
CP = cp
CAT = cat
CD = cd
AMULET = amulet
LUA = lua
MV = mv
UNZIP = unzip -o #overwrite without asking
HTTP_SERVER = python -m http.server #STL
OPEN_BROWSER = rundll32 url.dll,FileProtocolHandler http://localhost:8000
ECHO=echo
TILED=tiled
7Z=7z

moon_files = $(wildcard src/*.moon)
lua_files = $(wildcard src/*.lua)
js_files = $(wildcard src/js/*.js)
build_moon_files = $(moon_files:src/%.moon=build/%.lua)
debug_moon_files = $(moon_files:src/%.moon=debug/%.lua.X)
build_js_files = $(js_files:src/js/%.js=build/%.lua)
build_lua_files = $(lua_files:src/%.lua=build/%.lua)

#Levels from tiled
level_src_files = $(wildcard data_src/levels/*.tmx)
level_lua_files = $(level_src_files:data_src/levels/%.tmx=build/%.lua)

#Sprites from models
model_files = $(wildcard data_src/models/*.blend")
raw_imgs = $(model_files:data_src/models/%.blend=data_src/img_raw/%_raw.png)
static_files = $(wildcard data_src/*.jpg) $(wildcard data_src/*.png)
static_imgs = $(static_files:data_src/%=build/data/%)
sprites = $(raw_imgs:data_src/img_raw/%_raw.png=build/data/%.png)
dev_files = $(build_moon_files) $(build_lua_files) $(debug_moon_files) $(sprites) $(level_lua_files) $(build_js_files) $(static_imgs)
all_files = $(build_moon_files) $(build_lua_files) $(debug_moon_files) $(sprites) $(build_js_files) $(static_imgs)


all: $(all_files) $(sprites)
	$(AMULET) export -r -a -nozipdir -html build
	$(7Z) e -obin -aoa Untitled-0.0.0-html.zip
	$(CD) bin && $(HTTP_SERVER)

dev: $(dev_files)
	cd build && $(AMULET) 2> err.log || true
	cat build/err.log | lua rewrite.lua

$(build_js_files) : build/%.lua : src/js/%.js $(LUASTR)
	$(LUASTR) $< > $@

$(build_moon_files) : build/%.lua : src/%.moon
	$(MOONC) -o $@ $<

$(debug_moon_files) : debug/%.lua.X : src/%.moon
	$(MOONC) -X $< > $@

$(build_lua_files) : build/%.lua : src/%.lua
	$(CP) $< $@

#Convert images to our reduce 64 colors
$(sprites) : build/data/%.png : data_src/img_raw/%_raw.png
	$(CONVERT) $^ +dither -remap fantasy-24-1x.png $@

#What's going on? I can't access the dependency
$(raw_imgs) : data_src/img_raw/%_raw.png : data_src/models/%.blend
	$(BLENDER) -b $^ -o //../../$(@:%_raw.png=%_raw_) -f 1
	$(MV) $(@:%_raw.png=%_raw_0001.png) $@

$(static_imgs) : build/data/% : data_src/%
	$(CP) $< $@

#Dev graphics, only used for tiled and in development
#See https://legacy.imagemagick.org/Usage/text/ for options that can
#    be put in the text file
dev_graphic_srcs=$(wildcard data_src/dev_graphics/*.txt)
dev_graphic_imgs=$(dev_graphic_srcs:%.txt=%.png)
dev_graphics: $(dev_graphic_imgs)
	echo "Done creating dev graphics"

$(dev_graphic_imgs) : data_src/dev_graphics/%.png : data_src/dev_graphics/%.txt
	$(CONVERT) -font "Liberation Mono" -pointsize 12 $(shell cat $<) $@

clean:
	rm debug/*.X
	rm build/*.lua
	rm *.zip

sprites.png : sprites
	amulet pack -png sprites.png -lua sprites.lua sprites/*.png