-gtktypebuiltins.h: gtk.defs maketypes.awk
- $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
-
-# generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
-gtktypebuiltins_vars.c: gtk.defs maketypes.awk
- $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
-
-# generate type entries for type-id registration
-gtktypebuiltins_ids.c: gtk.defs maketypes.awk
- $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
-
-# generate enum value arrays
-gtktypebuiltins_evals.c: makeenums.pl gtk.defs
- $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c
-
-gtkmarshal.h : gtkmarshal.list
- $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h
-
-gtkmarshal.c : gtkmarshal.list
- $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
-
-gtksignal.obj : gtksignal.c gtkmarshal.c gtkmarshal.h
- $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" gtksignal.c
+# use 'echo' to work around 'command line too long'
+gtktypebuiltins.h: $(gtk_public_h_sources) makefile.msc
+ echo #ifndef __GTK_TYPE_BUILTINS_H__ > gtktypebuiltins.h
+ echo #define __GTK_TYPE_BUILTINS_H__ >> gtktypebuiltins.h
+ echo #include "glib-object.h" >> gtktypebuiltins.h
+ echo G_BEGIN_DECLS >> gtktypebuiltins.h
+ $(PERL) $(GLIB)\gobject\glib-mkenums \
+ --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) >> gtktypebuiltins.h
+
+gtktypebuiltins.c: $(gtk_public_h_sources) makefile.msc
+ $(PERL) $(GLIB)\gobject\glib-mkenums \
+ --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
+ --fprod "\n/* enumerations from \"@filename@\" */" \
+ --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
+ copy xgen-gtbc gtktypebuiltins.c
+
+# private marshalers
+gtkmarshalers.h : gtkmarshalers.list makefile.msc
+ $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >gtkmarshalers.h
+
+gtkmarshalers.c : gtkmarshalers.list makefile.msc
+ $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >gtkmarshalers.c
+
+gtktypefuncs.c : makefile.msc
+ echo /*none*/ > gtktypefuncs.c
+
+gtk-win32.res : gtk-win32.rc
+ rc -DBUILDNUMBER=0 -r -fo gtk-win32.res gtk-win32.rc
+
+# build some static limits to covercome command line too long
+# may also speed up the build
+
+gtk-cell.lib : $(gtk_OBJECTS_cell)
+ lib /out:gtk-cell.lib $(gtk_OBJECTS_cell)
+
+gtk-file.lib : $(gtk_OBJECTS_file)
+ lib /out:gtk-file.lib $(gtk_OBJECTS_file)
+
+gtk-print.lib : $(gtk_OBJECTS_print)
+ lib /out:gtk-print.lib $(gtk_OBJECTS_print)
+
+gtk-recent.lib : $(gtk_OBJECTS_recent)
+ lib /out:gtk-recent.lib $(gtk_OBJECTS_recent)
+
+gtk-text.lib : $(gtk_OBJECTS_text)
+ lib /out:gtk-text.lib $(gtk_OBJECTS_text)
+
+gtk-core.lib : $(gtk_OBJECTS)
+ lib /out:gtk-core.lib $(gtk_OBJECTS)
+
+gtk_SUBLIBS = \
+ gtk-cell.lib \
+ gtk-file.lib \
+ gtk-print.lib \
+ gtk-recent.lib \
+ gtk-text.lib \
+ gtk-core.lib