Fix generation of help-pages-list file
[pspp] / doc / automake.mk
index fa6e8b03df62305ee63049966df28d44aa9f7360..b4d93ce1b304a21a7e4c0eb950bd5fdbc90287ff 100644 (file)
@@ -1,16 +1,16 @@
 ## Process this file with automake to produce Makefile.in  -*- makefile -*-
 
-info_TEXINFOS = doc/pspp.texinfo doc/pspp-dev.texinfo
+info_TEXINFOS = doc/pspp.texi doc/pspp-dev.texi
 
 doc_pspp_TEXINFOS = doc/version.texi \
        doc/bugs.texi \
        doc/command-index.texi \
        doc/concept-index.texi \
-       doc/configuring.texi \
        doc/data-io.texi \
        doc/data-selection.texi \
        doc/expressions.texi \
        doc/files.texi \
+       doc/combining.texi \
        doc/flow-control.texi \
        doc/function-index.texi \
        doc/installing.texi \
@@ -18,10 +18,14 @@ doc_pspp_TEXINFOS = doc/version.texi \
        doc/invoking.texi \
        doc/language.texi \
        doc/license.texi \
+       doc/pspp-convert.texi \
+       doc/pspp-dump-sav.texi \
        doc/ni.texi \
        doc/not-implemented.texi \
        doc/statistics.texi \
        doc/transformation.texi \
+       doc/tutorial.texi \
+       doc/tut.texi \
        doc/regression.texi \
        doc/utilities.texi \
        doc/variables.texi \
@@ -32,33 +36,63 @@ doc_pspp_dev_TEXINFOS = doc/version-dev.texi \
        doc/dev/concepts.texi \
        doc/dev/syntax.texi \
        doc/dev/data.texi \
+       doc/dev/i18n.texi \
        doc/dev/output.texi \
        doc/dev/system-file-format.texi \
+       doc/dev/pc+-file-format.texi \
        doc/dev/portable-file-format.texi \
+       doc/dev/encrypted-file-wrappers.texi \
        doc/dev/q2c.texi
 
-EXTRA_DIST += doc/pspp.man \
-       doc/get-commands.pl
+dist_man_MANS += doc/pspp.1 \
+                 doc/psppire.1
 
-doc/ni.texi: $(top_srcdir)/src/language/command.def doc/get-commands.pl
+EXTRA_DIST += doc/get-commands.pl doc/help-pages-list
+
+$(srcdir)/doc/ni.texi: $(top_srcdir)/src/language/command.def doc/get-commands.pl
+       @$(MKDIR_P)  doc
+       $(AM_V_GEN)$(PERL) $(top_srcdir)/doc/get-commands.pl $(top_srcdir)/src/language/command.def > $@
+
+$(srcdir)/doc/tut.texi:
+       @$(MKDIR_P) doc
+       $(AM_V_GEN)echo "@set example-dir $(examplesdir)" > $@
+
+
+# The SED and AWK filters in this rule, are to work-around some nasty bugs in 
+# makeinfo version 4.13, which produces broken docbook xml.  These workarounds 
+# are rather horrible and must be removed asap.
+$(srcdir)/doc/pspp.xml: doc/pspp.texi $(doc_pspp_TEXINFOS) $(top_srcdir)/doc/help-pages-list
        @$(MKDIR_P)  doc
-       @PERL@ $(top_srcdir)/doc/get-commands.pl $(top_srcdir)/src/language/command.def > $@
+       $(AM_V_GEN)$(MAKEINFO) $(AM_MAKEINFOFLAGS) --docbook -I $(top_srcdir) \
+               $(top_srcdir)/doc/pspp.texi -o - \
+               | $(SED) -e 's/Time-&-Date/Time-\&-Date/g' \
+               -e 's/“/\“/g' \
+               -e 's/”/\”/g' \
+               -e 's/‘/\‘/g' \
+               -e 's/’/\’/g' \
+               -e 's/—/\—/g' \
+               -e 's/–/\′/g' \
+                -e 's/é/\é/g' \
+               -e 's/©/\©/g' \
+               -e 's/−/\−/g' \
+               -e 's/…/\…/g' \
+               -e 's/•/\ߦ/g' \
+               -e 's/././g' \
+               -e 's%\(<figure [^>]*\)>%\1/>%g' \
+        | $(AWK) '/<para>.*<table.*>.*<\/para>/{x=sub("</para>",""); print; s=1;next}/<\/table>/{print; if (s==1) print "</para>"; s=0; next}1' \
+       > $@,tmp
+       $(AM_V_at)$(XMLLINT) --output /dev/null $@,tmp
+       $(AM_V_at)cat $(top_srcdir)/doc/help-pages-list | while read node ; do \
+        $(XMLLINT) --xpath "$$node" $@,tmp > /dev/null; \
+        if test $$? -ne 0 ; then  echo "$$node does not appear in $@" ; exit 1; fi ; \
+        done 
+       mv $@,tmp $@
+
+docbookdir = $(docdir)
+dist_docbook_DATA = doc/pspp.xml
 
-# It seems that recent versions of yelp, upon which the gui relies to display the reference
-# manual, are broken.  It only works on compressed info files.  So we must compress them.
-if WITHGUI
-YELP_CHECK = yelp-check
-else
-YELP_CHECK =
-endif
-install-data-hook:: $(YELP_CHECK)
-       for ifile in $(DESTDIR)$(infodir)/pspp.info-[0-9] \
-               $(DESTDIR)$(infodir)/pspp.info  ; do \
-         gzip -f $$ifile ; \
-       done
 
-uninstall-hook::
-       rm -f $(DESTDIR)$(infodir)/pspp.info-[0-9].gz
-       rm -f $(DESTDIR)$(infodir)/pspp.info.gz
+CLEANFILES += pspp-dev.dvi $(docbook_DATA)
 
-EXTRA_DIST += doc/OChangeLog
+doc: $(INFO_DEPS) $(DVIS) $(PDFS) $(PSS) $(HTMLS) $(dist_docbook_DATA)
+.PHONY: doc