Parallelize documentation builds.
[bpt/emacs.git] / doc / misc / Makefile.in
index 02115a4..add1b42 100644 (file)
@@ -1,6 +1,6 @@
 #### Makefile for documentation other than the Emacs manual.
 
-# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -24,18 +24,9 @@ SHELL = /bin/sh
 # set by the configure script's `--srcdir' option.
 srcdir=@srcdir@
 
-# Tell make where to find source files; this is needed for the makefiles.
-# Note the other doc Makefiles do not use VPATH anymore, instead
-# they set infodir to an absolute path.  Not doing that here in
-# case INFO_TARGETS gets too long for some feeble shells.
-# (cf src/Makefile.in's passing of $lisp to make-docfile)
-VPATH=@srcdir@
-
 ## Where the output files go.
-## Note that the setfilename command in the .texi files assumes this.
-infodir=../../info
+buildinfodir = $(srcdir)/../../info
 ## Directory with emacsver.texi.
-## Currently only used by efaq and calc.
 emacsdir = $(srcdir)/../emacs
 
 MKDIR_P = @MKDIR_P@
@@ -49,62 +40,20 @@ INFO_OPTS=@INFO_OPTS@
 MAKEINFO = @MAKEINFO@
 MAKEINFO_OPTS = --force -I$(emacsdir)
 
-INFO_TARGETS = \
-       $(infodir)/ada-mode$(INFO_EXT) \
-       $(infodir)/auth$(INFO_EXT) \
-       $(infodir)/autotype$(INFO_EXT) \
-       $(infodir)/calc$(INFO_EXT) \
-       $(infodir)/ccmode$(INFO_EXT) \
-       $(infodir)/cl$(INFO_EXT) \
-       $(infodir)/dbus$(INFO_EXT) \
-       $(infodir)/dired-x$(INFO_EXT) \
-       $(infodir)/ebrowse$(INFO_EXT) \
-       $(infodir)/ede$(INFO_EXT) \
-       $(infodir)/ediff$(INFO_EXT) \
-       $(infodir)/edt$(INFO_EXT) \
-       $(infodir)/eieio$(INFO_EXT) \
-       $(infodir)/emacs-mime$(INFO_EXT) \
-       $(infodir)/epa$(INFO_EXT) \
-       $(infodir)/erc$(INFO_EXT) \
-       $(infodir)/ert$(INFO_EXT) \
-       $(infodir)/eshell$(INFO_EXT) \
-       $(infodir)/eudc$(INFO_EXT) \
-       $(infodir)/efaq$(INFO_EXT) \
-       $(infodir)/flymake$(INFO_EXT) \
-       $(infodir)/forms$(INFO_EXT) \
-       $(infodir)/gnus$(INFO_EXT) \
-       $(infodir)/emacs-gnutls$(INFO_EXT) \
-       $(infodir)/idlwave$(INFO_EXT) \
-       $(infodir)/info$(INFO_EXT) \
-       $(infodir)/mairix-el$(INFO_EXT) \
-       $(infodir)/message$(INFO_EXT) \
-       $(infodir)/mh-e$(INFO_EXT) \
-       $(infodir)/newsticker$(INFO_EXT) \
-       $(infodir)/nxml-mode$(INFO_EXT) \
-       $(infodir)/org$(INFO_EXT) \
-       $(infodir)/pcl-cvs$(INFO_EXT) \
-       $(infodir)/pgg$(INFO_EXT) \
-       $(infodir)/rcirc$(INFO_EXT) \
-       $(infodir)/remember$(INFO_EXT) \
-       $(infodir)/reftex$(INFO_EXT) \
-       $(infodir)/sasl$(INFO_EXT) \
-       $(infodir)/sc$(INFO_EXT) \
-       $(infodir)/semantic$(INFO_EXT) \
-       $(infodir)/ses$(INFO_EXT) \
-       $(infodir)/sieve$(INFO_EXT) \
-       $(infodir)/smtpmail$(INFO_EXT) \
-       $(infodir)/speedbar$(INFO_EXT) \
-       $(infodir)/tramp$(INFO_EXT) \
-       $(infodir)/url$(INFO_EXT) \
-       $(infodir)/vip$(INFO_EXT) \
-       $(infodir)/viper$(INFO_EXT) \
-       $(infodir)/widget$(INFO_EXT) \
-       $(infodir)/woman$(INFO_EXT)
+INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \
+       dbus dired-x ebrowse ede ediff edt eieio \
+       emacs-mime epa erc ert eshell eudc efaq \
+       flymake forms gnus emacs-gnutls htmlfontify idlwave info.info \
+       mairix-el message mh-e newsticker nxml-mode \
+       org pcl-cvs pgg rcirc remember reftex sasl \
+       sc semantic ses sieve smtpmail speedbar srecode tramp \
+       url vip viper widget wisent woman
 
 DVI_TARGETS = \
        ada-mode.dvi \
        auth.dvi \
        autotype.dvi \
+       bovine.dvi \
        calc.dvi \
        cc-mode.dvi \
        cl.dvi \
@@ -126,6 +75,7 @@ DVI_TARGETS = \
        forms.dvi \
        gnus.dvi \
        emacs-gnutls.dvi \
+       htmlfontify.dvi \
        idlwave.dvi \
        info.dvi \
        mairix-el.dvi \
@@ -146,17 +96,20 @@ DVI_TARGETS = \
        sieve.dvi \
        smtpmail.dvi \
        speedbar.dvi \
+       srecode.dvi \
        tramp.dvi \
        url.dvi \
        vip.dvi \
        viper.dvi \
        widget.dvi \
+       wisent.dvi \
        woman.dvi
 
 PDF_TARGETS = \
        ada-mode.pdf \
        auth.pdf \
        autotype.pdf \
+       bovine.pdf \
        calc.pdf \
        cc-mode.pdf \
        cl.pdf \
@@ -177,6 +130,7 @@ PDF_TARGETS = \
        flymake.pdf \
        forms.pdf \
        gnus.pdf \
+       htmlfontify.pdf \
        emacs-gnutls.pdf \
        idlwave.pdf \
        info.pdf \
@@ -198,11 +152,13 @@ PDF_TARGETS = \
        sieve.pdf \
        smtpmail.pdf \
        speedbar.pdf \
+       srecode.pdf \
        tramp.pdf \
        url.pdf \
        vip.pdf \
        viper.pdf \
        widget.pdf \
+       wisent.pdf \
        woman.pdf
 
 HTML_TARGETS = emacs-faq.html
@@ -213,16 +169,22 @@ TEXI2PDF = texi2pdf
 ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
          MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
 
-mkinfodir = @${MKDIR_P} ${srcdir}/${infodir}
+mkinfodir = @${MKDIR_P} ${buildinfodir}
+
+gfdl = ${srcdir}/doclicense.texi
 
 .PHONY: info dvi pdf echo-info
+## Prevent implicit rule triggering for foo.info.
+.SUFFIXES:
 
 # Default.
 info: $(INFO_TARGETS)
 
 ## Used by top-level Makefile.
+## Base file names of output info files.
 echo-info:
-       @echo $(INFO_TARGETS) | sed 's|[^ ]*/||g'
+       @echo "$(INFO_TARGETS) " | \
+         sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/  */$(INFO_EXT) /g"
 
 # please modify this for all the web manual targets
 webhack: clean
@@ -230,221 +192,210 @@ webhack: clean
 
 dvi: $(DVI_TARGETS)
 
+html: $(HTML_TARGETS)
+
 pdf: $(PDF_TARGETS)
 
-# Note that all the Info targets build the Info files
-# in srcdir.  There is no provision for Info files
-# to exist in the build directory.
+# Note that all the Info targets build the Info files in srcdir.
+# There is no provision for Info files to exist in the build directory.
 # In a distribution of Emacs, the Info files should be up to date.
 
 # Note: "<" is not portable in ordinary make rules.
 
-## "short" target names for convenience, to just rebuild one manual.
-ada-mode : $(infodir)/ada-mode$(INFO_EXT)
-$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi
+ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT)
+$(buildinfodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi
-ada-mode.dvi: ${srcdir}/ada-mode.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ada-mode.texi
+ada-mode.dvi: ${srcdir}/ada-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi
-ada-mode.pdf: ${srcdir}/ada-mode.texi
+ada-mode.pdf: ${srcdir}/ada-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi
 
-auth : $(infodir)/auth$(INFO_EXT)
-$(infodir)/auth$(INFO_EXT): auth.texi
+auth : $(buildinfodir)/auth$(INFO_EXT)
+$(buildinfodir)/auth$(INFO_EXT): ${srcdir}/auth.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi
-auth.dvi: ${srcdir}/auth.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/auth.texi
+auth.dvi: ${srcdir}/auth.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi
-auth.pdf: ${srcdir}/auth.texi
+auth.pdf: ${srcdir}/auth.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi
 
-autotype : $(infodir)/autotype$(INFO_EXT)
-$(infodir)/autotype$(INFO_EXT): autotype.texi
+autotype : $(buildinfodir)/autotype$(INFO_EXT)
+$(buildinfodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi
-autotype.dvi: ${srcdir}/autotype.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/autotype.texi
+autotype.dvi: ${srcdir}/autotype.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi
-autotype.pdf: ${srcdir}/autotype.texi
+autotype.pdf: ${srcdir}/autotype.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi
 
-calc : $(infodir)/calc$(INFO_EXT)
-$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi
+bovine : $(buildinfodir)/bovine$(INFO_EXT)
+$(buildinfodir)/bovine$(INFO_EXT): ${srcdir}/bovine.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi
-calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/bovine.texi
+bovine.dvi: ${srcdir}/bovine.texi ${gfdl}
+       $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi
+bovine.pdf: ${srcdir}/bovine.texi ${gfdl}
+       $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi
+
+calc : $(buildinfodir)/calc$(INFO_EXT)
+$(buildinfodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl}
+       $(mkinfodir)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/calc.texi
+calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi
-calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
+calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi
 
-ccmode : $(infodir)/ccmode$(INFO_EXT)
-$(infodir)/ccmode$(INFO_EXT): cc-mode.texi
+ccmode : $(buildinfodir)/ccmode$(INFO_EXT)
+$(buildinfodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi
-cc-mode.dvi: ${srcdir}/cc-mode.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cc-mode.texi
+cc-mode.dvi: ${srcdir}/cc-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi
-cc-mode.pdf: ${srcdir}/cc-mode.texi
+cc-mode.pdf: ${srcdir}/cc-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi
 
-cl : $(infodir)/cl$(INFO_EXT)
-$(infodir)/cl$(INFO_EXT): cl.texi
+cl : $(buildinfodir)/cl$(INFO_EXT)
+$(buildinfodir)/cl$(INFO_EXT): ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi
-cl.dvi: ${srcdir}/cl.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cl.texi
+cl.dvi: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi
-cl.pdf: ${srcdir}/cl.texi
+cl.pdf: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi
 
-dbus : $(infodir)/dbus$(INFO_EXT)
-$(infodir)/dbus$(INFO_EXT): dbus.texi
+dbus : $(buildinfodir)/dbus$(INFO_EXT)
+$(buildinfodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi
-dbus.dvi: ${srcdir}/dbus.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dbus.texi
+dbus.dvi: ${srcdir}/dbus.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi
-dbus.pdf: ${srcdir}/dbus.texi
+dbus.pdf: ${srcdir}/dbus.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi
 
-dired-x : $(infodir)/dired-x$(INFO_EXT)
-$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi
+dired-x : $(buildinfodir)/dired-x$(INFO_EXT)
+$(buildinfodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi
-dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dired-x.texi
+dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi
-dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
+dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi
 
-ebrowse : $(infodir)/ebrowse$(INFO_EXT)
-$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi
+ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT)
+$(buildinfodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi
-ebrowse.dvi: ${srcdir}/ebrowse.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ebrowse.texi
+ebrowse.dvi: ${srcdir}/ebrowse.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi
-ebrowse.pdf: ${srcdir}/ebrowse.texi
+ebrowse.pdf: ${srcdir}/ebrowse.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi
 
-ede : $(infodir)/ede$(INFO_EXT)
-$(infodir)/ede$(INFO_EXT): ede.texi
+ede : $(buildinfodir)/ede$(INFO_EXT)
+$(buildinfodir)/ede$(INFO_EXT): ${srcdir}/ede.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi
-ede.dvi: ${srcdir}/ede.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ede.texi
+ede.dvi: ${srcdir}/ede.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi
-ede.pdf: ${srcdir}/ede.texi
+ede.pdf: ${srcdir}/ede.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi
 
-ediff : $(infodir)/ediff$(INFO_EXT)
-$(infodir)/ediff$(INFO_EXT): ediff.texi
+ediff : $(buildinfodir)/ediff$(INFO_EXT)
+$(buildinfodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi
-ediff.dvi: ${srcdir}/ediff.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ediff.texi
+ediff.dvi: ${srcdir}/ediff.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi
-ediff.pdf: ${srcdir}/ediff.texi
+ediff.pdf: ${srcdir}/ediff.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi
 
-edt : $(infodir)/edt$(INFO_EXT)
-$(infodir)/edt$(INFO_EXT): edt.texi
+edt : $(buildinfodir)/edt$(INFO_EXT)
+$(buildinfodir)/edt$(INFO_EXT): ${srcdir}/edt.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi
-edt.dvi: ${srcdir}/edt.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/edt.texi
+edt.dvi: ${srcdir}/edt.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi
-edt.pdf: ${srcdir}/edt.texi
+edt.pdf: ${srcdir}/edt.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi
 
-eieio : $(infodir)/eieio$(INFO_EXT)
-$(infodir)/eieio$(INFO_EXT): eieio.texi
+eieio : $(buildinfodir)/eieio$(INFO_EXT)
+$(buildinfodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi
-eieio.dvi: ${srcdir}/eieio.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eieio.texi
+eieio.dvi: ${srcdir}/eieio.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi
-eieio.pdf: ${srcdir}/eieio.texi
+eieio.pdf: ${srcdir}/eieio.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi
 
-emacs-gnutls : $(infodir)/emacs-gnutls$(INFO_EXT)
-$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi
+emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT)
+$(buildinfodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi
-emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi
+emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi
-emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi
+emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi
 
-emacs-mime : $(infodir)/emacs-mime$(INFO_EXT)
-$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi
+emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT)
+$(buildinfodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ emacs-mime.texi
-emacs-mime.dvi: ${srcdir}/emacs-mime.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi
+emacs-mime.dvi: ${srcdir}/emacs-mime.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi
-emacs-mime.pdf: ${srcdir}/emacs-mime.texi
+emacs-mime.pdf: ${srcdir}/emacs-mime.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi
 
-epa : $(infodir)/epa$(INFO_EXT)
-$(infodir)/epa$(INFO_EXT): epa.texi
+epa : $(buildinfodir)/epa$(INFO_EXT)
+$(buildinfodir)/epa$(INFO_EXT): ${srcdir}/epa.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi
-epa.dvi: ${srcdir}/epa.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/epa.texi
+epa.dvi: ${srcdir}/epa.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi
-epa.pdf: ${srcdir}/epa.texi
+epa.pdf: ${srcdir}/epa.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi
 
-erc : $(infodir)/erc$(INFO_EXT)
-$(infodir)/erc$(INFO_EXT): erc.texi
+erc : $(buildinfodir)/erc$(INFO_EXT)
+$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi
-erc.dvi: ${srcdir}/erc.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi
+erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi
-erc.pdf: ${srcdir}/erc.texi
+erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi
 
-ert : $(infodir)/ert$(INFO_EXT)
-$(infodir)/ert$(INFO_EXT): ert.texi
+ert : $(buildinfodir)/ert$(INFO_EXT)
+$(buildinfodir)/ert$(INFO_EXT): ${srcdir}/ert.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi
-ert.dvi: ${srcdir}/ert.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ert.texi
+ert.dvi: ${srcdir}/ert.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi
-ert.pdf: ${srcdir}/ert.texi
+ert.pdf: ${srcdir}/ert.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi
 
-eshell : $(infodir)/eshell$(INFO_EXT)
-$(infodir)/eshell$(INFO_EXT): eshell.texi
+eshell : $(buildinfodir)/eshell$(INFO_EXT)
+$(buildinfodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi
-eshell.dvi: ${srcdir}/eshell.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eshell.texi
+eshell.dvi: ${srcdir}/eshell.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi
-eshell.pdf: ${srcdir}/eshell.texi
+eshell.pdf: ${srcdir}/eshell.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi
 
-eudc : $(infodir)/eudc$(INFO_EXT)
-$(infodir)/eudc$(INFO_EXT): eudc.texi
+eudc : $(buildinfodir)/eudc$(INFO_EXT)
+$(buildinfodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi
-eudc.dvi: ${srcdir}/eudc.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eudc.texi
+eudc.dvi: ${srcdir}/eudc.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi
-eudc.pdf: ${srcdir}/eudc.texi
+eudc.pdf: ${srcdir}/eudc.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi
 
-efaq : $(infodir)/efaq$(INFO_EXT)
-$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi
+## No gfdl dependency.
+efaq : $(buildinfodir)/efaq$(INFO_EXT)
+$(buildinfodir)/efaq$(INFO_EXT): ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/faq.texi
 faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
        $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi
 faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
@@ -459,312 +410,311 @@ emacs-faq.html: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
 emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
        $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi
 
-flymake : $(infodir)/flymake$(INFO_EXT)
-$(infodir)/flymake$(INFO_EXT): flymake.texi
+flymake : $(buildinfodir)/flymake$(INFO_EXT)
+$(buildinfodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi
-flymake.dvi: ${srcdir}/flymake.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/flymake.texi
+flymake.dvi: ${srcdir}/flymake.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi
-flymake.pdf: ${srcdir}/flymake.texi
+flymake.pdf: ${srcdir}/flymake.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi
 
-forms : $(infodir)/forms$(INFO_EXT)
-$(infodir)/forms$(INFO_EXT): forms.texi
+forms : $(buildinfodir)/forms$(INFO_EXT)
+$(buildinfodir)/forms$(INFO_EXT): ${srcdir}/forms.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi
-forms.dvi: ${srcdir}/forms.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/forms.texi
+forms.dvi: ${srcdir}/forms.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi
-forms.pdf: ${srcdir}/forms.texi
+forms.pdf: ${srcdir}/forms.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi
 
 # gnus/message/emacs-mime/sieve/pgg are part of Gnus:
-gnus : $(infodir)/gnus$(INFO_EXT)
-$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-faq.texi
+gnus : $(buildinfodir)/gnus$(INFO_EXT)
+$(buildinfodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi
-gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/gnus.texi
+gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl}
        sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
        $(ENVADD) $(TEXI2DVI) gnustmp.texi
-       cp gnustmp.dvi $*.dvi
+       cp gnustmp.dvi $@
        rm gnustmp.*
-gnus.pdf: ${srcdir}/gnus.texi gnus-faq.texi
+gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl}
        sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
        $(ENVADD) $(TEXI2PDF) gnustmp.texi
        cp gnustmp.pdf $@
        rm gnustmp.*
 
+htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT)
+$(buildinfodir)/htmlfontify$(INFO_EXT): ${srcdir}/htmlfontify.texi ${gfdl}
+       $(mkinfodir)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/htmlfontify.texi
+htmlfontify.dvi: ${srcdir}/htmlfontify.texi ${gfdl}
+       $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi
+htmlfontify.pdf: ${srcdir}/htmlfontify.texi ${gfdl}
+       $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi
+
 # NB this one needs --no-split even without a .info extension.
-idlwave : $(infodir)/idlwave$(INFO_EXT)
-$(infodir)/idlwave$(INFO_EXT): idlwave.texi
+idlwave : $(buildinfodir)/idlwave$(INFO_EXT)
+$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi
-idlwave.dvi: ${srcdir}/idlwave.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/idlwave.texi
+idlwave.dvi: ${srcdir}/idlwave.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi
-idlwave.pdf: ${srcdir}/idlwave.texi
+idlwave.pdf: ${srcdir}/idlwave.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi
 
 # NB this one needs --no-split even without a .info extension.
 # Avoid name clash with overall "info" target.
-info.info : $(infodir)/info$(INFO_EXT)
-$(infodir)/info$(INFO_EXT): info.texi
+info.info : $(buildinfodir)/info$(INFO_EXT)
+$(buildinfodir)/info$(INFO_EXT): ${srcdir}/info.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi
-info.dvi: ${srcdir}/info.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/info.texi
+info.dvi: ${srcdir}/info.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi
-info.pdf: ${srcdir}/info.texi
+info.pdf: ${srcdir}/info.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi
 
-mairix-el : $(infodir)/mairix-el$(INFO_EXT)
-$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi
+mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT)
+$(buildinfodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi
-mairix-el.dvi: ${srcdir}/mairix-el.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mairix-el.texi
+mairix-el.dvi: ${srcdir}/mairix-el.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi
-mairix-el.pdf: ${srcdir}/mairix-el.texi
+mairix-el.pdf: ${srcdir}/mairix-el.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi
 
-message : $(infodir)/message$(INFO_EXT)
-$(infodir)/message$(INFO_EXT): message.texi
+message : $(buildinfodir)/message$(INFO_EXT)
+$(buildinfodir)/message$(INFO_EXT): ${srcdir}/message.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi
-message.dvi: ${srcdir}/message.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/message.texi
+message.dvi: ${srcdir}/message.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi
-message.pdf: ${srcdir}/message.texi
+message.pdf: ${srcdir}/message.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi
 
-mh-e : $(infodir)/mh-e$(INFO_EXT)
-$(infodir)/mh-e$(INFO_EXT): mh-e.texi
+mh-e : $(buildinfodir)/mh-e$(INFO_EXT)
+$(buildinfodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi
-mh-e.dvi: ${srcdir}/mh-e.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mh-e.texi
+mh-e.dvi: ${srcdir}/mh-e.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi
-mh-e.pdf: ${srcdir}/mh-e.texi
+mh-e.pdf: ${srcdir}/mh-e.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi
 
-newsticker : $(infodir)/newsticker$(INFO_EXT)
-$(infodir)/newsticker$(INFO_EXT): newsticker.texi
+newsticker : $(buildinfodir)/newsticker$(INFO_EXT)
+$(buildinfodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi
-newsticker.dvi: ${srcdir}/newsticker.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/newsticker.texi
+newsticker.dvi: ${srcdir}/newsticker.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi
-newsticker.pdf: ${srcdir}/newsticker.texi
+newsticker.pdf: ${srcdir}/newsticker.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi
 
-nxml-mode : $(infodir)/nxml-mode$(INFO_EXT)
-$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi
+nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT)
+$(buildinfodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi
-nxml-mode.dvi: ${srcdir}/nxml-mode.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/nxml-mode.texi
+nxml-mode.dvi: ${srcdir}/nxml-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi
-nxml-mode.pdf: ${srcdir}/nxml-mode.texi
+nxml-mode.pdf: ${srcdir}/nxml-mode.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi
 
-org : $(infodir)/org$(INFO_EXT)
-$(infodir)/org$(INFO_EXT): org.texi
+org : $(buildinfodir)/org$(INFO_EXT)
+$(buildinfodir)/org$(INFO_EXT): ${srcdir}/org.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi
-org.dvi: ${srcdir}/org.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/org.texi
+org.dvi: ${srcdir}/org.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi
-org.pdf: ${srcdir}/org.texi
+org.pdf: ${srcdir}/org.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi
 
-pcl-cvs : $(infodir)/pcl-cvs$(INFO_EXT)
-$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi
+pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT)
+$(buildinfodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi
-pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pcl-cvs.texi
+pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi
-pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi
+pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi
 
-pgg : $(infodir)/pgg$(INFO_EXT)
-$(infodir)/pgg$(INFO_EXT): pgg.texi
+pgg : $(buildinfodir)/pgg$(INFO_EXT)
+$(buildinfodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi
-pgg.dvi: ${srcdir}/pgg.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pgg.texi
+pgg.dvi: ${srcdir}/pgg.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi
-pgg.pdf: ${srcdir}/pgg.texi
+pgg.pdf: ${srcdir}/pgg.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi
 
-rcirc : $(infodir)/rcirc$(INFO_EXT)
-$(infodir)/rcirc$(INFO_EXT): rcirc.texi
+rcirc : $(buildinfodir)/rcirc$(INFO_EXT)
+$(buildinfodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi
-rcirc.dvi: ${srcdir}/rcirc.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/rcirc.texi
+rcirc.dvi: ${srcdir}/rcirc.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi
-rcirc.pdf: ${srcdir}/rcirc.texi
+rcirc.pdf: ${srcdir}/rcirc.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi
 
-reftex : $(infodir)/reftex$(INFO_EXT)
-$(infodir)/reftex$(INFO_EXT): reftex.texi
+reftex : $(buildinfodir)/reftex$(INFO_EXT)
+$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi
-reftex.dvi: ${srcdir}/reftex.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi
+reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi
-reftex.pdf: ${srcdir}/reftex.texi
+reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi
 
-remember : $(infodir)/remember$(INFO_EXT)
-$(infodir)/remember$(INFO_EXT): remember.texi
+remember : $(buildinfodir)/remember$(INFO_EXT)
+$(buildinfodir)/remember$(INFO_EXT): ${srcdir}/remember.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi
-remember.dvi: ${srcdir}/remember.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/remember.texi
+remember.dvi: ${srcdir}/remember.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi
-remember.pdf: ${srcdir}/remember.texi
+remember.pdf: ${srcdir}/remember.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi
 
-sasl : $(infodir)/sasl$(INFO_EXT)
-$(infodir)/sasl$(INFO_EXT): sasl.texi
+sasl : $(buildinfodir)/sasl$(INFO_EXT)
+$(buildinfodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi
-sasl.dvi: ${srcdir}/sasl.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sasl.texi
+sasl.dvi: ${srcdir}/sasl.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi
-sasl.pdf: ${srcdir}/sasl.texi
+sasl.pdf: ${srcdir}/sasl.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi
 
-sc : $(infodir)/sc$(INFO_EXT)
-$(infodir)/sc$(INFO_EXT): sc.texi
+sc : $(buildinfodir)/sc$(INFO_EXT)
+$(buildinfodir)/sc$(INFO_EXT): ${srcdir}/sc.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi
-sc.dvi: ${srcdir}/sc.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sc.texi
+sc.dvi: ${srcdir}/sc.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi
-sc.pdf: ${srcdir}/sc.texi
+sc.pdf: ${srcdir}/sc.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi
 
-semantic : $(infodir)/semantic$(INFO_EXT)
-$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi
+semantic : $(buildinfodir)/semantic$(INFO_EXT)
+$(buildinfodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi
-semantic.dvi: ${srcdir}/semantic.texi sem-user.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/semantic.texi
+semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi
-semantic.pdf: ${srcdir}/semantic.texi sem-user.texi
+semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi
 
-ses : $(infodir)/ses$(INFO_EXT)
-$(infodir)/ses$(INFO_EXT): ses.texi
+ses : $(buildinfodir)/ses$(INFO_EXT)
+$(buildinfodir)/ses$(INFO_EXT): ${srcdir}/ses.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi
-ses.dvi: ${srcdir}/ses.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ses.texi
+ses.dvi: ${srcdir}/ses.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi
-ses.pdf: ${srcdir}/ses.texi
+ses.pdf: ${srcdir}/ses.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi
 
-sieve : $(infodir)/sieve$(INFO_EXT)
-$(infodir)/sieve$(INFO_EXT): sieve.texi
+sieve : $(buildinfodir)/sieve$(INFO_EXT)
+$(buildinfodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi
-sieve.dvi: ${srcdir}/sieve.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sieve.texi
+sieve.dvi: ${srcdir}/sieve.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi
-sieve.pdf: ${srcdir}/sieve.texi
+sieve.pdf: ${srcdir}/sieve.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi
 
-smtpmail : $(infodir)/smtpmail$(INFO_EXT)
-$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi
+smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT)
+$(buildinfodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi
-smtpmail.dvi: ${srcdir}/smtpmail.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/smtpmail.texi
+smtpmail.dvi: ${srcdir}/smtpmail.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi
-smtpmail.pdf: ${srcdir}/smtpmail.texi
+smtpmail.pdf: ${srcdir}/smtpmail.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi
 
-speedbar : $(infodir)/speedbar$(INFO_EXT)
-$(infodir)/speedbar$(INFO_EXT): speedbar.texi
+speedbar : $(buildinfodir)/speedbar$(INFO_EXT)
+$(buildinfodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi
-speedbar.dvi: ${srcdir}/speedbar.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/speedbar.texi
+speedbar.dvi: ${srcdir}/speedbar.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi
-speedbar.pdf: ${srcdir}/speedbar.texi
+speedbar.pdf: ${srcdir}/speedbar.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi
 
-tramp : $(infodir)/tramp$(INFO_EXT)
-$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi
+srecode : $(buildinfodir)/srecode$(INFO_EXT)
+$(buildinfodir)/srecode$(INFO_EXT): ${srcdir}/srecode.texi ${gfdl}
+       $(mkinfodir)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/srecode.texi
+srecode.dvi: ${srcdir}/srecode.texi ${gfdl}
+       $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi
+srecode.pdf: ${srcdir}/srecode.texi ${gfdl}
+       $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi
+
+tramp : $(buildinfodir)/tramp$(INFO_EXT)
+$(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs tramp.texi
-tramp.dvi: ${srcdir}/tramp.texi trampver.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi
+tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi
-tramp.pdf: ${srcdir}/tramp.texi trampver.texi
+tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi
 
-url : $(infodir)/url$(INFO_EXT)
-$(infodir)/url$(INFO_EXT): url.texi
+url : $(buildinfodir)/url$(INFO_EXT)
+$(buildinfodir)/url$(INFO_EXT): ${srcdir}/url.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi
-url.dvi: ${srcdir}/url.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/url.texi
+url.dvi: ${srcdir}/url.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi
-url.pdf: ${srcdir}/url.texi
+url.pdf: ${srcdir}/url.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi
 
-vip : $(infodir)/vip$(INFO_EXT)
-$(infodir)/vip$(INFO_EXT): vip.texi
+vip : $(buildinfodir)/vip$(INFO_EXT)
+$(buildinfodir)/vip$(INFO_EXT): ${srcdir}/vip.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi
-vip.dvi: ${srcdir}/vip.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/vip.texi
+vip.dvi: ${srcdir}/vip.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi
-vip.pdf: ${srcdir}/vip.texi
+vip.pdf: ${srcdir}/vip.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi
 
-viper : $(infodir)/viper$(INFO_EXT)
-$(infodir)/viper$(INFO_EXT): viper.texi
+viper : $(buildinfodir)/viper$(INFO_EXT)
+$(buildinfodir)/viper$(INFO_EXT): ${srcdir}/viper.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi
-viper.dvi: ${srcdir}/viper.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/viper.texi
+viper.dvi: ${srcdir}/viper.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi
-viper.pdf: ${srcdir}/viper.texi
+viper.pdf: ${srcdir}/viper.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi
 
-widget : $(infodir)/widget$(INFO_EXT)
-$(infodir)/widget$(INFO_EXT): widget.texi
+widget : $(buildinfodir)/widget$(INFO_EXT)
+$(buildinfodir)/widget$(INFO_EXT): ${srcdir}/widget.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi
-widget.dvi: ${srcdir}/widget.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/widget.texi
+widget.dvi: ${srcdir}/widget.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi
-widget.pdf: ${srcdir}/widget.texi
+widget.pdf: ${srcdir}/widget.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi
 
-woman : $(infodir)/woman$(INFO_EXT)
-$(infodir)/woman$(INFO_EXT): woman.texi
+wisent : $(buildinfodir)/wisent$(INFO_EXT)
+$(buildinfodir)/wisent$(INFO_EXT): ${srcdir}/wisent.texi ${gfdl}
+       $(mkinfodir)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/wisent.texi
+wisent.dvi: ${srcdir}/wisent.texi ${gfdl}
+       $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi
+wisent.pdf: ${srcdir}/wisent.texi ${gfdl}
+       $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi
+
+woman : $(buildinfodir)/woman$(INFO_EXT)
+$(buildinfodir)/woman$(INFO_EXT): ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(mkinfodir)
-       cd $(srcdir); \
-         $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi
-woman.dvi: ${srcdir}/woman.texi
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/woman.texi
+woman.dvi: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi
-woman.pdf: ${srcdir}/woman.texi
+woman.pdf: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl}
        $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi
 
 
 .PHONY: mostlyclean clean distclean maintainer-clean
 
 mostlyclean:
-       rm -f *.aux *.log *.toc *.cp *.cps *.fn *.fns *.ky *.kys \
-         *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs
+       rm -f *.aux *.log *.toc *.c[mp] *.c[mp]s *.fn *.fns \
+         *.ky *.kys *.op *.ops *.p[gj] *.p[gj]s *.sc *.scs *.ss \
+         *.t[gp] *.t[gp]s *.vr *.vrs
        rm -f gnustmp.*
 
 clean: mostlyclean
@@ -773,9 +723,10 @@ clean: mostlyclean
 distclean: clean
 #      rm -f Makefile
 
-## infodir is relative to srcdir.
+## buildinfodir is relative to srcdir.
 maintainer-clean: distclean
-       cd $(srcdir); for file in $(INFO_TARGETS); do \
+       cd $(buildinfodir); for file in $(INFO_TARGETS); do \
+         file=`echo $${file} | sed 's/\.info$$//'`${INFO_EXT}; \
          rm -f $${file} $${file}-[1-9] $${file}-[1-9][0-9]; \
        done