.POSIX:
.SUFFIXES:
HARE=hare
HAREFLAGS=
HAREDOC=haredoc

DESTDIR=
PREFIX=/usr/local
SRCDIR=$(PREFIX)/src
HARESRCDIR=$(SRCDIR)/hare
THIRDPARTYDIR=$(HARESRCDIR)/third-party

check:
	$(HARE) test

clean:
	rm -rf docs

docs:

install: uninstall
	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/lex
	install -m644 lexical/lex/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/lex
	install -m644 lexical/lex/README "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/lex/README

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/lex/+test
	install -m644 lexical/lex/+test/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/lex/+test/

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/parse
	install -m644 lexical/parse/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/parse

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/lex
	install -m644 lexical/hare/lex/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/lex

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/ast
	install -m644 lexical/hare/ast/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/ast

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/parse
	install -m644 lexical/hare/parse/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/parse

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/unparse
	install -m644 lexical/hare/unparse/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/hare/unparse

	mkdir -p "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/machine
	install -m644 lexical/machine/*.ha "$(DESTDIR)$(THIRDPARTYDIR)"/lexical/machine

uninstall:
	rm -rf "$(DESTDIR)$(THIRDPARTYDIR)"/lexical

.PHONY: all docs clean check install uninstall
