1 # Makefile.am for gtk+/gtk
3 SUBDIRS=stock-icons theme-bits
9 DIST_SUBDIRS=stock-icons theme-bits xdgmime
12 -DG_LOG_DOMAIN=\"Gtk\" \
13 -DGTK_LIBDIR=\"$(libdir)\" \
14 -DGTK_DATADIR=\"$(datadir)\" \
15 -DGTK_DATA_PREFIX=\"$(prefix)\" \
16 -DGTK_SYSCONFDIR=\"$(sysconfdir)\" \
17 -DGTK_VERSION=\"$(GTK_VERSION)\" \
18 -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
19 -DGTK_HOST=\"$(host)\" \
21 -I$(top_builddir)/gtk \
22 -I$(top_srcdir) -I../gdk \
24 -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf \
25 -DG_DISABLE_DEPRECATED \
26 -DGDK_PIXBUF_DISABLE_DEPRECATED \
27 -DGDK_DISABLE_DEPRECATED \
28 -DGTK_DISABLE_DEPRECATED \
29 -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED \
36 no_undefined = -no-undefined
41 gtk_win32_symbols = -export-symbols $(gtk_def)
43 gtk_win32res_lo = gtk-win32res.lo
45 gtk-win32res.lo : gtk-win32.rc
46 $(top_srcdir)/build/win32/lt-compile-resource gtk-win32.rc gtk-win32res.lo
48 install-libtool-import-lib:
49 $(INSTALL) .libs/libgtk-win32-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
50 uninstall-libtool-import-lib:
51 -rm $(DESTDIR)$(libdir)/libtk-win32-$(GTK_API_VERSION).dll.a
53 install-libtool-import-lib:
54 uninstall-libtool-import-lib:
58 noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
60 gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
61 lib -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
64 $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
67 -rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
74 (echo -e EXPORTS; cpp -P -DINCLUDE_VARIABLES -DG_OS_WIN32 gtk.symbols | sed -e '/^$$/d' -e 's/^/\t/') > gtk.def
76 gtkalias.h: gtk.symbols
77 cpp -P -DG_OS_UNIX -DGTK_WINDOWING_X11 -DINCLUDE_INTERNAL_SYMBOLS gtk.symbols | ./makegtkalias.pl > gtkalias.h
83 # libtool stuff: set version and export symbols for resolving
84 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
85 # we use the general approach here
86 libgtkincludedir = $(includedir)/gtk-2.0/gtk
88 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
89 $(top_builddir)/gdk/$(gdktargetlib) \
93 libadd += xdgmime/libxdgmime.la
96 # common options for the various packages.
98 -version-info $(LT_VERSION_INFO) \
99 -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS) \
100 -rpath $(libdir) $(libgtk_target_ldflags)
104 # setup source file variables
107 # GTK+ header files for public installation (non-generated, or generated
109 gtk_public_h_sources = \
131 gtkcellrenderercombo.h \
132 gtkcellrendererpixbuf.h \
133 gtkcellrendererprogress.h \
134 gtkcellrenderertext.h \
135 gtkcellrenderertoggle.h \
144 gtkcolorseldialog.h \
157 gtkentrycompletion.h \
162 gtkfilechooserbutton.h \
163 gtkfilechooserdialog.h \
164 gtkfilechooserwidget.h \
187 gtkimcontextsimple.h \
189 gtkimmulticontext.h \
220 gtkradiotoolbutton.h \
226 gtkscrolledwindow.h \
229 gtkseparatormenuitem.h \
230 gtkseparatortoolitem.h \
240 gtktearoffmenuitem.h \
253 gtktoggletoolbutton.h \
262 gtktreemodelfilter.h \
268 gtktreeviewcolumn.h \
282 # Installed header files without compatibility guarantees
283 # that are not include in gtk/gtk.h
284 gtk_semi_private_h_sources = \
288 # GTK+ header files that don't get installed
289 gtk_private_h_sources = \
291 gtkfilechooserembed.h \
292 gtkfilechooserentry.h \
293 gtkfilechooserdefault.h \
294 gtkfilechooserprivate.h \
295 gtkfilechooserutils.h \
296 gtkfilesystemunix.h \
297 gtkfilesystemmodel.h \
303 gtktextchildprivate.h \
307 gtktextiterprivate.h \
308 gtktextmarkprivate.h \
309 gtktexttagprivate.h \
313 gtkwindow-decorate.h \
314 gtktoggleactionprivate.h
316 # GTK+ C sources to build the library from
339 gtkcellrenderercombo.c \
340 gtkcellrendererpixbuf.c \
341 gtkcellrendererprogress.c \
342 gtkcellrenderertext.c \
343 gtkcellrenderertoggle.c \
351 gtkcolorseldialog.c \
363 gtkentrycompletion.c \
367 gtkfilechooserbutton.c \
368 gtkfilechooserdialog.c \
369 gtkfilechooserembed.c \
370 gtkfilechooserentry.c \
371 gtkfilechooserdefault.c \
372 gtkfilechooserutils.c \
373 gtkfilechooserwidget.c \
377 gtkfilesystemmodel.c \
396 gtkiconthemeparser.c \
397 gtkiconthemeparser.h \
402 gtkimcontextsimple.c \
404 gtkimmulticontext.c \
439 gtkradiotoolbutton.c \
446 gtkscrolledwindow.c \
450 gtkseparatormenuitem.c \
451 gtkseparatortoolitem.c \
460 gtktearoffmenuitem.c \
467 gtktextiterprivate.h \
470 gtktextmarkprivate.h \
481 gtktoggletoolbutton.c \
491 gtktreemodelfilter.c \
497 gtktreeviewcolumn.c \
510 gtkwindow-decorate.c \
515 gtk_private_h_sources += gtkfilesystemunix.h
516 gtk_c_sources += gtkfilesystemunix.c
520 gtk_private_h_sources += gtkfilesystemwin32.h
521 gtk_c_sources += gtkfilesystemwin32.c
524 gtk_plug_c_sources = \
530 # we use our own built_sources variable rules to avoid automake's
531 # BUILT_SOURCES oddities
532 # we generate frequently rebuild files piggyback on a stamp file, so sources
533 # depending on them only get rebuild when the built source actually changed
536 # built sources that get installed with the header files
537 gtk_built_public_sources = \
541 # built sources that don't get installed
542 gtk_built_private_headers = \
546 gtk_built_sources = \
551 ${gtk_built_private_headers} \
552 ${gtk_built_public_sources}
555 stamp-gtkmarshalers.h \
557 stamp-gtktypebuiltins.h
559 # non-header sources (headers should be specified in the above variables)
560 # that don't serve as direct make target sources, i.e. they don't have
561 # their own .lo rules and don't get publically installed
562 gtk_extra_sources = \
569 # setup GTK+ sources and their dependencies
571 MAINTAINERCLEANFILES = $(gtk_built_sources) $(stamp_files)
573 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
574 EXTRA_DIST += $(gtk_built_sources)
577 # rules to generate built sources
579 # setup autogeneration dependencies
580 gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
581 CLEANFILES = $(gen_sources)
583 BUILT_SOURCES = $(gtk_built_sources)
585 # all autogenerated files need to be generated in the srcdir,
586 # so old versions get remade and are not confused with newer
587 # versions in the build dir. thus a development setup requires
588 # srcdir to be writable, passing --disable-rebuilds to
589 # ../configure will supress all autogeneration rules.
590 gtkmarshalers.h: stamp-gtkmarshalers.h
592 stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
593 $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --header >> xgen-gmlh \
594 && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h) \
596 && echo timestamp > $(@F)
597 gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
598 (echo "#include \"gtkalias.h\""; $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --body) >> xgen-gmlc \
599 && cp xgen-gmlc gtkmarshalers.c \
602 gtkmarshal.h: stamp-gtkmarshal.h
604 stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
605 echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh \
606 && $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --header >> xgen-gmh \
607 && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh \
608 && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
610 && echo timestamp > $(@F)
611 gtkmarshal.c: @REBUILD@ gtkmarshal.list
612 (echo "#include \"gtkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --body) >> xgen-gmc \
613 && cp xgen-gmc gtkmarshal.c \
616 gtktypebuiltins.h: stamp-gtktypebuiltins.h
618 stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
619 ( cd $(srcdir) && glib-mkenums \
620 --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
621 --fprod "/* enumerations from \"@filename@\" */\n" \
622 --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
623 --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
624 $(gtk_public_h_sources) ) >> xgen-gtbh \
625 && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h ) \
627 && echo timestamp > $(@F)
628 gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
629 ( cd $(srcdir) && glib-mkenums \
630 --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include \"gtkalias.h\"\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
631 --fprod "\n/* enumerations from \"@filename@\" */" \
632 --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \
633 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
634 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
635 $(gtk_public_h_sources) ) > xgen-gtbc \
636 && cp xgen-gtbc gtktypebuiltins.c \
640 lib_LTLIBRARIES = $(gtktargetlib)
642 gtkincludedir = $(includedir)/gtk-2.0/gtk
643 gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_semi_private_h_sources) $(gtk_built_public_sources) gtkversion.h
645 libgtk_x11_2_0_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
646 libgtk_linux_fb_2_0_la_SOURCES = $(gtk_c_sources)
647 libgtk_win32_2_0_la_SOURCES = $(gtk_c_sources)
649 libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
650 libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
651 libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
653 libgtk_x11_2_0_la_LIBADD = $(libadd)
654 libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
655 libgtk_win32_2_0_la_LIBADD = $(libadd) $(gtk_win32res_lo)
656 libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32res_lo)
659 libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
661 EXTRA_LTLIBRARIES = libgtk-x11-2.0.la libgtk-linux-fb-2.0.la libgtk-win32-2.0.la
664 if DISABLE_EXPLICIT_DEPS
665 $(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
668 # Install a RC file for the default GTK+ theme, and key themes
669 install-data-local: install-ms-lib install-libtool-import-lib
670 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
671 $(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
672 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
673 $(INSTALL_DATA) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
674 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
675 $(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
677 uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
678 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
679 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
680 rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
682 # if srcdir!=builddir, clean out maintainer-clean files from builddir
683 # this allows dist to pass.
685 if test $(srcdir) != .; then \
686 rm -f $(MAINTAINERCLEANFILES); \
689 DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la $(top_builddir)/gdk/$(gdktargetlib)
691 TEST_DEPS = $(DEPS) gtk.immodules
695 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
696 $(top_builddir)/gdk/$(gdktargetlib)
701 bin_PROGRAMS = gtk-query-immodules-2.0
703 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
704 gtk_query_immodules_2_0_LDADD = $(LDADDS)
706 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
708 .PHONY: files test test-debug
711 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
725 gtkfilesystemwin32.h \
726 gtkfilesystemwin32.c \