# Source files for manual pages are listed in conf.py in variable man_pages

# You can set these variables from the command line, and also from the
# environment for the first two.
SPHINXOPTS    ?= -N
SPHINXBUILD   ?= sphinx-build
SOURCEDIR     = .
BUILDDIR      = _build

INSTALL = /usr/bin/install -c
RM = /usr/bin/rm
RMDIR = /usr/bin/rmdir
LN_S = ln -s
SED = /usr/bin/sed
BTRFS_VERSION = $(shell $(SED) -n 's/.*PACKAGE_VERSION "\(.*\)"/\1/p' ../config.h)

ifneq ($(findstring $(MAKEFLAGS),s),s)
ifndef V
	QUIET_RM	= @
	QUIET_SPHINX	= @echo "  SPHINX   $@";
	SPHINXOPTS     += -q
endif
endif

mandir ?= $(prefix)/share/man
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man5dir = $(mandir)/man5
man8dir = $(mandir)/man8

.PHONY: all man help

# Build manual pages by default
all: man

# Workaround for old sphinx that requires the contents.rst file
man:
	@if [ "$$(sphinx-build --version | cut -d' ' -f2)" \< "1.7.7" ]; then \
		touch contents.rst; \
	fi

	$(QUIET_SPHINX)$(SPHINXBUILD) -M man "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

help:
	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

install: man
	$(INSTALL) -d -m 755 $(DESTDIR)$(man2dir)
	$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
	$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
	$(INSTALL) -m 644 $(BUILDDIR)/man/*.2 $(DESTDIR)$(man2dir)
	$(INSTALL) -m 644 $(BUILDDIR)/man/*.5 $(DESTDIR)$(man5dir)
	$(INSTALL) -m 644 $(BUILDDIR)/man/*.8 $(DESTDIR)$(man8dir)
	$(INSTALL) -m 644 btrfsck.8 $(DESTDIR)$(man8dir)

uninstall:
	cd $(DESTDIR)$(man8dir); rm -f btrfs-check.8 $(MAN8)
	$(RMDIR) -p --ignore-fail-on-non-empty $(DESTDIR)$(man8dir)

clean:
	$(QUIET_RM)$(RM) -rf $(BUILDDIR)/*
	$(QUIET_RM)$(RM) -df -- $(BUILDDIR)
	$(QUIET_RM)$(RM) -f contents.rst


# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
%:
	$(QUIET_SPHINX)$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
