-EXAMPLE_SYNTAX = \
- doc/examples/autorecode.sps \
- doc/examples/chisquare.sps \
- doc/examples/compute.sps \
- doc/examples/count.sps \
- doc/examples/descriptives.sps \
- doc/examples/flip.sps \
- doc/examples/frequencies.sps \
- doc/examples/means.sps \
- doc/examples/one-sample-t.sps \
- doc/examples/independent-samples-t.sps \
- doc/examples/reliability.sps \
- doc/examples/split.sps \
- doc/examples/weight.sps
-
-
-EXTRA_DIST += $(EXAMPLE_SYNTAX)
-
-EXAMPLE_OUTPUTS = $(EXAMPLE_SYNTAX:.sps=.out)
-EXAMPLE_HTML = $(EXAMPLE_SYNTAX:.sps=.html)
-
-example-outputs: $(EXAMPLE_OUTPUTS)
-example-html: $(EXAMPLE_HTML)
-PHONY += example-outputs example-html
-
-$(top_builddir)/doc/pspp.info: $(EXAMPLE_OUTPUTS)
-$(top_builddir)/doc/pspp.ps: $(EXAMPLE_OUTPUTS)
-$(top_builddir)/doc/pspp.dvi: $(EXAMPLE_OUTPUTS)
-$(top_builddir)/doc/pspp.html: $(EXAMPLE_HTML)
-$(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
-pspp = $(abs_top_builddir)/src/ui/terminal/pspp
-$(EXAMPLE_OUTPUTS): $(pspp)
-$(EXAMPLE_HTML): $(pspp)
-
-CLEANFILES += $(EXAMPLE_OUTPUTS)
-
-SUFFIXES: .sps
-
-# use pspp to process a syntax file and reap the output into a text file
-.sps.out:
- $(AM_V_GEN)(cd $(top_srcdir)/examples \
- && $(pspp) ../doc/examples/$(<F) -o -) > $@.tmp && mv $@.tmp $@
+FIGURE_SYNTAX = \
+ doc/pspp-figures/aggregate.sps \
+ doc/pspp-figures/autorecode.sps \
+ doc/pspp-figures/chisquare.sps \
+ doc/pspp-figures/compute.sps \
+ doc/pspp-figures/count.sps \
+ doc/pspp-figures/descriptives.sps \
+ doc/pspp-figures/flip.sps \
+ doc/pspp-figures/frequencies.sps \
+ doc/pspp-figures/means.sps \
+ doc/pspp-figures/one-sample-t.sps \
+ doc/pspp-figures/independent-samples-t.sps \
+ doc/pspp-figures/reliability.sps \
+ doc/pspp-figures/select-if.sps \
+ doc/pspp-figures/sort-cases.sps \
+ doc/pspp-figures/split.sps \
+ doc/pspp-figures/temporary.sps \
+ doc/pspp-figures/tutorial1.sps \
+ doc/pspp-figures/tutorial2.sps \
+ doc/pspp-figures/tutorial3.sps \
+ doc/pspp-figures/tutorial4.sps \
+ doc/pspp-figures/tutorial5.sps \
+ doc/pspp-figures/tutorial6.sps \
+ doc/pspp-figures/tutorial7.sps \
+ doc/pspp-figures/weight.sps
+
+
+EXTRA_DIST += $(FIGURE_SYNTAX)
+
+FIGURE_SPVS = $(FIGURE_SYNTAX:.sps=.spv) \
+ doc/pspp-figures/tutorial2a.spv \
+ doc/pspp-figures/tutorial2b.spv \
+ doc/pspp-figures/tutorial5a.spv \
+ doc/pspp-figures/tutorial5b.spv \
+ doc/pspp-figures/tutorial7a.spv \
+ doc/pspp-figures/tutorial7b.spv
+FIGURE_TXTS = $(FIGURE_SPVS:.spv=.txt)
+FIGURE_TEXIS = $(FIGURE_TXTS:.txt=.texi)
+FIGURE_HTMLS = $(FIGURE_SPVS:.spv=.html)
+FIGURE_PDFS = $(FIGURE_SPVS:.spv=.pdf)
+FIGURE_PNGS = $(FIGURE_SPVS:.spv=.png)
+
+figure-spvs: $(FIGURE_SPVS)
+figure-txts: $(FIGURE_TXTS)
+figure-texis: $(FIGURE_TEXIS)
+figure-htmls: $(FIGURE_HTMLS)
+figure-pdfs: $(FIGURE_PDFS)
+figure-pngs: $(FIGURE_PNGS)
+PHONY += \
+ figure-spv \
+ figure-txts \
+ figure-texis \
+ figure-htmls \
+ figure-pdfs \
+ figure-pngs
+
+$(top_builddir)/doc/pspp.info: $(FIGURE_PNGS)
+$(top_builddir)/doc/pspp.ps: $(FIGURE_TEXIS)
+$(top_builddir)/doc/pspp.dvi: $(FIGURE_TEXIS)
+$(top_builddir)/doc/pspp.html: $(FIGURE_HTMLS)
+$(top_builddir)/doc/pspp.pdf: $(FIGURE_TEXIS)
+$(top_builddir)/doc/pspp.xml: $(FIGURE_TEXIS)
+
+CLEANFILES += \
+ $(FIGURE_TXTS) \
+ $(FIGURE_SPVS) \
+ $(FIGURE_TEXIS) \
+ $(FIGURE_HTMLS) \
+ $(FIGURE_PNGS)
+SUFFIXES += .sps .spv .txt .html .texi .pdf .png
+
+# Use pspp to process a syntax file into an output file.
+if cross_compiling
+pspp = native/src/ui/terminal/pspp
+pspp_output = native/utilities/pspp-output
+
+native/Makefile:
+ $(MKDIR_P) native
+ (cd native && $(top_srcdir)/configure --without-gui)
+
+native/gl/libgl.la: native/Makefile
+ (cd native && flock --verbose $(top_builddir)/native-lock $(MAKE) gl/libgl.la)
+
+$(pspp): native/gl/libgl.la
+ (cd native && flock --verbose $(top_builddir)/native-lock $(MAKE) src/ui/terminal/pspp)
+
+$(pspp_output): native/gl/libgl.la
+ (cd native && flock --verbose $(top_builddir)/native-lock $(MAKE) utilities/pspp-output)
+else
+pspp = src/ui/terminal/pspp$(EXEEXT)
+pspp_output = utilities/pspp-output$(EXEEXT)
+endif