#
# Makefile for the doc directory
#

srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
top_builddir = ..
my_dir = doc
INSTALL = @INSTALL@

@MCONFIG@

DVI=texi2dvi
DVIPS=dvips -o "$@"
INFO=makeinfo
HTML=texi2html
RM=/bin/rm -rf

all:: libext2fs.info libext2fs.dvi

install-doc-libs:
	$(RM) $(DESTDIR)$(infodir)/libext2fs.info*
	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir)
	for i in libext2fs.info* ; do \
		$(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i ; \
	done
	gzip -9 $(DESTDIR)$(infodir)/libext2fs.info*

uninstall-doc-libs:
	$(RM) $(DESTDIR)$(infodir)/libext2fs.info*

libext2fs.info: $(srcdir)/libext2fs.texinfo
	$(INFO) $(srcdir)/libext2fs.texinfo

libext2fs.dvi: $(srcdir)/libext2fs.texinfo
	$(DVI) $(srcdir)/libext2fs.texinfo

.PHONY: distclean
distclean:: clean
	$(RM) Makefile

.PHONY: clean
clean:: clean-all

.PHONY: clean-all
clean-all:: clean-tex clean-backup clean-final clean-tarfiles

.PHONY: clean-final
clean-final::
	$(RM) *.ps *.info *.info-? *.html

.PHONY: clean-tex
clean-tex::
	$(RM) *.aux *.cp *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr *.fns

.PHONY: clean-backup
clean-backup::
	$(RM) *~ #*

.PHONY: clean-tarfiles
clean-tarfiles::
	$(RM) *.tar *.tar.gz *.tgz



