SOURCES_MOON := $(wildcard *.moon)
SOURCES_MOON := $(filter-out Build.moon, $(SOURCES_MOON))
OUT_LUA      := $(foreach source, $(SOURCES_MOON), $(patsubst %.moon, %.lua, $(source)))
BINARY       := moonbuild
MAIN         := $(BINARY).moon
MAIN_LUA     := $(patsubst %.moon, %.lua, $(MAIN))
OUT_C        := $(patsubst %.moon, %.lua.c, $(MAIN))
PREFIX       ?= /usr/local

.PHONY: all install clean mrproper info

all: $(BINARY)

install: moonbuild
	install $^ $(PREFIX)/bin

clean:
	rm -f $(OUT_LUA)
	rm -f $(OUT_C)

mrproper: clean
	rm -f $(BINARY)

info:
	@echo "Moonscript sources:" $(SOURCES_MOON)
	@echo "Compiled lua:" $(OUT_LUA)
	@echo "Binary:" $(BINARY)

$(BINARY): $(OUT_LUA)
	luastatic $(MAIN_LUA) $(OUT_LUA) -I/usr/include/lua5.3 -llua5.3

%.lua: %.moon
	moonc $^