]> Pileus Git - ~andy/gtk/blobdiff - gtk/Makefile.am
Switch style of stamp file usage.
[~andy/gtk] / gtk / Makefile.am
index dce331ac3fec29937bcbebb0da8df574faeb9f94..0115e06d0e0e599a5fc5f6b8ee3f408a35beeab9 100644 (file)
@@ -1,6 +1,6 @@
 # Makefile.am for gtk+/gtk
 
-SUBDIRS=stock-icons
+SUBDIRS=stock-icons theme-bits
 
 INCLUDES = @STRIP_BEGIN@ \
        -DG_LOG_DOMAIN=\"Gtk\"                          \
@@ -10,7 +10,7 @@ INCLUDES = @STRIP_BEGIN@ \
        -DGTK_LOCALEDIR=\"$(gtklocaledir)\"             \
        -DGTK_VERSION=\"@GTK_VERSION@\"                 \
        -DGTK_BINARY_VERSION=\"@GTK_BINARY_VERSION@\"   \
-       -DTESTGTK_RCFILE=\"`pwd`/$(srcdir)/testgtkrc\"  \
+       -DGTK_HOST=\"@host@\"                           \
        -DGTK_COMPILATION                               \
        -I$(top_builddir)/gtk                           \
        -I$(top_srcdir) -I../gdk                        \
@@ -308,6 +308,8 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtkinvisible.c          \
        gtkitem.c               \
        gtkitemfactory.c        \
+       gtkkeyhash.c            \
+       gtkkeyhash.h            \
        gtklabel.c              \
        gtklayout.c             \
        gtklist.c               \
@@ -383,6 +385,7 @@ gtk_c_sources = @STRIP_BEGIN@   \
        gtktreestore.c          \
        gtktreeview.c           \
        gtktreeviewcolumn.c     \
+       gtktypebuiltins.c       \
        gtktypeutils.c          \
        gtkvbbox.c              \
        gtkvbox.c               \
@@ -421,9 +424,7 @@ gtk_built_sources = @STRIP_BEGIN@ \
        stamp-gtk.defs          \
        stamp-gtktypebuiltins.h \
        stamp-gtkmarshalers.h   \
-       gtktypebuiltins_vars.c  \
-       gtktypebuiltins_ids.c   \
-       gtktypebuiltins_evals.c \
+       gtktypebuiltins.c       \
        gtkmarshalers.c         \
        gtkmarshalers.h         \
        gtkmarshal.c            \
@@ -435,8 +436,6 @@ gtk_built_sources = @STRIP_BEGIN@ \
 # their own .lo rules and don't get publically installed
 gtk_extra_sources = @STRIP_BEGIN@ \
        gtkversion.h.in         \
-       maketypes.awk           \
-       makeenums.h             \
        gtk-boxed.defs          \
        gtkmarshalers.list      \
        gtkmarshal.list         \
@@ -454,44 +453,40 @@ EXTRA_DIST += $(gtk_built_sources)
 # rules to generate built sources
 #
 # setup autogeneration dependancies
-gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
+gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc
 CLEANFILES = $(gen_sources)
 
-## automake 1.5 supports this without the horrible 'oldest-source-stamp' 
-## hack below
+## automake 1.5 supports this without $(OBJECTS): $(gtk_built_sources) hack
 #BUILT_SOURCES = $(gtk_built_sources)
 
-Makefile: oldest-source-stamp  # oh boy, does automake SUCK!
-oldest-source-stamp: $(gtk_built_sources)
-$(OBJECTS): oldest-source-stamp  ${gtk_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
+$(libgtk_x11_1_3_la_OBJECTS) $(libgtk_linux_fb_1_3_la_OBJECTS) $(libgtk_win32_1_3_la_OBJECTS): ${gtk_built_public_sources}
 
-# initial creation of the real stamp-* files
-gtk.defs gtkmarshalers.h gtktypebuiltins.h:          # never add deps here
-       test -f "$(srcdir)/$(@F)" || touch $(srcdir)/$(@F)
-# normal autogeneration rules
 # all autogenerated files need to be generated in the srcdir,
 # so old versions get remade and are not confused with newer
 # versions in the build dir. thus a development setup requires
 # srcdir to be writable, passing --disable-rebuilds to
 # ../configure will supress all autogeneration rules.
-$(srcdir)/stamp-gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)
-       case @GLIB_MKENUMS@ in                                                                  \
-          .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                     \
-          *) glib_mkenums=@GLIB_MKENUMS@ ;;                                                    \
-       esac;                                                                                   \
-       cd $(srcdir) \
-       && $$glib_mkenums --comments ";; @comment@" \
-                       --fprod "; enumerations from \"@filename@\"\n " \
-                       --vhead "(define-@type@ @EnumName@" \
-                       --vprod "   (@valuenick@ @VALUENAME@)" \
-                       --vtail ")" \
-                       $(gtk_public_h_sources) > xgen-gdef \
-       && cat gtk-boxed.defs >> xgen-gdef \
-       && (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
-       && rm -f xgen-gdef \
-       && echo timestamp > $(@F)
-
-$(srcdir)/stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list gtkmarshalers.h
+$(srcdir)/gtk.defs: @REBUILD@ gtk.defs gtk-boxed.defs $(gtk_public_h_sources)  \
+       case @GLIB_MKENUMS@ in                                                  \
+          .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                             \
+          *) glib_mkenums=@GLIB_MKENUMS@ ;;                                    \
+       esac;                                                                   \
+       cd $(srcdir)                                                            \
+       && $$glib_mkenums --comments ";; @comment@"                             \
+                       --fprod "; enumerations from \"@filename@\"\n "         \
+                       --vhead "(define-@type@ @EnumName@"                     \
+                       --vprod "   (@valuenick@ @VALUENAME@)"                  \
+                       --vtail ")"                                             \
+                       $(gtk_public_h_sources) > xgen-gdef                     \
+       && cat gtk-boxed.defs >> xgen-gdef                                      \
+       && gtk.defs || cp xgen-gdef gtk.defs                                    \
+       && rm -f xgen-gdef
+
+all-local: @REBUILD@ gtk.defs
+
+$(srcdir)/gtkmarshalers.h: stamp-gtkmarshalers.h
+       @true
+stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list
        case @GLIB_GENMARSHAL@ in                                                               \
           .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
           *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
@@ -500,8 +495,8 @@ $(srcdir)/stamp-gtkmarshalers.h: @REBUILD@ gtkmarshalers.list gtkmarshalers.h
        && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >> xgen-gmlh     \
        && (cmp -s xgen-gmlh gtkmarshalers.h || cp xgen-gmlh gtkmarshalers.h)                   \
        && rm -f xgen-gmlh                                                                      \
-       && echo timestamp > $(@F)
-$(srcdir)/gtkmarshalers.c: @REBUILD@ $(srcdir)/stamp-gtkmarshalers.h
+       && echo timestamp > $(@F)       
+$(srcdir)/gtkmarshalers.c: @REBUILD@ gtkmarshalers.list
        case @GLIB_GENMARSHAL@ in                                                               \
           .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
           *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
@@ -509,8 +504,11 @@ $(srcdir)/gtkmarshalers.c: @REBUILD@ $(srcdir)/stamp-gtkmarshalers.h
        cd $(srcdir)                                                                            \
        && $$glib_genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >> xgen-gmlc       \
        && cp xgen-gmlc gtkmarshalers.c                                                         \
-       && rm -f xgen-gmlc 
-$(srcdir)/gtkmarshal.h: @REBUILD@ gtkmarshal.list
+       && rm -f xgen-gmlc
+
+$(srcdir)/gtkmarshal.h: stamp-gtkmarshal.h
+       @true
+stamp-gtkmarshal.h: @REBUILD@ gtkmarshal.list
        case @GLIB_GENMARSHAL@ in                                                               \
           .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
           *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
@@ -519,9 +517,10 @@ $(srcdir)/gtkmarshal.h: @REBUILD@ gtkmarshal.list
        && echo "#ifndef GTK_DISABLE_DEPRECATED" > xgen-gmh                                     \
         && $$glib_genmarshal --prefix=gtk_marshal gtkmarshal.list --header >> xgen-gmh         \
        && echo "#endif /* GTK_DISABLE_DEPRECATED */" >> xgen-gmh                               \
-       && cp xgen-gmh gtkmarshal.h                                                             \
-       && rm -f xgen-gmh 
-$(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.h
+       && (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h)                           \
+       && rm -f xgen-gmh                                                                       \
+       && echo timestamp > $(@F)
+$(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.list
        case @GLIB_GENMARSHAL@ in                                                               \
           .*) glib_genmarshal=`pwd`/@GLIB_GENMARSHAL@ ;;                                       \
           *) glib_genmarshal=@GLIB_GENMARSHAL@ ;;                                              \
@@ -531,37 +530,28 @@ $(srcdir)/gtkmarshal.c: @REBUILD@ gtkmarshal.h
        && cp xgen-gmc gtkmarshal.c                                                             \
        && rm -f xgen-gmc 
 
-$(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs gtktypebuiltins.h
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
-       && (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
+$(srcdir)/gtktypebuiltins.h: stamp-gtktypebuiltins.h
+       @true
+stamp-gtktypebuiltins.h: @REBUILD@ $(gtk_public_h_sources) Makefile
+       ( cd $(srcdir) && glib-mkenums \
+                       --fhead "#ifndef __GTK_TYPE_BUILTINS_H__\n#define __GTK_TYPE_BUILTINS_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
+                       --fprod "/* enumerations from \"@filename@\" */\n" \
+                       --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
+                       --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
+               $(gtk_public_h_sources) ) >> xgen-gtbh \
+       && (cmp -s xgen-gtbh $(srcdir)/gtktypebuiltins.h || cp xgen-gtbh $(srcdir)/gtktypebuiltins.h ) \
        && rm -f xgen-gtbh \
        && echo timestamp > $(@F)
-$(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
-       && cp xgen-gtbvc $(@F) \
-       && rm -f xgen-gtbvc
-$(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk $(srcdir)/stamp-gtk.defs
-       cd $(srcdir) \
-       && LC_ALL=C $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
-       && cp xgen-gtbic $(@F) \
-       && rm -f xgen-gtbic
-$(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ $(gtk_public_h_sources)
-       case @GLIB_MKENUMS@ in                                                                  \
-          .*) glib_mkenums=`pwd`/@GLIB_MKENUMS@ ;;                     \
-          *) glib_mkenums=@GLIB_MKENUMS@ ;;                                                    \
-       esac;                                                                                   \
-       cd $(srcdir) \
-       && $$glib_mkenums \
+$(srcdir)/gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) Makefile
+       ( cd $(srcdir) && glib-mkenums \
+                       --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
                        --fprod "\n/* enumerations from \"@filename@\" */" \
-                       --vhead "static const GtkEnumValue _@enum_name@_values[] = {" \
-                       --vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
-                       --vtail "  { 0, NULL, NULL }\n};" \
-                       $(gtk_public_h_sources) > xgen-gtbec \
-       && cp xgen-gtbec $(@F) \
-       && rm -f xgen-gtbec
-
+                       --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[] = {" \
+                       --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+                       --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
+               $(gtk_public_h_sources) ) > xgen-gtbc \
+       && cp xgen-gtbc $(srcdir)/gtktypebuiltins.c  \
+       && rm -f xgen-gtbc
 
 # target platform:
 lib_LTLIBRARIES = $(gtktargetlib)
@@ -581,10 +571,14 @@ libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
 endif
 EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-linux-fb-1.3.la libgtk-win32-1.3.la
 
-# Install a RC file for the default GTK+ theme
+# Install a RC file for the default GTK+ theme, and key themes
 install-data-local:  install-ms-lib install-libtool-import-lib
        $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
-       $(INSTALL) gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
+       $(INSTALL) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
+       $(INSTALL) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
+       $(INSTALL) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
 
 uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
        rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
@@ -628,6 +622,8 @@ EXTRA_DIST += @STRIP_BEGIN@         \
        gtk-win32.rc            \
        gtk-win32.rc.in         \
        gtkrc.default           \
+       gtkrc.key.default       \
+       gtkrc.key.emacs         \
        makefile.mingw          \
        makefile.mingw.in       \
        makefile.msc            \