# The manual pages are hand-written groff sources (man macros); the
# complete documentation is the Info manual, umsfuse.texi.
PREFIX?=/usr/local
MANDIR?=$(PREFIX)/share/man
INFODIR?=$(PREFIX)/share/info

PAGES_1 = umscat.1 umscp.1 umsdosfs.1 umsls.1 umsstat.1 umstar.1
PAGES_8 = umsfsck.8

.PHONY: all clean install uninstall

all: version.man $(PAGES_1) $(PAGES_8) umsfuse.info.gz
pdf: umsfuse.pdf

version.texi version.man:
	./mkversion

umsfuse.info: version.texi

umsfuse.info.gz: umsfuse.info
	gzip -9fkn umsfuse.info

umsfuse.pdf: umsfuse.texi version.texi
	texi2pdf $<

# Prepend version.man so the .TH date and "UMSFUSE <version>" footer
# are filled in from the Fossil manifest.  The installed page is plain
# groff and does not depend on version.man being present.
install: all
	install -d $(DESTDIR)$(MANDIR)/man1 $(DESTDIR)$(MANDIR)/man8
	for p in $(PAGES_1); do \
	  cat version.man $$p > $$p.baked && \
	  install -m 644 $$p.baked $(DESTDIR)$(MANDIR)/man1/$$p && \
	  rm -f $$p.baked; \
	done
	for p in $(PAGES_8); do \
	  cat version.man $$p > $$p.baked && \
	  install -m 644 $$p.baked $(DESTDIR)$(MANDIR)/man8/$$p && \
	  rm -f $$p.baked; \
	done
	ln -s umsfsck.8 $(DESTDIR)$(MANDIR)/man8/fsck.umsdos.8

	install -Dm 644 umsfuse.info.gz -t $(DESTDIR)$(INFODIR)
	if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
	  install-info --info-dir=$(DESTDIR)$(INFODIR) \
	               $(DESTDIR)$(INFODIR)/umsfuse.info.gz; \
	else true; fi

uninstall:
	$(RM) $(addprefix $(DESTDIR)$(MANDIR)/man1/,$(PAGES_1))
	$(RM) $(addprefix $(DESTDIR)$(MANDIR)/man8/,$(PAGES_8))
	$(RM) $(DESTDIR)$(MANDIR)/man8/fsck.umsdos.8
	$(RM) $(DESTDIR)$(INFODIR)/umsfuse.info.gz
	-if test -f $(DESTDIR)$(INFODIR)/dir; then \
	   install-info --delete --info-dir=$(DESTDIR)$(INFODIR) umsfuse.info || true; \
	fi
	-rmdir -p --ignore-fail-on-non-empty \
	  $(DESTDIR)$(MANDIR)/man1 \
	  $(DESTDIR)$(MANDIR)/man8 \
	  $(DESTDIR)$(INFODIR)

clean:
	$(RM) umsfuse.info umsfuse.info.gz version.texi version.man
