1 # Makefile.am for gtk+/gtk
3 SUBDIRS=stock-icons theme-bits
6 -DG_LOG_DOMAIN=\"Gtk\" \
7 -DGTK_LIBDIR=\"$(libdir)\" \
8 -DGTK_DATADIR=\"$(datadir)\" \
9 -DGTK_DATA_PREFIX=\"$(prefix)\" \
10 -DGTK_SYSCONFDIR=\"$(sysconfdir)\" \
11 -DGTK_VERSION=\"$(GTK_VERSION)\" \
12 -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
13 -DGTK_HOST=\"$(host)\" \
15 -I$(top_builddir)/gtk \
16 -I$(top_srcdir) -I../gdk \
18 -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf \
19 -DG_DISABLE_DEPRECATED \
20 -DGDK_PIXBUF_DISABLE_DEPRECATED \
21 -DGDK_DISABLE_DEPRECATED \
22 -DGTK_DISABLE_DEPRECATED \
29 no_undefined = -no-undefined
34 gtk_win32_symbols = -export-symbols $(gtk_def)
36 gtk_win32res_lo = gtk-win32res.lo
38 gtk-win32res.lo : gtk-win32.rc
39 $(top_srcdir)/build/win32/lt-compile-resource gtk-win32.rc gtk-win32res.lo
41 install-libtool-import-lib:
42 $(INSTALL) .libs/libgtk-win32-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
43 uninstall-libtool-import-lib:
44 -rm $(DESTDIR)$(libdir)/libtk-win32-$(GTK_API_VERSION).dll.a
46 install-libtool-import-lib:
47 uninstall-libtool-import-lib:
51 noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
53 gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
54 lib -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
57 $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
60 -rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
66 # libtool stuff: set version and export symbols for resolving
67 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
68 # we use the general approach here
69 libgtkincludedir = $(includedir)/gtk-2.0/gtk
71 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
72 $(top_builddir)/gdk/$(gdktargetlib) \
75 # common options for the various packages.
77 -version-info $(LT_VERSION_INFO) \
78 -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS) \
79 -rpath $(libdir) $(libgtk_target_ldflags)
83 # setup source file variables
86 # GTK+ header files for public installation (non-generated, or generated
88 gtk_public_h_sources = \
109 gtkcellrendererpixbuf.h \
110 gtkcellrenderertext.h \
111 gtkcellrenderertoggle.h \
119 gtkcolorseldialog.h \
130 gtkentrycompletion.h \
154 gtkimcontextsimple.h \
156 gtkimmulticontext.h \
187 gtkradiotoolbutton.h \
193 gtkscrolledwindow.h \
196 gtkseparatormenuitem.h \
197 gtkseparatortoolitem.h \
207 gtktearoffmenuitem.h \
221 gtktoggletoolbutton.h \
230 gtktreemodelfilter.h \
236 gtktreeviewcolumn.h \
250 # GTK+ header files that don't get installed
251 gtk_private_h_sources = \
255 gtktextchildprivate.h \
259 gtktextiterprivate.h \
260 gtktextmarkprivate.h \
261 gtktexttagprivate.h \
265 gtkwindow-decorate.h \
266 gtktoggleactionprivate.h
268 # GTK+ C sources to build the library from
275 gtkradiotoolbutton.c \
276 gtktoggletoolbutton.c \
279 gtkseparatortoolitem.c \
295 gtkcellrenderertext.c \
296 gtkcellrenderertoggle.c \
297 gtkcellrendererpixbuf.c \
300 gtkseparatormenuitem.c \
305 gtkcolorseldialog.c \
315 gtkentrycompletion.c \
337 gtkiconthemeparser.c \
338 gtkiconthemeparser.h \
342 gtkimcontextsimple.c \
344 gtkimmulticontext.c \
384 gtkscrolledwindow.c \
395 gtktearoffmenuitem.c \
402 gtktextiterprivate.h \
405 gtktextmarkprivate.h \
422 gtktreemodelfilter.c \
428 gtktreeviewcolumn.c \
442 gtkwindow-decorate.c \
446 gtk_plug_c_sources = \
452 # we use our own built_sources variable rules to avoid automake's
453 # BUILT_SOURCES oddities
454 # we generate frequently rebuild files piggyback on a stamp file, so sources
455 # depending on them only get rebuild when the built source actually changed
458 # built sources that get installed with the header files
459 gtk_built_public_sources = \
463 gtk_built_private_headers = \
466 # built sources that don't get installed
467 gtk_built_sources = \
472 ${gtk_built_private_headers} \
473 ${gtk_built_public_sources}
476 stamp-gtkmarshalers.h \
478 stamp-gtktypebuiltins.h
480 # non-header sources (headers should be specified in the above variables)
481 # that don't serve as direct make target sources, i.e. they don't have
482 # their own .lo rules and don't get publically installed
483 gtk_extra_sources = \
489 # setup GTK+ sources and their dependancies
491 MAINTAINERCLEANFILES = $(gtk_built_sources) $(stamp_files)
493 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
494 EXTRA_DIST += $(gtk_built_sources)
497 # rules to generate built sources
499 # setup autogeneration dependancies
500 gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
501 CLEANFILES = $(gen_sources)
503 BUILT_SOURCES = $(gtk_built_sources)
505 # all autogenerated files need to be generated in the srcdir,
506 # so old versions get remade and are not confused with newer
507 # versions in the build dir. thus a development setup requires
508 # srcdir to be writable, passing --disable-rebuilds to
509 # ../configure will supress all autogeneration rules.
510 gtkmarshalers.h: stamp-gtkmarshalers.h
512 stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
513 $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --header >> xgen-gmlh \
514 && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h) \
516 && echo timestamp > $(@F)
517 gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
518 $(GLIB_GENMARSHAL) --prefix=_gtk_marshal $(srcdir)/gtkmarshalers.list --body >> xgen-gmlc \
519 && cp xgen-gmlc gtkmarshalers.c \
522 gtkmarshal.h: stamp-gtkmarshal.h
524 stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
525 echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh \
526 && $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --header >> xgen-gmh \
527 && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh \
528 && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
530 && echo timestamp > $(@F)
531 gtkmarshal.c: @REBUILD@ gtkmarshal.list
532 $(GLIB_GENMARSHAL) --prefix=gtk_marshal $(srcdir)/gtkmarshal.list --body >> xgen-gmc \
533 && cp xgen-gmc gtkmarshal.c \
536 gtktypebuiltins.h: stamp-gtktypebuiltins.h
538 stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
539 ( cd $(srcdir) && glib-mkenums \
540 --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
541 --fprod "/* enumerations from \"@filename@\" */\n" \
542 --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
543 --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
544 $(gtk_public_h_sources) ) >> xgen-gtbh \
545 && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h ) \
547 && echo timestamp > $(@F)
548 gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
549 ( cd $(srcdir) && glib-mkenums \
550 --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
551 --fprod "\n/* enumerations from \"@filename@\" */" \
552 --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[] = {" \
553 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
554 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
555 $(gtk_public_h_sources) ) > xgen-gtbc \
556 && cp xgen-gtbc gtktypebuiltins.c \
560 lib_LTLIBRARIES = $(gtktargetlib)
562 gtkincludedir = $(includedir)/gtk-2.0/gtk
563 gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
565 libgtk_x11_2_0_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
566 libgtk_linux_fb_2_0_la_SOURCES = $(gtk_c_sources)
567 libgtk_win32_2_0_la_SOURCES = $(gtk_c_sources)
569 libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
570 libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
571 libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
573 libgtk_x11_2_0_la_LIBADD = $(libadd)
574 libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
575 libgtk_win32_2_0_la_LIBADD = $(libadd) $(gtk_win32res_lo)
576 libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32res_lo)
579 libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
581 EXTRA_LTLIBRARIES = libgtk-x11-2.0.la libgtk-linux-fb-2.0.la libgtk-win32-2.0.la
584 if DISABLE_EXPLICIT_DEPS
585 $(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
588 # Install a RC file for the default GTK+ theme, and key themes
589 install-data-local: install-ms-lib install-libtool-import-lib
590 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
591 $(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
592 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
593 $(INSTALL_DATA) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
594 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
595 $(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
597 uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
598 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
599 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
600 rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
602 # if srcdir!=builddir, clean out maintainer-clean files from builddir
603 # this allows dist to pass.
605 if test $(srcdir) != .; then \
606 rm -f $(MAINTAINERCLEANFILES); \
609 DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la $(top_builddir)/gdk/$(gdktargetlib)
611 TEST_DEPS = $(DEPS) gtk.immodules
615 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
616 $(top_builddir)/gdk/$(gdktargetlib)
621 bin_PROGRAMS = gtk-query-immodules-2.0
623 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
624 gtk_query_immodules_2_0_LDADD = $(LDADDS)
626 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
628 .PHONY: files test test-debug
631 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \