PREFIX=/usr/local
LMODNAME=luagravity

LUA=lua
SHELL=bash

ABIVER=5.1
INSTALL_SHARE=$(PREFIX)/share
INSTALL_LMOD=$(INSTALL_SHARE)/lua/$(ABIVER)

TESTS=1 2 activate multi cycle height call expr meta

all: help

.PHONY: help
help:
	@echo "USAGE:"
	@echo "    make doc: generate documentation"
	@echo "    make install: install to system"
	@echo "    make test: run tests"
	@echo "You can set the following environment variables:"
	@echo "    LUA - to use a different Lua interpreter (e.g. LUA=luajit)"
	@echo "    PREFIX and ABIVER - to select the installation directory (see Makefile)"

.PHONY: doc
doc:
	@pushd doc >/dev/null; \
		markdown intro.txt > _intro.html; \
		markdown api.txt > _api.html; \
		markdown meta.txt > _meta.html; \
		markdown meta_api.txt > _meta_api.html; \
		cat intro_menu.html _intro.html _api.html > index.html; \
		cat meta_menu.html _meta.html _meta_api.html > meta.html; \
	popd >/dev/null

.PHONY: test
test:
	@$(foreach var,$(TESTS),echo -n "$(var) ";$(LUA) tests/$(var).lua;)

.PHONY: install
install:
	mkdir -p $(INSTALL_LMOD)/$(LMODNAME)/env
	install -m0644 $(LMODNAME)/env/simple.lua $(INSTALL_LMOD)/$(LMODNAME)/env/simple.lua
	install -m0644 $(LMODNAME)/expr.lua $(INSTALL_LMOD)/$(LMODNAME)/expr.lua
	install -m0644 $(LMODNAME)/init.lua $(INSTALL_LMOD)/$(LMODNAME)/init.lua
	install -m0644 $(LMODNAME)/meta.lua $(INSTALL_LMOD)/$(LMODNAME)/meta.lua

.PHONY: clean
clean:
	rm -f doc/_*.html doc/{index,meta}.html
