1 # Makefile.am for gtk+/gtk
5 INCLUDES = @STRIP_BEGIN@ \
6 -DG_LOG_DOMAIN=\"Gtk\" \
7 -DGTK_DISABLE_COMPAT_H \
8 -DGTK_LIBDIR=\"$(libdir)\" \
9 -DGTK_DATA_PREFIX=\"$(prefix)\" \
10 -DGTK_SYSCONFDIR=\"$(sysconfdir)\" \
11 -DGTK_LOCALEDIR=\"$(gtklocaledir)\" \
12 -DGTK_VERSION=\"@GTK_VERSION@\" \
13 -DTESTGTK_RCFILE=\"`pwd`/$(srcdir)/testgtkrc\" \
14 -I$(top_builddir)/gtk \
15 -I$(top_srcdir) -I../gdk \
17 -I$(top_srcdir)/gdk-pixbuf -I../gdk-pixbuf \
28 # libtool stuff: set version and export symbols for resolving
29 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
30 # we use the general approach here
31 libgtkincludedir = $(includedir)/gtk-2.0/gtk
32 LDFLAGS = @STRIP_BEGIN@ \
33 -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
36 @LIBTOOL_EXPORT_OPTIONS@ \
46 # setup source file variables
49 # GTK+ header files for public installation (non-generated, or generated
51 gtk_public_h_sources = @STRIP_BEGIN@ \
77 gtkcellrenderertext.h \
78 gtkcellrenderertextpixbuf.h \
79 gtkcellrenderertoggle.h \
80 gtkcellrendererpixbuf.h \
110 gtkimmulticontext.h \
147 gtkscrolledwindow.h \
157 gtktearoffmenuitem.h \
176 gtktreemodelsimple.h \
178 gtktreemodelmapping.h \
183 gtktreeviewcolumn.h \
196 # GTK+ header files that don't get installed
197 gtk_private_h_sources = @STRIP_BEGIN@ \
200 gtktextchildprivate.h \
203 gtktextiterprivate.h \
204 gtktextmarkprivate.h \
205 gtktexttagprivate.h \
209 gtkwindow-decorate.h \
211 # GTK+ C sources to build the library from
212 gtk_c_sources = @STRIP_BEGIN@ \
227 gtkcellrenderertext.c \
228 gtkcellrenderertextpixbuf.c \
229 gtkcellrenderertoggle.c \
230 gtkcellrendererpixbuf.c \
236 gtkcolorseldialog.c \
267 gtkimcontextsimple.c \
268 gtkimcontextsimple.h \
270 gtkimmulticontext.c \
308 gtkscrolledwindow.c \
318 gtktearoffmenuitem.c \
325 gtktextiterprivate.h \
328 gtktextmarkprivate.h \
344 gtktreemodelsimple.c \
346 gtktreemodelmapping.c \
350 gtktreeviewcolumn.c \
362 gtkwindow-decorate.c \
366 # Extra headers that are used for enum type array/id generation
367 gdk_headers = @STRIP_BEGIN@ \
371 ../gdk/gdkdrawable.h \
379 ../gdk/gdkproperty.h \
382 ../gdk/gdkselection.h \
388 # we use our own built_sources variable rules to avoid automake's
389 # BUILT_SOURCES oddities
390 # we generate frequently rebuild files piggyback on a stamp file, so sources
391 # depending on them only get rebuild when the built source actually changed
394 # built sources that get installed with the header files
395 gtk_built_public_sources = @STRIP_BEGIN@ \
399 # built sources that don't get installed
400 gtk_built_sources = @STRIP_BEGIN@ \
402 stamp-gtktypebuiltins.h \
404 gtktypebuiltins_vars.c \
405 gtktypebuiltins_ids.c \
406 gtktypebuiltins_evals.c \
409 ${gtk_built_public_sources} \
411 # non-header sources (headers should be specified in the above variables)
412 # that don't serve as direct make target sources, i.e. they don't have
413 # their own .lo rules and don't get publically installed
414 gtk_extra_sources = @STRIP_BEGIN@ \
427 # setup GTK+ sources and their dependancies
429 gtk_target_headers = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkcompat.h
430 gtk_target_sources = $(gtk_c_sources)
431 MAINTAINERCLEANFILES += $(gtk_built_sources)
433 EXTRA_DIST += $(gtk_private_h_sources) $(gtk_extra_sources)
434 EXTRA_DIST += $(gtk_built_sources)
437 # rules to generate built sources
439 # setup autogeneration dependancies
440 gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc
441 CLEANFILES += $(gen_sources)
442 Makefile: oldest-source-stamp # oh boy, does automake SUCK!
443 oldest-source-stamp: $(gtk_built_sources)
444 $(OBJECTS): oldest-source-stamp ${gtk_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
445 # initial creation of the real stamp-* files
446 gtk.defs gtkmarshal.h gtktypebuiltins.h: # never add deps here
447 test -f "$(srcdir)/$@" || touch $(srcdir)/$@
448 # normal autogeneration rules
449 # all autogenerated files need to be generated in the srcdir,
450 # so old versions get remade and are not confused with newer
451 # versions in the build dir. thus a development setup requires
452 # srcdir to be writable, passing --disable-rebuilds to
453 # ../configure will supress all autogeneration rules.
454 $(srcdir)/stamp-gtk.defs: @REBUILD@ makeenums.pl gtk.defs gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
456 && $(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) > xgen-gdef \
457 && cat gtk-boxed.defs >> xgen-gdef \
458 && (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
460 && echo timestamp > $(@F)
461 $(srcdir)/stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list gtkmarshal.h
463 && glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh \
464 && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
465 && rm -f xgen-gmh xgen-gmh~ \
466 && echo timestamp > $(@F)
467 $(srcdir)/gtkmarshal.c: @REBUILD@ $(srcdir)/stamp-gtkmarshal.h
469 && glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >> xgen-gmc \
470 && cp xgen-gmc gtkmarshal.c \
471 && rm -f xgen-gmc xgen-gmc~
472 $(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk stamp-gtk.defs gtktypebuiltins.h
474 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
475 && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
477 && echo timestamp > $(@F)
478 $(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk stamp-gtk.defs
480 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
481 && cp xgen-gtbvc $(@F) \
483 $(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk stamp-gtk.defs
485 && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
486 && cp xgen-gtbic $(@F) \
488 $(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ makeenums.pl $(gtk_public_h_sources) $(gdk_headers)
490 && $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) > xgen-gtbec \
491 && cp xgen-gtbec $(@F) \
496 lib_ltlibraries = @gtktargetlib@
497 # now define the real one to workaround automake's mishandling
498 lib_LTLIBRARIES = $(lib_ltlibraries)
500 libgtk_x11_includedir = $(includedir)/gtk-2.0/gtk
501 libgtk_x11_include_HEADERS = $(gtk_target_headers)
502 libgtk_x11_1_3_la_SOURCES = $(gtk_target_sources)
505 libgtk_nanox_includedir = $(includedir)/gtk-2.0/gtk
506 libgtk_nanox_include_HEADERS = $(gtk_target_headers)
507 libgtk_nanox_1_3_la_SOURCES = $(gtk_target_sources)
510 libgtk_linux_fb_includedir = $(includedir)/gtk-2.0/gtk
511 libgtk_linux_fb_include_HEADERS = $(gtk_target_headers)
512 libgtk_linux_fb_1_3_la_SOURCES = $(gtk_target_sources)
514 EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-nanox-1.3.la libgtk-linux-fb-1.3.la
517 # We create a dummy theme for the default GTK+ theme
519 $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
520 echo "# Empty gtkrc for default theme" > $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
521 $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/gtk-2.0
522 $(top_builddir)/gtk/gtk-query-immodules-2.0 > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
524 rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
526 DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@
527 TEST_DEPS = $(DEPS) gtk.immodules
529 LDADDS = @STRIP_BEGIN@ \
531 $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
532 $(top_builddir)/gdk/@gdktargetlib@ \
545 bin_PROGRAMS = gtk-query-immodules-2.0
547 gtk_query_immodules_2_0_DEPENDENCIES = $(DEPS)
548 gtk_query_immodules_2_0_LDADD = $(LDADDS)
550 gtk_query_immodules_2_0_SOURCES = queryimmodules.c
552 gtk.immodules: gtk-query-immodules-2.0 ../modules/input/Makefile.am
553 ./gtk-query-immodules-2.0 ../modules/input/.libs/*.so > gtk.immodules
556 # test programs, not to be installed
558 noinst_PROGRAMS = testgtk testcalendar testinput testselection testrgb testdnd testtext simple treestoretest testtextbuffer # testthreads
560 testcalendar_DEPENDENCIES = $(TEST_DEPS)
561 testgtk_DEPENDENCIES = $(TEST_DEPS)
562 testinput_DEPENDENCIES = $(TEST_DEPS)
563 testrgb_DEPENDENCIES = $(TEST_DEPS)
564 testselection_DEPENDENCIES = $(TEST_DEPS)
565 testtext_DEPENDENCIES = $(TEST_DEPS)
566 testtextbuffer_DEPENDENCIES = $(TEST_DEPS)
567 treestoretest_DEPENDENCIES = $(TEST_DEPS)
568 testdnd_DEPENDENCIES = $(TEST_DEPS)
569 simple_DEPENDENCIES = $(TEST_DEPS)
570 #testthreads_DEPENDENCIES = $(TEST_DEPS)
572 testcalendar_LDADD = $(LDADDS)
573 testgtk_LDADD = $(LDADDS)
574 testinput_LDADD = $(LDADDS)
575 testrgb_LDADD = $(LDADDS)
576 testselection_LDADD = $(LDADDS)
577 testtext_LDADD = $(LDADDS)
578 testtextbuffer_LDADD = $(LDADDS)
579 treestoretest_LDADD = $(LDADDS)
580 testdnd_LDADD = $(LDADDS)
581 simple_LDADD = $(LDADDS)
582 #testthreads_LDADD = $(LDADDS)
584 .PHONY: files test test-debug
587 @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
592 builddir=`pwd`; cd $(top_builddir); top_builddir=`pwd`; \
593 cd $$builddir; cd $(srcdir); \
594 $(SHELL) $$top_builddir/libtool --mode=execute $$builddir/testgtk
597 builddir=`pwd`; cd $(top_builddir); top_builddir=`pwd`; \
598 cd $$builddir; cd $(srcdir); \
599 $(SHELL) $$top_builddir/libtool --mode=execute gdb $$builddir/testgtk
601 EXTRA_DIST += @STRIP_BEGIN@ \
602 oldest-source-stamp \