.POSIX:
.SUFFIXES:
HARE=hare
HAREFLAGS=

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

.PHONY: default
default: check cmd

.PHONY: cmd
cmd: http httpd websocket websocketd

.PHONY: ev
ev: ev-http ev-httpd ev-websocket ev-websocketd

.PHONY: http
http:
	$(HARE) build $(HAREFLAGS) cmd/http

.PHONY: httpd
httpd:
	$(HARE) build $(HAREFLAGS) cmd/httpd

.PHONY: websocket
websocket:
	$(HARE) build $(HAREFLAGS) cmd/websocket

.PHONY: websocketd
websocketd:
	$(HARE) build $(HAREFLAGS) cmd/websocketd

.PHONY: ev-http
ev-http:
	$(HARE) build $(HAREFLAGS) cmd/ev-http

.PHONY: ev-httpd
ev-httpd:
	$(HARE) build $(HAREFLAGS) cmd/ev-httpd

.PHONY: ev-websocket
ev-websocket:
	$(HARE) build $(HAREFLAGS) cmd/ev-websocket

.PHONY: ev-websocketd
ev-websocketd:
	$(HARE) build $(HAREFLAGS) cmd/ev-websocketd

check:
	$(HARE) test $(HAREFLAGS)

install:
	mkdir -p $(DESTDIR)$(THIRDPARTYDIR)/net/http/
	install -Dm644 net/http/* $(DESTDIR)$(THIRDPARTYDIR)/net/http/

	mkdir -p $(DESTDIR)$(THIRDPARTYDIR)/ev/http/
	install -Dm644 ev/http/* $(DESTDIR)$(THIRDPARTYDIR)/ev/http/

	mkdir -p $(DESTDIR)$(THIRDPARTYDIR)/net/websocket/
	install -Dm644 net/websocket/* $(DESTDIR)$(THIRDPARTYDIR)/net/websocket/

	mkdir -p $(DESTDIR)$(THIRDPARTYDIR)/ev/websocket/
	install -Dm644 ev/websocket/* $(DESTDIR)$(THIRDPARTYDIR)/ev/websocket/

uninstall:
	rm -rf $(DESTDIR)$(THIRDPARTYDIR)/net/http/

.PHONY: check install uninstall
