.POSIX:
.SUFFIXES:
HARE=hare
HAREFLAGS=

DESTDIR=
PREFIX=/usr/local
LIBDIR=$(PREFIX)/lib
LIBEXECDIR=$(PREFIX)/libexec
MOZMSGHOSTDIR=$(LIBDIR)/mozilla/native-messaging-hosts/
MOZADDONDIR=$(LIBDIR)/firefox-esr-addons/distribution/extensions

all: native/himitsu-firefox-native native/manifest.json
all: himitsu@drewdevault.com.xpi
all: himitsu-firefox-import
all: himitsu-firefox-export

NATIVE_SOURCE=\
	      native/dispatch.ha \
	      native/main.ha

native/himitsu-firefox-native: $(NATIVE_SOURCE)
	cd native && $(HARE) build $(HAREFLAGS) -o himitsu-firefox-native

himitsu-firefox-import: cmd/himitsu-firefox-import/main.ha
	$(HARE) build $(HAREFLAGS) -o himitsu-firefox-import ./cmd/himitsu-firefox-import

himitsu-firefox-export: cmd/himitsu-firefox-export/main.ha
	$(HARE) build $(HAREFLAGS) -o himitsu-firefox-export ./cmd/himitsu-firefox-export

native/manifest.json: native/manifest.json.in
	sed -e "s:@LIBEXECDIR@:$(LIBEXECDIR):g" <native/manifest.json.in >$@

himitsu@drewdevault.com.xpi:
	zip -r -FS $@ content icons manifest.json

install-native: native/himitsu-firefox-native native/manifest.json
	mkdir -p $(DESTDIR)$(MOZMSGHOSTDIR) $(DESTDIR)$(LIBEXECDIR)
	install -Dm755 native/himitsu-firefox-native $(DESTDIR)$(LIBEXECDIR)
	install -Dm644 native/manifest.json $(DESTDIR)$(MOZMSGHOSTDIR)/himitsu.json

install-xpi: himitsu@drewdevault.com.xpi
	mkdir -p $(DESTDIR)$(MOZADDONDIR)
	install -Dm644 himitsu@drewdevault.com.xpi $(DESTDIR)$(MOZADDONDIR)

uninstall-native:
	rm -f $(DESTDIR)$(LIBEXECDIR)/himitsu-firefox-native
	rm -f $(DESTDIR)$(MOZMSGHOSTDIR)/himitsu.json

uninstall-xpi:
	rm -f $(DESTDIR)$(MOZADDONDIR)/himitsu@drewdevault.com.xpi

install: install-native install-xpi
uninstall: uninstall-native uninstall-xpi

.PHONY: install-native install-xpi install himitsu@drewdevault.com.xpi
.PHONY: uninstall-native uninstall-xpi uninstall

clean:
	rm -f himitsu@drewdevault.com.xpi
	rm -f native/himitsu-firefox-native native/manifest.json
	rm -f himitsu-firefox-export
	rm -f himitsu-firefox-import

.PHONY: all clean
