# Documentation directory Makefile
# Gordon Matzigkeit <gord@fig.org>, 2000-11-15

default: all

PACKAGE = intermezzo

prefix = /usr
datadir = $(prefix)/share
ifeq ($(wildcard $(datadir)/doc),)
docdir = $(prefix)/doc/$(PACKAGE)
mandir = $(prefix)/man
else
docdir = $(datadir)/doc/$(PACKAGE)
mandir = $(datadir)/man
endif

INSTALL = install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
INSTALL_SCRIPT = $(INSTALL) -m 755

SGML2HTML = sgml2html
SGML2PDF = sgml2pdf
SGML2TXT = sgml2txt
POD2HTML = pod2html
POD2TXT = pod2txt

DISTFILES = Makefile InterMezzo-HOWTO.html InterMezzo-HOWTO.sgml \
	InterMezzo-ext3.txt KML-Expect.html \
	internals.html internals.pod \
	kernelapi.html kernelapi.pod protocol.txt \
	semantics.html semantics.pod \
	fsetdb.sgml \
	intermezzo.sgml \
	mkizofs.sgml \
	serverdb.sgml \
	sysid.sgml

HTMLFILES = $(filter %.html,$(DISTFILES))
TEXTFILES = $(filter %.txt,$(DISTFILES))
DOCFILES = $(HTMLFILES) $(TEXTFILES)
MISSINGMANFILES = presto.4 inconfig.2 kml-print.2 umountizo.2
MANFILES = intermezzo.4 mkizofs.8 fsetdb.5 sysid.5 serverdb.5

.SUFFIXES:
.SUFFIXES: .html .pod .sgml .txt

.sgml.html:
	# this would do the trick if I could get the multiline sed to work
	# but it's moot for now -- no html manpages
	#sed -e '1i\
#<!doctype linuxdoc system>' $< > __tmp.sgml
	#$(SGML2HTML) -s 0 __tmp.sgml
	#mv __tmp.html $@
	$(SGML2HTML) -s 0 $<

.pod.html:
	$(POD2HTML) --infile $< --outfile $@

.pod.txt:
	$(POD2TXT) $<

%.sgml.cntr: %.sgml
	../tools/create_container $?

%.1 %.2 %.3 %.4 %.5 %.8 %.man: %.sgml.cntr
	mv $? __tmp.sgml
	$(SGML2TXT) -man __tmp.sgml
	mv __tmp.man $@
	rm -f __tmp.sgml

all: $(DOCFILES) $(MANFILES)

install: $(DOCFILES) $(MANFILES)
	test -d $(DESTDIR)$(docdir) || mkdir -p $(DESTDIR)$(docdir)
	list='$(DOCFILES)'; for f in $$list; do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f || exit $$?; \
	done
	for f in $(MANFILES); do \
	  sect=`echo $$f | sed -e 's/^.*\.//'`; \
	  test -d $(DESTDIR)$(mandir)/man$$sect || \
	    mkdir -p $(DESTDIR)$(mandir)/man$$sect; \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(mandir)/man$$sect/$$f || exit $$?; \
	done

uninstall:
	rm -f $(addprefix $(DESTDIR)$(docdir),$(DOCFILES))

distdir: $(DISTFILES)
	@for file in $(DISTFILES); do \
	  save_IFS=$${IFS+ 	}; IFS=/; pdir=; \
	  for dir in $$file; do \
	    if test -n "$$pdir"; then \
	      test -d "$(distdir)/$$pdir" || mkdir "$(distdir)/$$pdir"; \
	      pdir="$$pdir/$$dir"; \
	    else \
	      pdir="$$dir"; \
            fi; \
	  done;  IFS="$$save_IFS"; \
	  test -f $(distdir)/$$file \
	    || ln $$file $(distdir)/$$file 2> /dev/null \
	    || cp -p $$file $(distdir)/$$file || :; \
	done

clean distclean:

realclean:
	rm -f internals.html kernelapi.html semantics.html mkizofs.html \
	      mkizofs.man __tmp.sgml mkizofs.txt fsetdb.html \
	      intermezzo.html intermezzo.man serverdb.html sysid.html \
	      $(MANFILES)

.PHONY: default all distdir clean distclean install uninstall
