2 # Gnumeric's Makefile.am
3 # Author: Miguel de Icaza (miguel@kernel.org)
4 -include $(INTROSPECTION_MAKEFILE)
6 INTROSPECTION_SCANNER_ARGS = \
7 --add-include-path="${INTROSPECTION_GIRDIR}" \
8 -v --warn-all --accept-unprefixed \
9 --identifier-prefix="Gnm" --identifier-prefix="Gnumeric" \
11 -DGOFFICE_NAMESPACE_DISABLE
12 INTROSPECTION_COMPILER_ARGS = \
13 --includedir=$(srcdir) \
15 --includedir="${INTROSPECTION_GIRDIR}"
17 SUBDIRS = tools cut-n-paste-code
19 lib_LTLIBRARIES = libspreadsheet.la
23 noinst_PROGRAMS = sstest
25 noinst_HEADERS = dead-kittens.h compilation.h gnm-i18n.h
28 SUBDIRS += dialogs widgets
29 bin_PROGRAMS += gnumeric
32 bin_PROGRAMS += ssconvert ssindex ssgrep ssdiff
42 # A hint is needed to build these headers first:
50 # These also need to occur in gnm.gresource.xml
55 autofilter-expression.ui \
74 descriptive-stats.ui \
75 dialog-stf-export.ui \
101 principal-components.ui \
104 random-generation-cor.ui \
105 random-generation.ui \
112 scenario-manager.ui \
119 sheetobject-size.ui \
135 wilcoxon-mann-whitney.ui \
139 # Another hint, see bugs #172211 and #172212:
140 non-intermediate: gnm-marshalers.c gnmresources.c
142 resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir) --generate-dependencies $(srcdir)/gnm.gresource.xml)
144 gnmresources.h: gnm.gresource.xml
145 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< \
146 --target=$@ --sourcedir=$(top_srcdir) --c-name _gnm --generate-header --manual-register
147 gnmresources.c: gnm.gresource.xml $(resource_files) Makefile
148 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< \
149 --target=$@ --sourcedir=$(top_srcdir) --c-name _gnm --generate-source --manual-register
152 CLEANFILES = $(BUILT_SOURCES) \
155 libspreadsheet_la_CPPFLAGS = $(AM_CPPFLAGS) -DGNUMERIC_INTERNAL
156 libspreadsheet_la_LDFLAGS = -release $(VERSION)
157 libspreadsheet_la_LIBADD = \
158 $(gnumeric_app_libs) \
162 libspreadsheet_la_SOURCES = \
167 go-data-cache-source.c \
168 go-data-cache-source.h \
169 go-data-cache-impl.h \
172 go-data-cache-field-impl.h \
173 go-data-cache-field.h \
174 go-data-cache-field.c \
175 go-data-slicer-impl.h \
178 go-data-slicer-field-impl.h \
179 go-data-slicer-field.h \
180 go-data-slicer-field.c \
182 gnm-data-cache-source.h \
183 gnm-data-cache-source.c \
186 gnm-sheet-slicer-combo.h \
187 gnm-sheet-slicer-combo.c \
202 command-context-stderr.c \
218 gnm-commands-slicer.c \
231 gnumeric-simple-canvas.c \
253 preview-grid-impl.h \
258 rangefunc-strings.c \
270 sheet-control-gui.c \
275 sheet-object-cell-comment.c \
276 sheet-object-component.c \
277 sheet-object-graph.c \
278 sheet-object-image.c \
279 sheet-object-widget.c \
300 workbook-cmd-format.c \
307 nodist_libspreadsheet_la_SOURCES = gnmresources.c gnmresources.h
309 # When we switch to subversion fix this to nest as
310 # libspreadsheet-ver/spreadsheet/header
311 # doing it now would require massive cvs surgery.
312 libspreadsheet_includedir = $(includedir)/libspreadsheet-@GNUMERIC_API_VER@/spreadsheet
313 libspreadsheet_include_HEADERS = \
323 command-context-stderr.h \
341 gnm-commands-slicer.h \
342 gnm-data-cache-source.h \
356 gnumeric-simple-canvas.h \
358 go-data-cache-field.h \
359 go-data-cache-source.h \
361 go-data-slicer-field.h \
389 rangefunc-strings.h \
402 sheet-control-gui-priv.h \
403 sheet-control-gui.h \
404 sheet-control-priv.h \
407 sheet-filter-combo.h \
410 sheet-object-cell-comment.h \
411 sheet-object-component.h \
412 sheet-object-graph.h \
413 sheet-object-image.h \
414 sheet-object-impl.h \
415 sheet-object-widget-impl.h \
416 sheet-object-widget.h \
438 workbook-cmd-format.h \
439 workbook-control-priv.h \
456 gnumeric_LDFLAGS = -export-dynamic
458 ssconvert_LDADD = $(gnumeric_LDADD)
459 ssconvert_LDFLAGS = -export-dynamic
460 ssconvert_SOURCES = \
462 ssindex_LDADD = $(gnumeric_LDADD)
463 ssindex_LDFLAGS = -export-dynamic
466 ssgrep_LDADD = $(gnumeric_LDADD)
467 ssgrep_LDFLAGS = -export-dynamic
470 sstest_LDADD = $(gnumeric_LDADD)
471 sstest_LDFLAGS = -export-dynamic
474 ssdiff_LDADD = $(gnumeric_LDADD)
475 ssdiff_LDFLAGS = -export-dynamic
480 gnumeric_LDADD += gnumeric_rc.o
481 gnumeric_LDFLAGS += -mwindows -Wl,--stack,0x4000000
482 ssconvert_LDFLAGS += -mconsole -Wl,--stack,0x4000000
483 ssindex_LDFLAGS += -mconsole
484 ssgrep_LDFLAGS += -mconsole
486 libspreadsheet_la_DEPENDENCIES = libspreadsheet.def
487 libspreadsheet_la_LDFLAGS += -no-undefined -export-symbols libspreadsheet.def
491 libspreadsheet.def: local.def
492 echo EXPORTS > $@ && \
495 local.def: stamp-local.def
498 stamp-local.def: $(libspreadsheet_include_HEADERS) Makefile $(top_srcdir)/tools/dumpdef.pl
499 hdrs='$(libspreadsheet_include_HEADERS) dialogs/dialogs.h dialogs/tool-dialogs.h tools/dao.h tools/goal-seek.h tools/analysis-tools.h tools/gnm-solver.h widgets/gnumeric-expr-entry.h'; \
501 for hdr in $$hdrs; do \
502 if test -f $(srcdir)/$$hdr; then \
503 hdrs_list="$$hdrs_list $(srcdir)/$$hdr"; \
505 hdrs_list="$$hdrs_list $$hdr"; \
508 cat $(top_builddir)/gnumeric-config.h $$hdrs_list | \
509 sed -e 's/^#[ \t]*include[ \t]\+.*$$//g' | \
510 $(CPP) $(AM_CPPFLAGS) "-DGNM_VAR_DECL=__declspec(dllexport)" -P - > xgen-localdef.1 && \
511 perl $(top_srcdir)/tools/dumpdef.pl \
512 xgen-localdef.1 > xgen-localdef.2 \
513 && (cmp -s xgen-localdef.2 local.def || \
514 cp xgen-localdef.2 local.def) \
515 && rm -f xgen-localdef.1 xgen-localdef.2 \
516 && echo timestamp > $@
520 gnumeric_app_libs = \
521 dialogs/libdialogs.la \
523 widgets/libwidgets.la
526 # Rules for the marshalers code:
527 GENMARSHAL_COMMAND = $(GLIB_GENMARSHAL) --prefix=gnm_
530 $(GENMARSHAL_COMMAND) --header $< >$@
533 (echo '/* This file has been automatically generated. Do not edit. */' && \
534 echo '#include "$*.h"' && \
535 $(GENMARSHAL_COMMAND) --body $< ) >$@
537 # Depends on this Makefile, because it uses make variables.
538 gnumeric-paths.h: Makefile
541 echo '/* This file has been automatically generated. Do not edit. */'; \
543 echo '#ifndef GNUMERIC_PATHS_H'; \
544 echo '#define GNUMERIC_PATHS_H'; \
546 echo '#define GNUMERIC_PREFIX "$(prefix)"'; \
547 echo '#define GNUMERIC_SYSCONFDIR "$(sysconfdir)"'; \
548 echo '#define GNUMERIC_DATADIR "$(gnumeric_datadir)"'; \
549 echo '#define GNUMERIC_LIBDIR "$(gnumeric_libdir)"'; \
550 echo '#define GNUMERIC_ICONDIR "$(gnumeric_icondir)"'; \
551 echo '#define GNUMERIC_LOCALEDIR "$(gnumeric_localedir)"'; \
552 echo '#define GNUMERIC_EXTERNPLUGINDIR "$(gnumeric_externplugindir)"'; \
554 echo '#endif /* GNUMERIC_PATHS_H */'; \
557 update-gnumeric-conf:
558 make -C ${top_srcdir}/schemas
559 rm -f gnumeric-conf.c.tmp
560 @PERL@ -pe 'if (/AUTOMATICALLY GENERATED CODE BELOW/) { print; print "\n"; last; }' <gnumeric-conf.c >gnumeric-conf.c.tmp
561 @PERL@ ${top_srcdir}/tools/handle-conf-options --cfile ${top_srcdir}/schemas/org.gnome.gnumeric*.gschema.xml.in >>gnumeric-conf.c.tmp
562 if cmp gnumeric-conf.c gnumeric-conf.c.tmp; then \
563 rm gnumeric-conf.c.tmp; \
565 mv gnumeric-conf.c.tmp gnumeric-conf.c; \
567 rm -f gnumeric-conf.h.tmp
568 @PERL@ -pe 'if (/AUTOMATICALLY GENERATED CODE BELOW/) { print; print "\n"; last; }' <gnumeric-conf.h >gnumeric-conf.h.tmp
569 @PERL@ ${top_srcdir}/tools/handle-conf-options --hfile ${top_srcdir}/schemas/org.gnome.gnumeric*.gschema.xml.in >>gnumeric-conf.h.tmp
570 echo '' >>gnumeric-conf.h.tmp
571 @PERL@ -ne '$$p=1 if (/AUTOMATICALLY GENERATED CODE ABOVE/); print if $$p;' <gnumeric-conf.h >>gnumeric-conf.h.tmp
572 if cmp gnumeric-conf.h gnumeric-conf.h.tmp; then \
573 rm gnumeric-conf.h.tmp; \
575 mv gnumeric-conf.h.tmp gnumeric-conf.h; \
579 gnumeric_rc.o: gnumeric.rc ../gnumeric-config.h
580 $(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@
584 cd $(DESTDIR)$(bindir) && \
585 mv -f gnumeric$(EXEEXT) gnumeric-$(VERSION)$(EXEEXT) && \
586 $(LN_S) gnumeric-$(VERSION)$(EXEEXT) gnumeric$(EXEEXT)
590 -cd $(DESTDIR)$(bindir) && \
591 rm -f gnumeric-$(VERSION)$(EXEEXT)
593 # include conditional files to ensure everything gets distributed no matter
597 pixmaps/line_pattern_dash_dot.png \
598 pixmaps/line_pattern_dash_dot_dot.png \
599 pixmaps/line_pattern_dashed.png \
600 pixmaps/line_pattern_dotted.png \
601 pixmaps/line_pattern_double.png \
602 pixmaps/line_pattern_hair.png \
603 pixmaps/line_pattern_medium.png \
604 pixmaps/line_pattern_medium_dash.png \
605 pixmaps/line_pattern_medium_dash_dot.png \
606 pixmaps/line_pattern_medium_dash_dot_dot.png \
607 pixmaps/line_pattern_slant.png \
608 pixmaps/line_pattern_thick.png \
609 pixmaps/line_pattern_thin.png \
610 pixmaps/right-down.png \
611 pixmaps/down-right.png \
612 pixmaps/gnumeric_splash_1.4.png \
613 pixmaps/unknown_image.png \
614 pixmaps/sheet_move_marker.png \
616 gnm-marshalers.list \
619 GNOME_Gnumeric-gtk.xml \
622 if HAVE_INTROSPECTION
624 INTROSPECTION_GIRS += Gnm-@GNUMERIC_API_VER@.gir
626 Gnm-@GNUMERIC_API_VER@.gir: $(INTROSPECTION_SCANNER) libspreadsheet.la Makefile
627 Gnm_@GNUMERIC_API_VER_@_gir_INCLUDES = GObject-2.0 Gio-2.0 libxml2-2.0 \
628 Gsf-1 GOffice-@GOFFICE_API_VER@
629 Gnm_@GNUMERIC_API_VER_@_gir_CFLAGS = $(AM_CPPFLAGS)
630 Gnm_@GNUMERIC_API_VER_@_gir_LIBS = libspreadsheet.la
631 Gnm_@GNUMERIC_API_VER_@_gir_FILES = \
632 $(libspreadsheet_la_SOURCES) \
633 $(libspreadsheet_include_HEADERS) \
641 widgets/gnumeric-expr-entry.c \
642 widgets/gnumeric-expr-entry.h
646 gir_DATA = $(INTROSPECTION_GIRS)
648 typelibsdir = $(TYPELIBDIR)
649 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
651 CLEANFILES += $(gir_DATA) $(typelibs_DATA)
653 endif # HAVE_INTROSPECTION