-$(top_builddir)/doc/pspp.pdf: $(EXAMPLE_OUTPUTS)
-$(top_builddir)/doc/pspp.xml: $(EXAMPLE_OUTPUTS)
-
-# The examples cannot be built until the binary has been built
-$(EXAMPLE_OUTPUTS): $(top_builddir)/src/ui/terminal/pspp
-$(EXAMPLE_HTML): $(top_builddir)/src/ui/terminal/pspp
-
-CLEANFILES += $(EXAMPLE_OUTPUTS)
-
-SUFFIXES: .sps
-
-# use pspp to process a syntax file and reap the output into a text file
-.sps.out:
- $(MKDIR_P) $(@D)
- where=$$PWD ; \
- (cd $(top_srcdir)/examples; ${abs_builddir}/src/ui/terminal/pspp $(abs_srcdir)/doc/examples/$(<F) -o $$where/$@)
-
-# Use pspp to process a syntax file and reap the output into a html file
-# Then, use sed to delete everything up to and including <body> and
-# everything after and including </body>
-.sps.html:
- $(MKDIR_P) $(@D)
- where=$$PWD ; \
- (cd $(top_srcdir)/examples; ${abs_builddir}/src/ui/terminal/pspp $(abs_srcdir)/doc/examples/$(<F) -o $$where/$@,x -O format=html)
- $(SED) -e '\%</body%,$$d' -e '0,/<body/d' $@,x > $@
-
-# Insert the link tag for the cascading style sheet.
-# But make sure these operations are idempotent.
+$(top_builddir)/doc/pspp.pdf: $(EXAMPLE_TEXIS)
+$(top_builddir)/doc/pspp.xml: $(EXAMPLE_TEXIS)
+
+CLEANFILES += $(EXAMPLE_TXTS) $(EXAMPLE_SPVS) $(EXAMPLE_TEXIS) $(EXAMPLE_HTML)
+SUFFIXES += .sps .spv .txt .html .texi .pdf
+
+# Use pspp to process a syntax file into an output file.
+pspp = src/ui/terminal/pspp
+$(EXAMPLE_SPVS): $(pspp)$(EXEEXT)
+.sps.spv:
+ $(AM_V_GEN)(cd $(top_srcdir)/examples \
+ && $(abs_top_builddir)/$(pspp) ../doc/examples/$(<F) -o - -O format=spv) > $@.tmp
+ $(AM_V_at)mv $@.tmp $@
+
+# In some cases, the tutorial only wants some parts of the output.
+pspp_output = utilities/pspp-output
+convert = $(AM_V_GEN)$(pspp_output) convert $< $@
+doc/examples/tutorial2a.spv: doc/examples/tutorial2.spv $(pspp_output)
+ $(convert) --command='Descriptives'
+doc/examples/tutorial2b.spv: doc/examples/tutorial2.spv $(pspp_output)
+ $(convert) --label='Extreme Values'
+doc/examples/tutorial5a.spv: doc/examples/tutorial5.spv $(pspp_output)
+ $(convert) --commands=examine --nth-command=1 --labels=descriptives
+doc/examples/tutorial5b.spv: doc/examples/tutorial5.spv $(pspp_output)
+ $(convert) --commands=examine --nth-command=2 --labels=descriptives
+doc/examples/tutorial7a.spv: doc/examples/tutorial7.spv $(pspp_output)
+ $(convert) --commands=regression --nth-command=1 --subtypes=coefficients
+doc/examples/tutorial7b.spv: doc/examples/tutorial7.spv $(pspp_output)
+ $(convert) --commands=regression --nth-command=2 --subtypes=coefficients
+
+# Convert an output file into a text file or HTML file.
+$(EXAMPLE_TXTS) $(EXAMPLE_HTML): $(pspp_output)
+.spv.txt:
+ $(AM_V_GEN)utilities/pspp-output convert $< $@
+.spv.pdf:
+ $(AM_V_GEN)utilities/pspp-output convert $< $@ -O left-margin=0pt -O right-margin=0pt -O top-margin=0pt -O bottom-margin=0pt -O paper-size=6x20in -O font-size=12000 --table-look=$(HOME)/pspp/spss15/Looks/report.tlo
+.spv.html:
+ $(AM_V_GEN)utilities/pspp-output convert $< $@ -O format=html -O bare=true
+
+# Convert a text file into a Texinfo file.
+.txt.texi:
+ $(AM_V_GEN)$(SED) -e 's/@/@@/g' $< > $@
+
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) --css-ref=pspp-manual.css