37dbdb4e82e56f56674532aa3ec488292e3caa12
[pspp] / src / ui / gui / automake.mk
1 # PSPP - a program for statistical analysis.
2 # Copyright (C) 2017, 2020 Free Software Foundation, Inc.
3 #
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.
8 #
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.
13 #
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/>.
16 #
17 ## Process this file with automake to produce Makefile.in  -*- makefile -*-
18
19 UI_FILES = \
20         src/ui/gui/aggregate.ui \
21         src/ui/gui/autorecode.ui \
22         src/ui/gui/binomial.ui \
23         src/ui/gui/compute.ui \
24         src/ui/gui/barchart.ui \
25         src/ui/gui/correlation.ui \
26         src/ui/gui/count.ui \
27         src/ui/gui/comments.ui \
28         src/ui/gui/crosstabs.ui \
29         src/ui/gui/chi-square.ui \
30         src/ui/gui/descriptives.ui \
31         src/ui/gui/entry-dialog.ui \
32         src/ui/gui/examine.ui \
33         src/ui/gui/goto-case.ui \
34         src/ui/gui/factor.ui \
35         src/ui/gui/find.ui \
36         src/ui/gui/frequencies.ui \
37         src/ui/gui/histogram.ui \
38         src/ui/gui/indep-samples.ui \
39         src/ui/gui/k-independent.ui \
40         src/ui/gui/k-means.ui \
41         src/ui/gui/k-related.ui \
42         src/ui/gui/ks-one-sample.ui \
43         src/ui/gui/logistic.ui \
44         src/ui/gui/means.ui \
45         src/ui/gui/missing-val-dialog.ui \
46         src/ui/gui/oneway.ui \
47         src/ui/gui/options.ui \
48         src/ui/gui/paired-samples.ui \
49         src/ui/gui/rank.ui \
50         src/ui/gui/runs.ui \
51         src/ui/gui/sort.ui \
52         src/ui/gui/split-file.ui \
53         src/ui/gui/recode.ui \
54         src/ui/gui/regression.ui \
55         src/ui/gui/reliability.ui \
56         src/ui/gui/roc.ui \
57         src/ui/gui/scatterplot.ui \
58         src/ui/gui/select-cases.ui \
59         src/ui/gui/t-test.ui \
60         src/ui/gui/text-data-import.ui \
61         src/ui/gui/transpose.ui \
62         src/ui/gui/univariate.ui \
63         src/ui/gui/val-labs-dialog.ui \
64         src/ui/gui/variable-info.ui \
65         src/ui/gui/data-editor.ui \
66         src/ui/gui/output-window.ui \
67         src/ui/gui/syntax-editor.ui \
68         src/ui/gui/var-type-dialog.ui \
69         src/ui/gui/weight.ui
70
71
72 $(top_srcdir)/doc/help-pages-list: $(UI_FILES)
73          $(AM_V_GEN)cat $^ | grep '"help[-_]page"' | \
74    $(SED) -e 's% *<property name="help[-_]page">\([^<]*\)</property>%//*[@id='"'"'\1'"'"']%' \
75         -e 's%#%'"'"']/*[@id='"'"'%g' > $@,tmp
76         test -s $@,tmp
77         mv $@,tmp $@
78
79 EXTRA_DIST += doc/help-pages-list
80
81
82 EXTRA_DIST += \
83         src/ui/gui/org.fsf.pspp.metainfo.xml.in \
84         src/ui/gui/org.fsf.pspp.desktop.in \
85         src/ui/gui/marshaller-list \
86         src/ui/gui/pspplogo.svg
87
88 src_ui_gui_psppire_CPPFLAGS=
89
90 bin_PROGRAMS += src/ui/gui/psppire
91 noinst_PROGRAMS += src/ui/gui/spreadsheet-test
92
93 src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GTKSOURCEVIEW_CFLAGS) \
94         $(SPREAD_SHEET_WIDGET_CFLAGS) \
95         $(LIBRSVG_CFLAGS) \
96         $(AM_CFLAGS) -DGDK_MULTIHEAD_SAFE=1
97 src_ui_gui_spreadsheet_test_CFLAGS = $(GTK_CFLAGS) $(AM_CFLAGS) -DGDK_MULTIHEAD_SAFE=1
98
99 if cc_is_gcc
100 src_ui_gui_psppire_CFLAGS+=-Wno-unused-parameter
101 src_ui_gui_spreadsheet_test_CFLAGS+=-Wno-unused-parameter
102 endif
103
104
105 src_ui_gui_psppire_LDFLAGS = \
106         $(PSPPIRE_LDFLAGS) \
107         $(PG_LDFLAGS)
108
109
110 if RELOCATABLE_VIA_LD
111 src_ui_gui_psppire_LDFLAGS += `$(RELOCATABLE_LDFLAGS) $(bindir)`
112 else
113 src_ui_gui_psppire_LDFLAGS += -rpath $(pkglibdir)
114 endif
115
116
117 src_ui_gui_psppire_LDADD = \
118         src/ui/gui/libwidgets-essential.la \
119         src/ui/libuicommon.la \
120         src/libpspp.la \
121         src/libpspp-core.la \
122         $(GTK_LIBS) \
123         $(GTHREAD_LIBS) \
124         $(GTKSOURCEVIEW_LIBS) \
125         $(SPREAD_SHEET_WIDGET_LIBS) \
126         $(LIBRSVG_LIBS) \
127         $(CAIRO_LIBS) \
128         $(LIBINTL) \
129         $(GSL_LIBS)
130
131
132 src_ui_gui_spreadsheet_test_LDADD = \
133         src/libpspp-core.la \
134         $(GTK_LIBS) \
135         $(GTHREAD_LIBS)
136
137
138 src_ui_gui_spreadsheet_test_SOURCES = src/ui/gui/spreadsheet-test.c src/ui/gui/psppire-spreadsheet-model.c
139
140 src_ui_gui_psppiredir = $(pkgdatadir)
141
142
143 install-lang:
144         $(INSTALL_DATA) $(top_srcdir)/src/ui/gui/pspp.lang $(DESTDIR)$(pkgdatadir)
145
146 INSTALL_DATA_HOOKS += install-lang
147
148 dist_src_ui_gui_psppire_DATA = \
149         $(UI_FILES) \
150         $(top_srcdir)/src/ui/gui/pspp.lang
151
152 src_ui_gui_psppire_SOURCES = \
153         src/ui/gui/builder-wrapper.c \
154         src/ui/gui/builder-wrapper.h \
155         src/ui/gui/entry-dialog.c \
156         src/ui/gui/entry-dialog.h \
157         src/ui/gui/executor.c \
158         src/ui/gui/executor.h \
159         src/ui/gui/find-dialog.c \
160         src/ui/gui/find-dialog.h \
161         src/ui/gui/goto-case-dialog.c \
162         src/ui/gui/goto-case-dialog.h \
163         src/ui/gui/helper.c \
164         src/ui/gui/helper.h \
165         src/ui/gui/help-menu.c \
166         src/ui/gui/help-menu.h \
167         src/ui/gui/main.c \
168         src/ui/gui/missing-val-dialog.c \
169         src/ui/gui/missing-val-dialog.h \
170         src/ui/gui/options-dialog.c \
171         src/ui/gui/options-dialog.h \
172         src/ui/gui/pre-initialisation.h \
173         src/ui/gui/psppire.c \
174         src/ui/gui/psppire-data-editor.c \
175         src/ui/gui/psppire-data-editor.h \
176         src/ui/gui/psppire-data-store.c \
177         src/ui/gui/psppire-data-store.h \
178         src/ui/gui/psppire-data-window.c \
179         src/ui/gui/psppire-data-window.h \
180         src/ui/gui/psppire-delimited-text.c \
181         src/ui/gui/psppire-delimited-text.h \
182         src/ui/gui/psppire-encoding-selector.c \
183         src/ui/gui/psppire-encoding-selector.h \
184         src/ui/gui/psppire.h \
185         src/ui/gui/psppire-import-assistant.c \
186         src/ui/gui/psppire-import-assistant.h \
187         src/ui/gui/psppire-lex-reader.c \
188         src/ui/gui/psppire-lex-reader.h \
189         src/ui/gui/psppire-output-view.c \
190         src/ui/gui/psppire-output-view.h \
191         src/ui/gui/psppire-output-window.c \
192         src/ui/gui/psppire-output-window.h \
193         src/ui/gui/psppire-scanf.c \
194         src/ui/gui/psppire-scanf.h \
195         src/ui/gui/psppire-spreadsheet-model.c \
196         src/ui/gui/psppire-spreadsheet-model.h \
197         src/ui/gui/psppire-syntax-window.c \
198         src/ui/gui/psppire-syntax-window.h \
199         src/ui/gui/psppire-value-entry.c \
200         src/ui/gui/psppire-value-entry.h \
201         src/ui/gui/psppire-window.c \
202         src/ui/gui/psppire-window.h \
203         src/ui/gui/psppire-window-register.c \
204         src/ui/gui/psppire-window-register.h \
205         src/ui/gui/t-test-options.c \
206         src/ui/gui/t-test-options.h \
207         src/ui/gui/val-labs-dialog.c \
208         src/ui/gui/val-labs-dialog.h \
209         src/ui/gui/value-variant.c \
210         src/ui/gui/value-variant.h \
211         src/ui/gui/var-display.c \
212         src/ui/gui/var-display.h \
213         src/ui/gui/var-type-dialog.c \
214         src/ui/gui/var-type-dialog.h \
215         src/ui/gui/widget-io.c \
216         src/ui/gui/widget-io.h \
217         src/ui/gui/windows-menu.c \
218         src/ui/gui/windows-menu.h
219
220 noinst_LTLIBRARIES += src/ui/gui/libwidgets-essential.la
221
222 src_ui_gui_libwidgets_essential_la_SOURCES = \
223         src/ui/gui/psppire-acr.c \
224         src/ui/gui/psppire-acr.h \
225         src/ui/gui/psppire-buttonbox.c \
226         src/ui/gui/psppire-buttonbox.h \
227         src/ui/gui/psppire-checkbox-treeview.c \
228         src/ui/gui/psppire-checkbox-treeview.h \
229         src/ui/gui/psppire-conf.c \
230         src/ui/gui/psppire-conf.h \
231         src/ui/gui/psppire-data-sheet.c \
232         src/ui/gui/psppire-data-sheet.h \
233         src/ui/gui/psppire-dialog-action-1sks.c \
234         src/ui/gui/psppire-dialog-action-1sks.h \
235         src/ui/gui/psppire-dialog-action-aggregate.c \
236         src/ui/gui/psppire-dialog-action-aggregate.h \
237         src/ui/gui/psppire-dialog-action-autorecode.c \
238         src/ui/gui/psppire-dialog-action-autorecode.h \
239         src/ui/gui/psppire-dialog-action-barchart.c \
240         src/ui/gui/psppire-dialog-action-barchart.h \
241         src/ui/gui/psppire-dialog-action-binomial.c \
242         src/ui/gui/psppire-dialog-action-binomial.h \
243         src/ui/gui/psppire-dialog-action.c \
244         src/ui/gui/psppire-dialog-action-chisquare.c \
245         src/ui/gui/psppire-dialog-action-chisquare.h \
246         src/ui/gui/psppire-dialog-action-comments.c \
247         src/ui/gui/psppire-dialog-action-comments.h \
248         src/ui/gui/psppire-dialog-action-compute.c \
249         src/ui/gui/psppire-dialog-action-compute.h \
250         src/ui/gui/psppire-dialog-action-correlation.c \
251         src/ui/gui/psppire-dialog-action-correlation.h \
252         src/ui/gui/psppire-dialog-action-count.c \
253         src/ui/gui/psppire-dialog-action-count.h \
254         src/ui/gui/psppire-dialog-action-crosstabs.c \
255         src/ui/gui/psppire-dialog-action-crosstabs.h \
256         src/ui/gui/psppire-dialog-action-descriptives.c \
257         src/ui/gui/psppire-dialog-action-descriptives.h \
258         src/ui/gui/psppire-dialog-action-examine.c \
259         src/ui/gui/psppire-dialog-action-examine.h \
260         src/ui/gui/psppire-dialog-action-factor.c \
261         src/ui/gui/psppire-dialog-action-factor.h \
262         src/ui/gui/psppire-dialog-action-flip.c \
263         src/ui/gui/psppire-dialog-action-flip.h \
264         src/ui/gui/psppire-dialog-action-frequencies.c \
265         src/ui/gui/psppire-dialog-action-frequencies.h \
266         src/ui/gui/psppire-dialog-action.h \
267         src/ui/gui/psppire-dialog-action-histogram.c \
268         src/ui/gui/psppire-dialog-action-histogram.h \
269         src/ui/gui/psppire-dialog-action-indep-samps.c \
270         src/ui/gui/psppire-dialog-action-indep-samps.h \
271         src/ui/gui/psppire-dialog-action-k-independent.c \
272         src/ui/gui/psppire-dialog-action-k-independent.h \
273         src/ui/gui/psppire-dialog-action-kmeans.c \
274         src/ui/gui/psppire-dialog-action-kmeans.h \
275         src/ui/gui/psppire-dialog-action-k-related.c \
276         src/ui/gui/psppire-dialog-action-k-related.h \
277         src/ui/gui/psppire-dialog-action-logistic.c \
278         src/ui/gui/psppire-dialog-action-logistic.h \
279         src/ui/gui/psppire-dialog-action-means.c \
280         src/ui/gui/psppire-dialog-action-means.h \
281         src/ui/gui/psppire-dialog-action-oneway.c \
282         src/ui/gui/psppire-dialog-action-oneway.h \
283         src/ui/gui/psppire-dialog-action-paired.c \
284         src/ui/gui/psppire-dialog-action-paired.h \
285         src/ui/gui/psppire-dialog-action-rank.c \
286         src/ui/gui/psppire-dialog-action-rank.h \
287         src/ui/gui/psppire-dialog-action-recode.c \
288         src/ui/gui/psppire-dialog-action-recode-different.c \
289         src/ui/gui/psppire-dialog-action-recode-different.h \
290         src/ui/gui/psppire-dialog-action-recode.h \
291         src/ui/gui/psppire-dialog-action-recode-same.c \
292         src/ui/gui/psppire-dialog-action-recode-same.h \
293         src/ui/gui/psppire-dialog-action-regression.c \
294         src/ui/gui/psppire-dialog-action-regression.h \
295         src/ui/gui/psppire-dialog-action-reliability.c \
296         src/ui/gui/psppire-dialog-action-reliability.h \
297         src/ui/gui/psppire-dialog-action-roc.c \
298         src/ui/gui/psppire-dialog-action-roc.h \
299         src/ui/gui/psppire-dialog-action-runs.c \
300         src/ui/gui/psppire-dialog-action-runs.h \
301         src/ui/gui/psppire-dialog-action-scatterplot.c \
302         src/ui/gui/psppire-dialog-action-scatterplot.h \
303         src/ui/gui/psppire-dialog-action-select.c \
304         src/ui/gui/psppire-dialog-action-select.h \
305         src/ui/gui/psppire-dialog-action-sort.c \
306         src/ui/gui/psppire-dialog-action-sort.h \
307         src/ui/gui/psppire-dialog-action-split.c \
308         src/ui/gui/psppire-dialog-action-split.h \
309         src/ui/gui/psppire-dialog-action-tt1s.c \
310         src/ui/gui/psppire-dialog-action-tt1s.h \
311         src/ui/gui/psppire-dialog-action-two-sample.c \
312         src/ui/gui/psppire-dialog-action-two-sample.h \
313         src/ui/gui/psppire-dialog-action-univariate.c \
314         src/ui/gui/psppire-dialog-action-univariate.h \
315         src/ui/gui/psppire-dialog-action-var-info.c \
316         src/ui/gui/psppire-dialog-action-var-info.h \
317         src/ui/gui/psppire-dialog-action-weight.c \
318         src/ui/gui/psppire-dialog-action-weight.h \
319         src/ui/gui/psppire-dialog.c \
320         src/ui/gui/psppire-dialog.h \
321         src/ui/gui/psppire-dict.c \
322         src/ui/gui/psppire-dict.h \
323         src/ui/gui/psppire-dictview.c \
324         src/ui/gui/psppire-dictview.h \
325         src/ui/gui/psppire-format.c \
326         src/ui/gui/psppire-format.h \
327         src/ui/gui/psppire-keypad.c \
328         src/ui/gui/psppire-keypad.h \
329         src/ui/gui/psppire-means-layer.c \
330         src/ui/gui/psppire-means-layer.h \
331         src/ui/gui/psppire-select-dest.c \
332         src/ui/gui/psppire-select-dest.h \
333         src/ui/gui/psppire-selector.c \
334         src/ui/gui/psppire-selector.h \
335         src/ui/gui/psppire-text-file.c \
336         src/ui/gui/psppire-text-file.h \
337         src/ui/gui/psppire-val-chooser.c \
338         src/ui/gui/psppire-val-chooser.h \
339         src/ui/gui/psppire-var-ptr.c \
340         src/ui/gui/psppire-var-ptr.h \
341         src/ui/gui/psppire-var-view.c \
342         src/ui/gui/psppire-var-view.h \
343         src/ui/gui/psppire-var-sheet-header.c \
344         src/ui/gui/psppire-var-sheet-header.h \
345         src/ui/gui/psppire-variable-sheet.c \
346         src/ui/gui/psppire-variable-sheet.h \
347         src/ui/gui/psppire-window-base.c \
348         src/ui/gui/psppire-window-base.h \
349         src/ui/gui/dialog-common.c \
350         src/ui/gui/dialog-common.h \
351         src/ui/gui/widgets.c \
352         src/ui/gui/widgets.h \
353         src/ui/gui/dict-display.c \
354         src/ui/gui/dict-display.h
355
356 src_ui_gui_libwidgets_essential_la_CFLAGS = \
357         $(GTK_CFLAGS) \
358         $(GTKSOURCEVIEW_CFLAGS) \
359         $(SPREAD_SHEET_WIDGET_CFLAGS) \
360         $(AM_CFLAGS)
361
362 # The unused-parameter warning is not by default disabled
363 # in AM_CFLAGS because the core pspp code has this enabled.
364 # This is only disabled in the gui code where we have many
365 # callbacks from gtk3 which have fixed parameters
366 if cc_is_gcc
367 src_ui_gui_libwidgets_essential_la_CFLAGS += -Wno-unused-parameter
368 endif
369
370 nodist_src_ui_gui_psppire_SOURCES = \
371         src/ui/gui/psppire-marshal.c \
372         src/ui/gui/psppire-marshal.h \
373         src/ui/gui/resources.c
374
375 AM_CPPFLAGS += -Isrc
376
377 src/ui/gui/org.fsf.pspp.metainfo.xml: src/ui/gui/org.fsf.pspp.metainfo.xml.in $(POFILES)
378         $(AM_V_GEN)$(MSGFMT) --xml --template $< -o $@ -d $(top_srcdir)/po || \
379           $(MSGFMT) -L appdata --xml --template $< -o $@ -d $(top_srcdir)/po
380
381 src/ui/gui/org.fsf.pspp.desktop: src/ui/gui/org.fsf.pspp.desktop.in $(POFILES)
382         $(AM_V_GEN)$(MSGFMT) --desktop --template $< -o $@ -d $(top_srcdir)/po
383
384 CLEANFILES+=src/ui/gui/org.fsf.pspp.desktop \
385             src/ui/gui/org.fsf.pspp.metainfo.xml
386
387 src/ui/gui/resources.c: src/ui/gui/resources.xml
388         $(AM_V_at)$(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir)/src/ui/gui --generate-source $< --target=$@,out
389         $(AM_V_GEN)echo '#include <config.h>' > $@,tmp
390         cat $@,out >> $@,tmp
391         $(RM) $@,out
392         mv $@,tmp $@
393
394 src/ui/gui/psppire-marshal.c: src/ui/gui/marshaller-list
395         $(AM_V_GEN)echo '#include <config.h>' > $@
396         $(AM_V_at)$(GLIB_GENMARSHAL) --body --include-header=ui/gui/psppire-marshal.h --prefix=psppire_marshal $? >> $@
397
398 src/ui/gui/psppire-marshal.h: src/ui/gui/marshaller-list
399         $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=psppire_marshal $? > $@
400
401 mimedir = $(datadir)/mime/packages
402 mime_DATA = src/ui/gui/pspp.xml
403 EXTRA_DIST += src/ui/gui/pspp.xml
404
405 desktopdir = $(datadir)/applications
406 desktop_DATA = src/ui/gui/org.fsf.pspp.desktop
407
408 appdatadir = $(datadir)/metainfo
409 dist_appdata_DATA = src/ui/gui/org.fsf.pspp.metainfo.xml
410
411 BUILT_SOURCES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h src/ui/gui/resources.c
412
413 CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \
414         src/ui/gui/.deps/psppire-marshal.Plo \
415         src/ui/gui/resources.c $(nodist_src_ui_gui_psppire_DATA)
416
417
418 #ensure the installcheck passes even if there is no X server available
419 installcheck-local:
420         DISPLAY=/invalid/port $(MAKE) $(AM_MAKEFLAGS) installcheck-binPROGRAMS
421
422 # <gtk/gtk.h> wrapper
423 src_ui_gui_psppire_CPPFLAGS += $(AM_CPPFLAGS) -Isrc/ui/gui/include
424 BUILT_SOURCES += src/ui/gui/include/gtk/gtk.h
425 src/ui/gui/include/gtk/gtk.h: src/ui/gui/include/gtk/gtk.in.h
426         @$(MKDIR_P) src/ui/gui/include/gtk
427         $(AM_V_GEN)rm -f $@-t $@ && \
428         { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
429           $(SED) -e 's|%''INCLUDE_NEXT''%|$(INCLUDE_NEXT)|g' \
430               -e 's|%''PRAGMA_SYSTEM_HEADER''%|$(PRAGMA_SYSTEM_HEADER)|g' \
431               -e 's|%''PRAGMA_COLUMNS''%|$(PRAGMA_COLUMNS)|g' \
432               -e 's|%''NEXT_GTK_GTK_H''%|$(NEXT_GTK_GTK_H)|g' \
433               < $(srcdir)/src/ui/gui/include/gtk/gtk.in.h; \
434         } > $@-t && \
435         mv $@-t $@
436 CLEANFILES += src/ui/gui/include/gtk/gtk.h
437 EXTRA_DIST += src/ui/gui/include/gtk/gtk.in.h src/ui/gui/resources.xml
438
439 include $(top_srcdir)/src/ui/gui/icons/automake.mk
440
441 UNINSTALL_DATA_HOOKS += update-icon-cache
442 INSTALL_DATA_HOOKS += update-icon-cache
443
444 #### Build the tools needed to run glade on our .ui files
445
446 EXTRA_pkgdir = $(abs_builddir)/src/ui/gui
447
448 EXTRA_pkg_LTLIBRARIES = src/ui/gui/libpsppire-glade.la
449
450 src_ui_gui_libpsppire_glade_la_SOURCES = \
451         src/ui/gui/dummy.c
452
453 src_ui_gui_libpsppire_glade_la_LIBADD = \
454         src/ui/gui/libwidgets-essential.la \
455         src/ui/gui/psppire-marshal.lo
456
457 src_ui_gui_libpsppire_glade_la_CFLAGS = $(GTK_CFLAGS) $(AM_CFLAGS)
458 if cc_is_gcc
459 src_ui_gui_libpsppire_glade_la_CFLAGS += -Wno-unused-parameter
460 endif
461 src_ui_gui_libpsppire_glade_la_LDFLAGS = -release $(VERSION)  $(SPREAD_SHEET_WIDGET_LIBS)
462
463 EXTRA_DIST += src/ui/gui/psppire.xml src/ui/gui/glade-wrapper.in
464
465 src/ui/gui/glade-wrapper: src/ui/gui/glade-wrapper.in
466         $(SED) -e 's%\@abs_top_srcdir\@%@abs_top_srcdir@%g' -e 's%\@abs_top_builddir\@%@abs_top_builddir@%g'  $< > $@
467         chmod a+x $@
468
469 PHONY += glade-tools
470 glade-tools: src/ui/gui/glade-wrapper src/ui/gui/libpsppire-glade.la
471
472 # This works around a possible bug in Automake 1.16.1 which installs
473 # EXTRA_pkgLTLIBRARIES if DESTDIR is set.  It should not do that.
474 install-EXTRA_pkgLTLIBRARIES:
475         true