1 ## PSPP - a program for statistical analysis.
2 ## Copyright (C) 2019, 2020 Free Software Foundation, Inc.
4 ## This program is free software: you can redistribute it and/or modify
5 ## it under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation, either version 3 of the License, or
7 ## (at your option) any later version.
9 ## This program is distributed in the hope that it will be useful,
10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 ## GNU General Public License for more details.
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program. If not, see <http://www.gnu.org/licenses/>.
17 ## Process this file with automake to produce Makefile.in -*- makefile -*-
19 info_TEXINFOS = doc/pspp.texi doc/pspp-dev.texi
21 doc_pspp_TEXINFOS = doc/version.texi \
23 doc/command-index.texi \
24 doc/concept-index.texi \
26 doc/data-selection.texi \
27 doc/expressions.texi \
30 doc/flow-control.texi \
31 doc/function-index.texi \
33 doc/introduction.texi \
37 doc/pspp-convert.texi \
38 doc/pspp-output.texi \
39 doc/pspp-dump-sav.texi \
41 doc/not-implemented.texi \
43 doc/transformation.texi \
52 doc_pspp_dev_TEXINFOS = doc/version-dev.texi \
54 doc/dev/concepts.texi \
60 doc/dev/system-file-format.texi \
61 doc/dev/pc+-file-format.texi \
62 doc/dev/portable-file-format.texi \
63 doc/dev/spv-file-format.texi \
64 doc/dev/tlo-file-format.texi \
65 doc/dev/encrypted-file-wrappers.texi
67 dist_man_MANS += doc/pspp.1 \
70 EXTRA_DIST += doc/get-commands.py \
74 $(srcdir)/doc/ni.texi: $(top_srcdir)/src/language/command.def doc/get-commands.py
75 $(AM_V_GEN)$(PYTHON3) $(top_srcdir)/doc/get-commands.py $(top_srcdir)/src/language/command.def > $@
77 $(srcdir)/doc/tut.texi:
78 $(AM_V_GEN)echo "@set example-dir $(examplesdir)" > $@
81 doc/pspp.xml: doc/pspp.texi $(doc_pspp_TEXINFOS) doc/help-pages-list
85 $(AM_V_GEN)$(MAKEINFO) --docbook $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
86 -I doc -I $(srcdir)/doc $< -o $@
89 docbookdir = $(docdir)
90 dist_docbook_DATA = doc/pspp.xml
93 CLEANFILES += pspp-dev.dvi $(docbook_DATA) doc/pspp.info* doc/pspp.xml
96 doc: $(INFO_DEPS) $(DVIS) $(PDFS) $(PNGS) $(HTMLS) $(dist_docbook_DATA)
99 doc/help-pages-list: $(UI_FILES)
100 $(AM_V_GEN)cat $^ | grep '"help[-_]page"' | \
101 $(SED) -e 's% *<property name="help[-_]page">\([^<]*\)</property>%//*[@id='"'"'\1'"'"']%' \
102 -e 's%#%'"'"']/*[@id='"'"'%g' > $@,tmp
107 doc/help-pages-list \
110 am__TEXINFO_TEX_DIR=:$(top_srcdir)/doc:$(top_builddir)/doc
112 ################# Example programs ##############################
115 doc/pspp-figures/aggregate.sps \
116 doc/pspp-figures/autorecode.sps \
117 doc/pspp-figures/chisquare.sps \
118 doc/pspp-figures/compute.sps \
119 doc/pspp-figures/count.sps \
120 doc/pspp-figures/ctables1.sps \
121 doc/pspp-figures/ctables2.sps \
122 doc/pspp-figures/ctables3.sps \
123 doc/pspp-figures/ctables4.sps \
124 doc/pspp-figures/ctables5.sps \
125 doc/pspp-figures/ctables6.sps \
126 doc/pspp-figures/ctables7.sps \
127 doc/pspp-figures/ctables8.sps \
128 doc/pspp-figures/ctables9.sps \
129 doc/pspp-figures/ctables10.sps \
130 doc/pspp-figures/ctables11.sps \
131 doc/pspp-figures/ctables12.sps \
132 doc/pspp-figures/ctables13.sps \
133 doc/pspp-figures/ctables14.sps \
134 doc/pspp-figures/ctables15.sps \
135 doc/pspp-figures/ctables16.sps \
136 doc/pspp-figures/ctables17.sps \
137 doc/pspp-figures/crosstabs.sps \
138 doc/pspp-figures/descriptives.sps \
139 doc/pspp-figures/flip.sps \
140 doc/pspp-figures/frequencies.sps \
141 doc/pspp-figures/matrix-print.sps \
142 doc/pspp-figures/means.sps \
143 doc/pspp-figures/one-sample-t.sps \
144 doc/pspp-figures/independent-samples-t.sps \
145 doc/pspp-figures/reliability.sps \
146 doc/pspp-figures/select-if.sps \
147 doc/pspp-figures/show-system.sps \
148 doc/pspp-figures/sort-cases.sps \
149 doc/pspp-figures/split.sps \
150 doc/pspp-figures/temporary.sps \
151 doc/pspp-figures/tutorial1.sps \
152 doc/pspp-figures/tutorial2.sps \
153 doc/pspp-figures/tutorial3.sps \
154 doc/pspp-figures/tutorial4.sps \
155 doc/pspp-figures/tutorial5.sps \
156 doc/pspp-figures/tutorial6.sps \
157 doc/pspp-figures/tutorial7.sps \
158 doc/pspp-figures/weight.sps
161 EXTRA_DIST += $(FIGURE_SYNTAX)
163 FIGURE_SPVS = $(FIGURE_SYNTAX:.sps=.spv) \
164 doc/pspp-figures/tutorial2a.spv \
165 doc/pspp-figures/tutorial2b.spv \
166 doc/pspp-figures/tutorial5a.spv \
167 doc/pspp-figures/tutorial5b.spv \
168 doc/pspp-figures/tutorial7a.spv \
169 doc/pspp-figures/tutorial7b.spv
170 FIGURE_TXTS = $(FIGURE_SPVS:.spv=.txt)
171 FIGURE_TEXIS = $(FIGURE_TXTS:.txt=.texi)
172 FIGURE_HTMLS = $(FIGURE_SPVS:.spv=.html)
173 FIGURE_PDFS = $(FIGURE_SPVS:.spv=.pdf)
174 FIGURE_PNGS = $(FIGURE_SPVS:.spv=.png)
176 figure-spvs: $(FIGURE_SPVS)
177 figure-txts: $(FIGURE_TXTS)
178 figure-texis: $(FIGURE_TEXIS)
179 figure-htmls: $(FIGURE_HTMLS)
180 figure-pdfs: $(FIGURE_PDFS)
181 figure-pngs: $(FIGURE_PNGS)
190 $(top_builddir)/doc/pspp.info: $(FIGURE_PNGS)
191 $(top_builddir)/doc/pspp.ps: $(FIGURE_TEXIS)
192 $(top_builddir)/doc/pspp.dvi: $(FIGURE_TEXIS)
193 $(top_builddir)/doc/pspp.html: $(FIGURE_HTMLS)
194 $(top_builddir)/doc/pspp.pdf: $(FIGURE_TEXIS)
195 $(top_builddir)/doc/pspp.xml: $(FIGURE_TEXIS)
203 SUFFIXES += .sps .spv .txt .html .texi .pdf .png
205 # Use pspp to process a syntax file into an output file.
207 pspp = native/src/ui/terminal/pspp
208 pspp_output = native/utilities/pspp-output
212 (cd native && $(abs_top_srcdir)/configure --host=$(build) --without-gui)
214 # The gnulib header files are required for the object files of the native pspp
215 # They are defined in BUILT_SOURCES but that is only defined as a first dependency
216 # for the make all target. src/ui/terminal/pspp as a target will try to compile the
217 # objects first but that fails without the header files. Therefore I build the native
218 # executables via the default make target
219 $(pspp) $(pspp_output) &: native/Makefile
220 (cd native && flock --verbose $(top_builddir)/native-lock $(MAKE) )
223 pspp = src/ui/terminal/pspp$(EXEEXT)
224 pspp_output = utilities/pspp-output$(EXEEXT)
227 $(FIGURE_SPVS): $(pspp)
229 $(AM_V_GEN)(cd "$(top_srcdir)/examples" \
230 && "$(abs_top_builddir)/$(pspp)" ../doc/pspp-figures/$(<F) -o - -O format=spv) > $@.tmp
231 $(AM_V_at)mv $@.tmp $@
233 # In some cases, the tutorial only wants some parts of the output.
234 convert = $(AM_V_GEN)LSAN_OPTIONS="suppressions=$(abs_top_srcdir)/tests/lsan.supp:print_suppressions=0:$$LSAN_OPTIONS" $(pspp_output) convert $< $@
235 doc/pspp-figures/tutorial2a.spv: doc/pspp-figures/tutorial2.spv $(pspp_output)
236 $(convert) --command='Descriptives'
237 doc/pspp-figures/tutorial2b.spv: doc/pspp-figures/tutorial2.spv $(pspp_output)
238 $(convert) --label='Extreme Values'
239 doc/pspp-figures/tutorial5a.spv: doc/pspp-figures/tutorial5.spv $(pspp_output)
240 $(convert) --commands=examine --nth-command=1 --labels=descriptives
241 doc/pspp-figures/tutorial5b.spv: doc/pspp-figures/tutorial5.spv $(pspp_output)
242 $(convert) --commands=examine --nth-command=2 --labels=descriptives
243 doc/pspp-figures/tutorial7a.spv: doc/pspp-figures/tutorial7.spv $(pspp_output)
244 $(convert) --commands=regression --nth-command=1 --subtypes=coefficients
245 doc/pspp-figures/tutorial7b.spv: doc/pspp-figures/tutorial7.spv $(pspp_output)
246 $(convert) --commands=regression --nth-command=2 --subtypes=coefficients
249 $(FIGURE_PNGS): $(pspp_output)
250 $(FIGURE_TXTS): $(pspp_output)
251 $(FIGURE_HTMLS): $(pspp_output)
252 $(FIGURE_PDFS): $(pspp_output)
254 # Convert an output file into a text file or HTML file.
255 $(FIGURE_TXTS) $(FIGURE_HTMLS): $(pspp_output)
259 $(convert) -O trim=true -O left-margin=0in -O right-margin=0in -O top-margin=0in -O bottom-margin=0in -O paper-size=7.5x99in --table-look=$(srcdir)/doc/tutorial.stt
261 $(convert) -O trim=true -O left-margin=0in -O right-margin=0in -O top-margin=0in -O bottom-margin=0in -O paper-size=7.5x99in --table-look=$(srcdir)/doc/tutorial.stt
262 EXTRA_DIST += doc/tutorial.stt
264 $(convert) -O format=html -O bare=true
266 # Convert a text file into a Texinfo file.
268 $(AM_V_GEN)$(SED) -e 's/@/@@/g' $< > $@
270 AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) --css-ref=pspp-manual.css
271 # Adjust the path for screenshot images.
272 # But make sure these operations are idempotent.
273 html-local: doc/pspp.html
274 test -d doc/pspp.html
275 for h in doc/pspp.html/*.html; do \
276 if grep -Fq '<img src="screenshots/' $$h; then continue; fi ; \
277 $(SED) -i -e 's|<img src="\([^"]*\)"|<img src="screenshots/\1"|' $$h; \
280 install-html-local: html-local $(HTML_SCREENSHOTS)
281 $(MKDIR_P) $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html
282 $(INSTALL) -d $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html/screenshots
283 for p in $(HTML_SCREENSHOTS); do \
284 $(INSTALL_DATA) $$p $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html/screenshots ;\
286 $(INSTALL_DATA) ${top_srcdir}/doc/pspp-manual.css $(DESTDIR)$(prefix)/share/doc/pspp/pspp.html
290 desktopdir = $(datadir)/applications
292 doc/org.gnu.pspp.metainfo.xml: doc/org.gnu.pspp.metainfo.xml.in $(POFILES)
293 $(AM_V_GEN)$(MSGFMT) --xml --template $< -o $@ -d $(top_srcdir)/po || \
294 $(MSGFMT) -L appdata --xml --template $< -o $@ -d $(top_srcdir)/po
296 doc/org.gnu.pspp.desktop: doc/org.gnu.pspp.desktop.in $(POFILES)
297 $(AM_V_GEN)$(MSGFMT) --desktop --template $< -o $@ -d $(top_srcdir)/po
299 CLEANFILES+=doc/org.gnu.pspp.desktop \
300 doc/org.gnu.pspp.metainfo.xml
302 desktop_DATA = doc/org.gnu.pspp.desktop
304 appdatadir = $(datadir)/metainfo
305 dist_appdata_DATA = doc/org.gnu.pspp.metainfo.xml
307 EXTRA_DIST += doc/org.gnu.pspp.metainfo.xml.in \
308 doc/org.gnu.pspp.desktop.in
313 $(top_srcdir)/doc/screenshots/autorecode.grab \
314 $(top_srcdir)/doc/screenshots/chisquare.grab \
315 $(top_srcdir)/doc/screenshots/count.grab \
316 $(top_srcdir)/doc/screenshots/count-define.grab \
317 $(top_srcdir)/doc/screenshots/compute.grab \
318 $(top_srcdir)/doc/screenshots/crosstabs.grab \
319 $(top_srcdir)/doc/screenshots/descriptives.grab \
320 $(top_srcdir)/doc/screenshots/one-sample-t.grab \
321 $(top_srcdir)/doc/screenshots/independent-samples-t.grab \
322 $(top_srcdir)/doc/screenshots/define-groups-t.grab \
323 $(top_srcdir)/doc/screenshots/frequencies.grab \
324 $(top_srcdir)/doc/screenshots/reliability.grab \
325 $(top_srcdir)/doc/screenshots/split-status-bar.grab \
326 $(top_srcdir)/doc/screenshots/sort-simple.grab \
327 $(top_srcdir)/doc/screenshots/sort.grab
330 PDF_SCREENSHOTS = $(SCREENSHOTS:.grab=-hc.png)
331 EPS_SCREENSHOTS = $(SCREENSHOTS:.grab=-hc.eps)
332 HTML_SCREENSHOTS = $(SCREENSHOTS:.grab=-ad.png)
333 INFO_SCREENSHOTS = $(SCREENSHOTS:.grab=-ad.png)
335 doc-make: doc/doc-make.in Makefile
336 $(SED) -e 's|%top_srcdir%|@top_srcdir@|g' \
337 -e 's|%abs_builddir%|@abs_builddir@|g' \
338 -e 's|%MKDIR_P%|@MKDIR_P@|g' \
339 -e 's|%src_ui_gui_psppiredir%|$(src_ui_gui_psppiredir)|g' \
340 -e 's|%UI_FILES%|$(UI_FILES)|g' \
341 -e 's|%IMAGES%|$(INFO_SCREENSHOTS) $(HTML_SCREENSHOTS) $(EPS_SCREENSHOTS) $(PDF_SCREENSHOTS)|g' \
345 # Install all the PNG files so that info readers can recognise them
346 install-info-local: $(FIGURE_PNGS)
347 $(MKDIR_P) $(DESTDIR)$(infodir)/screenshots
348 for p in $(INFO_SCREENSHOTS); do \
349 $(INSTALL_DATA) $$p $(DESTDIR)$(infodir)/screenshots ;\
351 $(INSTALL) -d $(DESTDIR)$(infodir)/pspp-figures
352 for p in $(FIGURE_PNGS); do \
353 $(INSTALL_DATA) $$p $(DESTDIR)$(infodir)/pspp-figures ;\
357 for p in $(INFO_SCREENSHOTS); do \
358 f=`basename $$p ` ; \
359 rm -f $(DESTDIR)$(infodir)/screenshots/$$f ; \
361 for p in $(FIGURE_PNGS); do \
362 f=`basename $$p ` ; \
363 rm -f $(DESTDIR)$(infodir)/pspp-figures/$$f ; \
366 EXTRA_DIST+= $(SCREENSHOTS) doc/doc-make.in doc/screengrab
368 EXTRA_DIST+= $(EPS_SCREENSHOTS) $(PDF_SCREENSHOTS) $(INFO_SCREENSHOTS)