1 # Makefile.am for gtk+/gtk
3 SUBDIRS=stock-icons theme-bits
5 INCLUDES = @STRIP_BEGIN@ \
6 -DG_LOG_DOMAIN=\"Gtk\" \
7 -DGTK_LIBDIR=\"$(libdir)\" \
8 -DGTK_DATA_PREFIX=\"$(prefix)\" \
9 -DGTK_SYSCONFDIR=\"$(sysconfdir)\" \
10 -DGTK_LOCALEDIR=\"$(gtklocaledir)\" \
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 \
30 no_undefined = -no-undefined
35 gtk_win32_symbols = -export-symbols $(gtk_def)
37 gtk_win32res_lo = gtk-win32res.lo
39 gtk-win32res.lo : gtk-win32.rc
40 $(top_srcdir)/build/win32/lt-compile-resource gtk-win32.rc gtk-win32res.lo
42 install-libtool-import-lib:
43 $(INSTALL) .libs/libgtk-win32-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
44 uninstall-libtool-import-lib:
45 -rm $(DESTDIR)$(libdir)/libtk-win32-$(GTK_API_VERSION).dll.a
47 install-libtool-import-lib:
48 uninstall-libtool-import-lib:
52 noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
54 gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
55 lib -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
58 $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
61 -rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
67 # libtool stuff: set version and export symbols for resolving
68 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
69 # we use the general approach here
70 libgtkincludedir = $(includedir)/gtk-2.0/gtk
71 LDFLAGS = @STRIP_BEGIN@ \
73 -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
77 @LIBTOOL_EXPORT_OPTIONS@ \
78 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
79 $(top_builddir)/gdk/@gdktargetlib@ \
80 $(libgtk_target_ldflags) \
85 # setup source file variables
88 # GTK+ header files for public installation (non-generated, or generated
90 gtk_public_h_sources = @STRIP_BEGIN@ \
108 gtkseparatormenuitem.h \
112 gtkcolorseldialog.h \
119 gtkcellrenderertext.h \
120 gtkcellrenderertoggle.h \
121 gtkcellrendererpixbuf.h \
148 gtkimcontextsimple.h \
150 gtkimmulticontext.h \
185 gtkscrolledwindow.h \
197 gtktearoffmenuitem.h \
221 gtktreeviewcolumn.h \
234 # GTK+ header files that don't get installed
235 gtk_private_h_sources = @STRIP_BEGIN@ \
238 gtktextchildprivate.h \
242 gtktextiterprivate.h \
243 gtktextmarkprivate.h \
244 gtktexttagprivate.h \
248 gtkwindow-decorate.h \
250 # GTK+ C sources to build the library from
251 gtk_c_sources = @STRIP_BEGIN@ \
268 gtkcellrenderertext.c \
269 gtkcellrenderertoggle.c \
270 gtkcellrendererpixbuf.c \
273 gtkseparatormenuitem.c \
277 gtkcolorseldialog.c \
308 gtkimcontextsimple.c \
310 gtkimmulticontext.c \
349 gtkscrolledwindow.c \
360 gtktearoffmenuitem.c \
367 gtktextiterprivate.h \
370 gtktextmarkprivate.h \
392 gtktreeviewcolumn.c \
405 gtkwindow-decorate.c \
411 gtk_plug_c_sources = @STRIP_BEGIN@ \
416 # we use our own built_sources variable rules to avoid automake's
417 # BUILT_SOURCES oddities
418 # we generate frequently rebuild files piggyback on a stamp file, so sources
419 # depending on them only get rebuild when the built source actually changed
422 # built sources that get installed with the header files
423 gtk_built_public_sources = @STRIP_BEGIN@ \
427 gtk_built_private_headers = @STRIP_BEGIN@ \
430 # built sources that don't get installed
431 gtk_built_sources = @STRIP_BEGIN@ \
436 ${gtk_built_private_headers} \
437 ${gtk_built_public_sources} \
439 stamp_files = @STRIP_BEGIN@ \
440 stamp-gtkmarshalers.h \
442 stamp-gtktypebuiltins.h \
444 # non-header sources (headers should be specified in the above variables)
445 # that don't serve as direct make target sources, i.e. they don't have
446 # their own .lo rules and don't get publically installed
447 gtk_extra_sources = @STRIP_BEGIN@ \
454 # setup GTK+ sources and their dependancies
456 MAINTAINERCLEANFILES = $(gtk_built_sources) $(stamp_files)
458 EXTRA_DIST = $(gtk_private_h_sources) $(gtk_extra_sources)
459 EXTRA_DIST += $(gtk_built_sources)
462 # rules to generate built sources
464 # setup autogeneration dependancies
465 gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
466 CLEANFILES = $(gen_sources)
468 ## automake 1.5 supports this without $(OBJECTS): $(gtk_built_sources) hack
469 #BUILT_SOURCES = $(gtk_built_sources)
471 $(libgtk_x11_2_0_la_OBJECTS) $(libgtk_linux_fb_2_0_la_OBJECTS) $(libgtk_win32_2_0_la_OBJECTS): ${gtk_built_public_sources} ${gtk_built_private_headers}
473 # all autogenerated files need to be generated in the srcdir,
474 # so old versions get remade and are not confused with newer
475 # versions in the build dir. thus a development setup requires
476 # srcdir to be writable, passing --disable-rebuilds to
477 # ../configure will supress all autogeneration rules.
478 $(srcdir)/gtkmarshalers.h: stamp-gtkmarshalers.h
480 stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
481 case @GLIB_GENMARSHAL@ in \
482 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
483 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
486 && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >> xgen-gmlh \
487 && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h) \
489 && echo timestamp > $(@F)
490 $(srcdir)/gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
491 case @GLIB_GENMARSHAL@ in \
492 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
493 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
496 && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >> xgen-gmlc \
497 && cp xgen-gmlc gtkmarshalers.c \
500 $(srcdir)/gtkmarshal.h: stamp-gtkmarshal.h
502 stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
503 case @GLIB_GENMARSHAL@ in \
504 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
505 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
508 && echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh \
509 && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh \
510 && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh \
511 && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
513 && echo timestamp > $(@F)
514 $(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.list
515 case @GLIB_GENMARSHAL@ in \
516 .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;; \
517 *) glib_genmarshal=@GLIB_GENMARSHAL@ ;; \
520 && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
521 && cp xgen-gmc gtkmarshal.c \
524 $(srcdir)/gtktypebuiltins.h: stamp-gtktypebuiltins.h
526 stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
527 ( cd $(srcdir) && glib-mkenums \
528 --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
529 --fprod "/* enumerations from \"@filename@\" */\n" \
530 --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
531 --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
532 $(gtk_public_h_sources) ) >> xgen-gtbh \
533 && (cmp -s xgen-gtbh $(srcdir)/gtktypebuiltins.h || cp xgen-gtbh $(srcdir)/gtktypebuiltins.h ) \
535 && echo timestamp > $(@F)
536 $(srcdir)/gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
537 ( cd $(srcdir) && glib-mkenums \
538 --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
539 --fprod "\n/* enumerations from \"@filename@\" */" \
540 --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[] = {" \
541 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
542 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
543 $(gtk_public_h_sources) ) > xgen-gtbc \
544 && cp xgen-gtbc $(srcdir)/gtktypebuiltins.c \
548 lib_LTLIBRARIES = $(gtktargetlib)
550 gtkincludedir = $(includedir)/gtk-2.0/gtk
551 gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkversion.h
553 libgtk_x11_2_0_la_SOURCES = $(gtk_c_sources) $(gtk_plug_c_sources)
554 libgtk_linux_fb_2_0_la_SOURCES = $(gtk_c_sources)
555 libgtk_win32_2_0_la_SOURCES = $(gtk_c_sources)
557 libgtk_win32_2_0_la_LIBADD = $(gtk_win32res_lo)
558 libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32res_lo)
561 libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
563 EXTRA_LTLIBRARIES = libgtk-x11-2.0.la libgtk-linux-fb-2.0.la libgtk-win32-2.0.la
566 if DISABLE_EXPLICIT_DEPS
567 $(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
570 # Install a RC file for the default GTK+ theme, and key themes
571 install-data-local: install-ms-lib install-libtool-import-lib
572 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
573 $(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
574 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
575 $(INSTALL_DATA) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
576 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
577 $(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
579 uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
580 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
581 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
582 rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
584 DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la $(top_builddir)/gdk/$(gdktargetlib)
586 TEST_DEPS = $(DEPS) gtk.immodules
588 LDADDS = @STRIP_BEGIN@ \
590 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
591 $(top_builddir)/gdk/$(gdktargetlib) \
597 bin_PROGRAMS = gtk-query-immodules-2.0
599 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
600 gtk_query_immodules_2_0_LDADD = $(LDADDS)
602 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
604 .PHONY: files test test-debug
607 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
611 EXTRA_DIST += @STRIP_BEGIN@ \