#
# Makefile for Doc subdirectory
#
# Copyright (c) 1995-1997 Richard Coleman
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Richard Coleman or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Richard Coleman and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Richard Coleman and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose.  The software
# provided hereunder is on an "as is" basis, and Richard Coleman and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#

subdir = Doc
dir_top = ..

@@version.mk@@
@@defs.mk@@

MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
DVIPS = dvips -D 300
TEXI2HTML = texi2html -expandinfo -split_chapter

.SUFFIXES: .yo .1

# man pages to install
MAN = zsh.1 zshbuiltins.1 zshcompctl.1 \
zshexpn.1 zshmisc.1 zshmodules.1 \
zshoptions.1 zshparam.1 zshzle.1 zshall.1

# yodl documentation
YODLDOC = $(MAN) zsh.texi
YODLSRC = zmacros.yo zman.yo ztexi.yo Zsh/arith.yo Zsh/builtins.yo \
Zsh/compat.yo Zsh/compctl.yo Zsh/cond.yo Zsh/exec.yo Zsh/expn.yo \
Zsh/filelist.yo Zsh/files.yo Zsh/func.yo Zsh/grammar.yo Zsh/guide.yo \
Zsh/index.yo Zsh/intro.yo Zsh/invoke.yo Zsh/jobs.yo Zsh/metafaq.yo \
Zsh/modules.yo Zsh/mod_cap.yo \
Zsh/mod_clone.yo Zsh/mod_comp1.yo Zsh/mod_compctl.yo Zsh/mod_deltochar.yo \
Zsh/mod_example.yo Zsh/mod_files.yo Zsh/mod_stat.yo \
Zsh/mod_zle.yo Zsh/options.yo \
Zsh/params.yo Zsh/prompt.yo Zsh/redirect.yo Zsh/restricted.yo \
Zsh/seealso.yo Zsh/zle.yo

# ========== DEPENDENCIES FOR BUILDING ==========

all: $(MAN) zsh.texi zsh.info ../META-FAQ

everything: all zsh.dvi zsh_us.ps zsh_a4.ps zsh_toc.html

zsh.dvi: zsh.texi
	$(TEXI2DVI) $(sdir)/zsh.texi

zsh.info: zsh.texi
	$(MAKEINFO) $(sdir)/zsh.texi; exit 0

zsh.texi: zsh.yo
	$(YODL) -o $(sdir)/zsh.texi -I$(sdir) -w ztexi.yo version.yo zsh.yo
	test -f $(sdir)/zsh.texi

.yo.1:
	case $@ in \
	  */*) target=$@ ;; \
	  *) target=$(sdir)/$@ ;; \
	esac; \
	$(YODL) -o $$target -I$(sdir) -w zman.yo version.yo $< || exit 1; \
	test -f $$target

zsh_us.ps: zsh.dvi
	$(DVIPS) -t letter -o $@ zsh.dvi

zsh_a4.ps: zsh.dvi
	$(DVIPS) -t a4 -o $@ zsh.dvi

zsh_toc.html: zsh.texi
	$(TEXI2HTML) $(sdir)/zsh.texi

zshall.1: zsh.yo
	case $@ in \
	  */*) target=$@ ;; \
	  *) target=$(sdir)/$@ ;; \
	esac; \
	$(YODL) -o $$target -I$(sdir) -DZSHALL -w zman.yo version.yo zsh.yo || exit 1; \
	test -f $$target

../META-FAQ: META-FAQ.yo Zsh/metafaq.yo
	$(YODL) -I$(sdir) META-FAQ.yo | sed -e '/NEXTLINE/N' -e '/DELLINE/d' -e '/^SECTHEAD$$/{N;s/^SECTHEAD.//;h;s/./-/g;H;g;}' -e 's/  *$$//' > $(sdir_top)/META-FAQ
	test -f $(sdir_top)/META-FAQ

$(YODLDOC): $(YODLSRC) version.yo

version.yo: $(sdir_top)/Config/version.mk
	( \
	  echo 'STARTDEF()'; \
	  echo 'def(version)(0)('$(VERSION)')'; \
	  echo 'def(date)(0)('$(VERSION_DATE)')'; \
	  echo 'ENDDEF()#' | tr '#' '\\'; \
	) > $(sdir)/version.yo

# ========== DEPENDENCIES FOR INSTALLING ==========

# install all the documentation
install: install.man install.info

# uninstall all the documentation
uninstall: uninstall.man uninstall.info

# install man pages, creating install directory if necessary
install.man: $(MAN)
	$(sdir_top)/mkinstalldirs $(mandir)/man1
	for file in $(MAN); do \
	  if test -f $$file; then \
	    $(INSTALL_DATA) $$file $(mandir)/man1; \
	  elif test -f $(sdir)/$$file; then \
	    $(INSTALL_DATA) $(sdir)/$$file $(mandir)/man1; \
	  else :; \
	  fi || exit 1; \
	done

# install info pages, creating install directory if necessary
install.info: zsh.info
	$(sdir_top)/mkinstalldirs $(infodir)
	for file in zsh.info zsh.info-[1-9]; do \
	  if test -f $$file; then \
	    $(INSTALL_DATA) $$file $(infodir); \
	  elif test -f $(sdir)/$$file; then \
	    $(INSTALL_DATA) $(sdir)/$$file $(infodir); \
	  else :; \
	  fi || exit 1; \
	done

# uninstall man pages
uninstall.man:
	for file in $(MAN); do \
	  rm -f $(mandir)/man1/$$file; \
	done

# uninstall info pages
uninstall.info:
	rm -f $(infodir)/zsh.info $(infodir)/zsh.info-[1-9]

# ========== DEPENDENCIES FOR CLEANUP ==========

@@clean.mk@@

clean-here:
	rm -f *.html *.info* *.dvi *.ps
	rm -f *.aux *.cp *.cps *.fn *.fns *.ky *.log
	rm -f *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs

distclean-here:
	rm -f Makefile

realclean-here:
	cd $(sdir) && rm -f version.yo *.1 *.texi ../META-FAQ

# ========== DEPENDENCIES FOR MAINTENANCE ==========

@@config.mk@@
