FIGURE_SYNTAX = \
doc/pspp-figures/aggregate.sps \
-doc/pspp-figures/autorecode.sps \
+ doc/pspp-figures/autorecode.sps \
doc/pspp-figures/chisquare.sps \
doc/pspp-figures/compute.sps \
doc/pspp-figures/count.sps \
SUFFIXES += .sps .spv .txt .html .texi .pdf
# Use pspp to process a syntax file into an output file.
-pspp = src/ui/terminal/pspp
-$(FIGURE_SPVS): $(pspp)$(EXEEXT)
+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
+
+$(FIGURE_SPVS): $(pspp)
.sps.spv:
$(AM_V_GEN)(cd $(top_srcdir)/examples \
&& $(abs_top_builddir)/$(pspp) ../doc/pspp-figures/$(<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/pspp-figures/tutorial2a.spv: doc/pspp-figures/tutorial2.spv $(pspp_output)
$(convert) --command='Descriptives'
$(AM_V_GEN)$(SED) -e 's/@/@@/g' $< > $@
AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) --css-ref=pspp-manual.css
-html-local:
-
-install-html-local: html-local
+# Adjust the path for screenshot images.
+# But make sure these operations are idempotent.
+html-local: doc/pspp.html
+ test -d doc/pspp.html
+ for h in doc/pspp.html/*.html; do \
+ if grep -Fq '<img src="screenshots/' $$h; then continue; fi ; \
+ $(SED) -i -e 's|<img src="\([^"]*\)"|<img src="screenshots/\1"|' $$h; \
+ done
+
+install-html-local: html-local $(HTML_SCREENSHOTS)
$(MKDIR_P) $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html
+ $(INSTALL) -d $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html/screenshots
+ for p in $(HTML_SCREENSHOTS); do \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html/screenshots ;\
+ done
$(INSTALL_DATA) ${top_srcdir}/doc/pspp-manual.css $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html
-
\f
desktopdir = $(datadir)/applications
EXTRA_DIST += doc/org.fsf.pspp.metainfo.xml.in \
doc/org.fsf.pspp.desktop.in
+
+\f
+
+SCREENSHOTS = \
+$(top_srcdir)/doc/screenshots/autorecode.grab \
+$(top_srcdir)/doc/screenshots/chisquare.grab \
+$(top_srcdir)/doc/screenshots/count.grab \
+$(top_srcdir)/doc/screenshots/count-define.grab \
+$(top_srcdir)/doc/screenshots/compute.grab \
+$(top_srcdir)/doc/screenshots/descriptives.grab \
+$(top_srcdir)/doc/screenshots/one-sample-t.grab \
+$(top_srcdir)/doc/screenshots/independent-samples-t.grab \
+$(top_srcdir)/doc/screenshots/define-groups-t.grab \
+$(top_srcdir)/doc/screenshots/frequencies.grab \
+$(top_srcdir)/doc/screenshots/reliability.grab \
+$(top_srcdir)/doc/screenshots/split-status-bar.grab \
+$(top_srcdir)/doc/screenshots/sort-simple.grab \
+$(top_srcdir)/doc/screenshots/sort.grab
+
+
+PDF_SCREENSHOTS = $(SCREENSHOTS:.grab=-hc.png)
+EPS_SCREENSHOTS = $(SCREENSHOTS:.grab=-hc.eps)
+HTML_SCREENSHOTS = $(SCREENSHOTS:.grab=-ad.png)
+INFO_SCREENSHOTS = $(SCREENSHOTS:.grab=-ad.png)
+
+doc-make: doc/doc-make.in Makefile
+ $(SED) -e 's|%top_srcdir%|@top_srcdir@|g' \
+ -e 's|%abs_builddir%|@abs_builddir@|g' \
+ -e 's|%MKDIR_P%|@MKDIR_P@|g' \
+ -e 's|%src_ui_gui_psppiredir%|$(src_ui_gui_psppiredir)|g' \
+ -e 's|%UI_FILES%|$(UI_FILES)|g' \
+ -e 's|%IMAGES%|$(INFO_SCREENSHOTS) $(HTML_SCREENSHOTS) $(EPS_SCREENSHOTS) $(PDF_SCREENSHOTS)|g' \
+ $< > $@
+
+
+# Install all the PNG files so that info readers can recognise them
+install-info-local:
+ $(MKDIR_P) $(DESTDIR)$(prefix)/share/info/screenshots
+ for p in $(INFO_SCREENSHOTS); do \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(prefix)/share/info/screenshots ;\
+ done
+
+uninstall-local:
+ for p in $(INFO_SCREENSHOTS); do \
+ f=`basename $$p ` ; \
+ $(RM) $(DESTDIR)$(prefix)/share/info/$$f ; \
+ done
+
+EXTRA_DIST+= $(SCREENSHOTS) doc/doc-make.in doc/screengrab
+
+EXTRA_DIST+= $(EPS_SCREENSHOTS) $(PDF_SCREENSHOTS) $(INFO_SCREENSHOTS)