Merge commit 'origin/stable'
[pspp-builds.git] / src / ui / gui / automake.mk
index d7a81dc9b378a7b6d9c6c926bb0b935f2553e84b..2183e4e8af619cb69eeaeaf4749f0efab242adc9 100644 (file)
@@ -1,16 +1,16 @@
 ## Process this file with automake to produce Makefile.in  -*- makefile -*-
 
-
+include $(top_srcdir)/src/ui/gui/sheet/automake.mk
 
 bin_PROGRAMS += src/ui/gui/psppire 
 
 src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GLADE_CFLAGS) -Wall \
-       -DINSTALLDIR=\"$(bindir)\"
+       -DINSTALLDIR=\"$(bindir)\" -DGDK_MULTIHEAD_SAFE=1
 
 
 src_ui_gui_psppire_LDFLAGS = \
-       $(PG_LDFLAGS) \
-       -export-dynamic
+       $(PSPPIRE_LDFLAGS) \
+       $(PG_LDFLAGS)
 
 
 if RELOCATABLE_VIA_LD
@@ -20,50 +20,81 @@ src_ui_gui_psppire_LDFLAGS += -rpath $(pkglibdir)
 endif
 
 
-pkglib_LTLIBRARIES = src/ui/gui/libpsppire.la
+# The library libpsppire contains a single function to register our custom widgets with libglade.
+# This library is dynamically loaded by libglade.   On w32 platforms, dynamic libraries simply 
+# can't be created unless all of the symbols can be resolved at link time.  Thus, all the custom 
+# widgets have to be available.  
+# But they can't appear in the library AND the binary, otherwise glib complains about them already
+# existing (and its a waste of space).  So we have a seperate shared library (statically loaded) 
+# libpsppwidgets which contains our custom widgets.
+
+pkglib_LTLIBRARIES = src/ui/gui/libpsppwidgets.la src/ui/gui/libpsppire.la 
+
+src_ui_gui_libpsppwidgets_la_CFLAGS = $(GTK_CFLAGS)
+src_ui_gui_libpsppwidgets_la_LDFLAGS = -no-undefined
+src_ui_gui_libpsppwidgets_la_LIBADD = $(GTK_LIBS)
+
+src_ui_gui_libpsppwidgets_la_SOURCES = \
+       src/ui/gui/psppire-dialog.c \
+       src/ui/gui/psppire-keypad.c \
+       src/ui/gui/psppire-selector.c \
+       src/ui/gui/psppire-buttonbox.c \
+       src/ui/gui/psppire-hbuttonbox.c \
+       src/ui/gui/psppire-vbuttonbox.c \
+       src/ui/gui/psppire-acr.c 
+
 
 src_ui_gui_libpsppire_la_CFLAGS = $(GLADE_CFLAGS) 
+src_ui_gui_libpsppire_la_LDFLAGS = -no-undefined
+src_ui_gui_libpsppire_la_LIBADD = $(GLADE_LIBS) src/ui/gui/libpsppwidgets.la
 
 src_ui_gui_libpsppire_la_SOURCES = \
        src/ui/gui/glade-register.c
 
 src_ui_gui_psppire_LDADD = \
        -dlopen src/ui/gui/libpsppire.la \
-       lib/gtksheet/libgtksheet.a \
-       src/language/liblanguage.a \
-       src/ui/libuicommon.a \
-       src/output/charts/libcharts.a \
-       src/output/liboutput.a \
-       src/math/libpspp_math.a  \
-       src/math/linreg/libpspp_linreg.a  \
-       lib/linreg/liblinreg.a  \
-       lib/gsl-extras/libgsl-extras.a  \
-       src/data/libdata.a \
-       src/libpspp/libpspp.a \
+       src/ui/gui/libpsppwidgets.la \
+        src/ui/gui/sheet/libsheet.la \
+       lib/gtk-contrib/libgtksheet.a \
+       src/ui/libuicommon.la \
+       src/libpspp.la \
+       src/libpspp-core.la \
        $(GTK_LIBS) \
        $(GLADE_LIBS) \
-       $(PG_LIBS) \
-       gl/libgl.la \
-       @LIBINTL@ @LIBREADLINE@
+       @LIBINTL@
 
 src_ui_gui_psppiredir = $(pkgdatadir)
 
-dist_src_ui_gui_psppire_DATA = \
-       $(top_srcdir)/src/ui/gui/data-editor.glade \
-       $(top_srcdir)/src/ui/gui/descriptives-dialog.glade \
-       $(top_srcdir)/src/ui/gui/examine.glade \
+nodist_src_ui_gui_psppire_DATA = \
+       $(top_builddir)/src/ui/gui/crosstabs.ui \
+       $(top_builddir)/src/ui/gui/examine.ui \
+       $(top_builddir)/src/ui/gui/frequencies.ui \
+       $(top_builddir)/src/ui/gui/message-dialog.ui \
+       $(top_builddir)/src/ui/gui/psppire.ui \
+       $(top_builddir)/src/ui/gui/oneway.ui \
+       $(top_builddir)/src/ui/gui/rank.ui \
+       $(top_builddir)/src/ui/gui/recode.ui \
+       $(top_builddir)/src/ui/gui/regression.ui \
+       $(top_builddir)/src/ui/gui/t-test.ui
+
+EXTRA_DIST += \
        $(top_srcdir)/src/ui/gui/crosstabs.glade \
+       $(top_srcdir)/src/ui/gui/examine.glade \
        $(top_srcdir)/src/ui/gui/frequencies.glade \
        $(top_srcdir)/src/ui/gui/message-dialog.glade \
-       $(top_srcdir)/src/ui/gui/oneway.glade \
-       $(top_srcdir)/src/ui/gui/output-viewer.glade \
        $(top_srcdir)/src/ui/gui/psppire.glade \
+       $(top_srcdir)/src/ui/gui/oneway.glade \
        $(top_srcdir)/src/ui/gui/rank.glade \
        $(top_srcdir)/src/ui/gui/recode.glade \
        $(top_srcdir)/src/ui/gui/regression.glade \
+       $(top_srcdir)/src/ui/gui/t-test.glade
+
+dist_src_ui_gui_psppire_DATA = \
+       $(top_srcdir)/src/ui/gui/data-editor.glade \
+       $(top_srcdir)/src/ui/gui/descriptives-dialog.glade \
+       $(top_srcdir)/src/ui/gui/output-viewer.glade \
        $(top_srcdir)/src/ui/gui/syntax-editor.glade \
        $(top_srcdir)/src/ui/gui/text-data-import.glade \
-       $(top_srcdir)/src/ui/gui/t-test.glade \
        $(top_srcdir)/src/ui/gui/psppicon.png \
        $(top_srcdir)/src/ui/gui/pspplogo.png \
        $(top_srcdir)/src/ui/gui/icons/value-labels.png \
@@ -124,27 +155,18 @@ src_ui_gui_psppire_SOURCES = \
         src/ui/gui/oneway-anova-dialog.h \
        src/ui/gui/output-viewer.c \
        src/ui/gui/output-viewer.h \
-       src/ui/gui/psppire-acr.c \
        src/ui/gui/psppire-acr.h \
-       src/ui/gui/psppire-buttonbox.c \
        src/ui/gui/psppire-buttonbox.h \
-       src/ui/gui/psppire-hbuttonbox.c \
        src/ui/gui/psppire-hbuttonbox.h \
-       src/ui/gui/psppire-vbuttonbox.c \
        src/ui/gui/psppire-vbuttonbox.h \
-       src/ui/gui/psppire-case-file.c \
-       src/ui/gui/psppire-case-file.h \
        src/ui/gui/psppire-data-editor.c \
        src/ui/gui/psppire-data-editor.h \
        src/ui/gui/psppire-data-store.c \
        src/ui/gui/psppire-data-store.h \
-       src/ui/gui/psppire-dialog.c \
        src/ui/gui/psppire-dialog.h \
        src/ui/gui/psppire-dict.c \
        src/ui/gui/psppire-dict.h \
-       src/ui/gui/psppire-keypad.c \
        src/ui/gui/psppire-keypad.h \
-       src/ui/gui/psppire-selector.c \
        src/ui/gui/psppire-selector.h \
        src/ui/gui/psppire-var-ptr.c \
        src/ui/gui/psppire-var-ptr.h \
@@ -195,4 +217,36 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/window-manager.c \
        src/ui/gui/window-manager.h
 
+nodist_src_ui_gui_psppire_SOURCES = \
+       src/ui/gui/psppire-marshal.c \
+       src/ui/gui/psppire-marshal.h
+
+
+yelp-check:
+       @if ! yelp --version > /dev/null 2>&1 ; then \
+               echo    ; \
+               echo '    The Yelp document viewer does not seem to be installed on the system.' ; \
+               echo '    If Yelp is not available at run time, then the PSPPIRE online reference' ; \
+               echo '    manual will not be available.' ; \
+               echo '    Yelp is available from the GNOME project.  ftp://ftp.gnome.org/pub/gnome/sources/yelp' ; \
+               echo ; \
+       fi
+PHONY += yelp-check
+
+AM_CPPFLAGS += -Isrc
+
+src/ui/gui/psppire-marshal.c: src/ui/gui/marshaller-list
+       glib-genmarshal --body --prefix=psppire_marshal $< > $@
+
+src/ui/gui/psppire-marshal.h: src/ui/gui/marshaller-list
+       glib-genmarshal --header --prefix=psppire_marshal $< > $@
+
+.glade.ui:
+       gtk-builder-convert $< $@
+
+EXTRA_DIST += src/ui/gui/OChangeLog\
+       src/ui/gui/marshaller-list
 
+BUILT_SOURCES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h
+CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \
+       $(nodist_src_ui_gui_psppire_DATA)
\ No newline at end of file