1## Makefile for building the gtk DLL with Microsoft C
2## Use: nmake -f makefile.msc
3
4## There is no install target, you have to decide where and
5## how to install for yourself.
6
7TOP = ..\..
8!INCLUDE $(TOP)/glib/build/win32/make.msc
9
10################################################################
11
12# Not the real version but the one used in the DLL names
13GTK_VER = 3.0
14
15
16GDK_LIBS = ../gdk/gdk-win32-$(GTK_VER).lib
17GTK_LIBS = gtk-win32-$(GTK_VER).lib
18GTK_BINARY_VERSION = 3.0.0
19
20# Perl and awk are needed to generate some source files.
21# These generated source files are distribuyted with the Win32 GTk+ source
22# distributions, so don't worry if you don't have perl and awk.
23PERL = perl
24AWK = gawk
25
26INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. -I ../gdk $(GDK_PIXBUF_CFLAGS)
27DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) \
28		$(INTL_CFLAGS) $(ATK_CFLAGS) $(CAIRO_CFLAGS)
29LDFLAGS = $(ATK_LIBS) /link /machine:ix86 $(LINKDEBUG)
30# Some files use near as an identifier
31# Don't define GTK_COMPILATION here, because it's for gtk-x.x.dll only
32DEFINES = \
33	-DHAVE_CONFIG_H \
34	$(G_DEBUGGING) -DGTK_DISABLE_COMPAT_H -DG_LOG_DOMAIN=\"Gtk\" -Dnear=xxnear \
35	-DPANGO_ENABLE_BACKEND \
36	-DGTK_VERSION=\"$(GTK_VER)\" -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
37	-DGTK_HOST=\"win32\" \
38	-DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED \
39	-DGTK_PRINT_BACKENDS=\"file,lpr\" \
40	-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED \
41	-DGTK_PRINT_PREVIEW_COMMAND="\"evince --unlink-tempfile --preview %f\"" \
42	-DGTK_LIBDIR=\"/magic/path/replaced/at/runtime\"
43
44EXTRALIBS = \
45	$(GDK_LIBS) \
46	$(GDK_PIXBUF_LIBS) \
47	$(PANGO_LIBS) $(INTL_LIBS) \
48	$(GLIB_LIBS) $(GMODULE_LIBS) $(GIO_LIBS) \
49	$(CAIRO_LIBS) $(PANGOCAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) \
50
51TOUCH = copy makefile.msc+nul
52
53gtkbuiltincache.h: gtk-update-icon-cache.exe
54	del gtkicontheme.obj
55	gtk-update-icon-cache --force --ignore-theme-index 	\
56	   --source builtin_icons stock-icons > gtkbuiltincache.h
57
58GENERATED = \
59	gtktypebuiltins.h gtktypebuiltins.c \
60	gtkmarshalers.h gtkmarshalers.c \
61	gtk.def gtktypefuncs.c
62
63all :						\
64	..\config.h				\
65	$(GENERATED)				\
66	gtk-update-icon-cache.exe		\
67	gtkbuiltincache.h			\
68	libgtk-win32-$(GTK_VER)-0.dll		\
69	gtk-query-immodules-$(GTK_VER).exe \
70#	gtk-win32-$(GTK_VER)s.lib \
71#	gtk-x11-$(GTK_VER).dll
72
73gtk_OBJECTS_cell = \
74	gtkcellarea.obj \
75	gtkcellareabox.obj \
76	gtkcellareaboxcontext.obj \
77	gtkcellareacontext.obj \
78	gtkcelleditable.obj \
79	gtkcelllayout.obj \
80	gtkcellrenderer.obj \
81	gtkcellrendereraccel.obj \
82	gtkcellrenderercombo.obj \
83	gtkcellrendererpixbuf.obj \
84	gtkcellrendererprogress.obj \
85	gtkcellrendererspin.obj	\
86	gtkcellrendererspinner.obj \
87	gtkcellrenderertext.obj \
88	gtkcellrenderertoggle.obj \
89	gtkcellview.obj \
90	gtkliststore.obj \
91	gtktreednd.obj \
92	gtktreemenu.obj \
93	gtktreemodel.obj \
94	gtktreemodelfilter.obj \
95	gtktreemodelsort.obj \
96	gtktreeselection.obj \
97	gtktreesortable.obj \
98	gtktreestore.obj \
99	gtktreeview.obj \
100	gtktreeviewcolumn.obj \
101
102gtk_OBJECTS_file = \
103	gtkfilechooser.obj \
104	gtkfilechooserbutton.obj \
105	gtkfilechooserdefault.obj \
106	gtkfilechooserdialog.obj \
107	gtkfilechooserembed.obj \
108	gtkfilechooserentry.obj \
109#	gtkfilechoosersettings.obj \
110	gtkfilechooserutils.obj \
111	gtkfilechooserwidget.obj \
112	gtkfilefilter.obj \
113	gtkfilesystem.obj \
114	gtkfilesystemmodel.obj \
115
116gtk_OBJECTS_print = \
117	gtkprint-win32.obj \
118	gtkprintcontext.obj \
119	gtkprintoperation-win32.obj \
120	gtkprintoperation.obj \
121	gtkprintoperationpreview.obj \
122	gtkprintsettings.obj \
123	gtkprintutils.obj \
124
125gtk_OBJECTS_text = \
126	gtktextattributes.obj \
127	gtktextbtree.obj \
128	gtktextbuffer.obj \
129	gtktextbufferrichtext.obj \
130	gtktextbufferserialize.obj \
131	gtktextchild.obj \
132	gtktextdisplay.obj \
133	gtktextiter.obj \
134	gtktextlayout.obj \
135	gtktextmark.obj \
136	gtktextsegment.obj \
137	gtktexttag.obj \
138	gtktexttagtable.obj \
139	gtktexttypes.obj \
140	gtktextutil.obj	\
141	gtktextview.obj \
142
143gtk_OBJECTS_recent = \
144	gtkrecentaction.obj \
145	gtkrecentchooserdefault.obj \
146	gtkrecentchooserdialog.obj \
147	gtkrecentchoosermenu.obj \
148	gtkrecentchooserwidget.obj \
149	gtkrecentchooserutils.obj \
150	gtkrecentchooser.obj \
151	gtkrecentfilter.obj \
152	gtkrecentmanager.obj \
153
154gtk_OBJECTS = \
155	fnmatch.obj \
156	gtk9slice.obj \
157	gtkaboutdialog.obj \
158	gtkaccelgroup.obj \
159	gtkaccellabel.obj \
160	gtkaccelmap.obj	\
161	gtkaccessible.obj \
162	gtkaction.obj \
163	gtkactiongroup.obj \
164	gtkactivatable.obj \
165	gtkadjustment.obj \
166	gtkalignment.obj \
167	gtkanimationdescription.obj \
168	gtkappchooser.obj \
169	gtkappchooserbutton.obj \
170	gtkappchooserdialog.obj \
171	gtkappchoosermodule.obj \
172	gtkappchooseronline.obj \
173	gtkappchooseronlinepk.obj \
174	gtkappchooserwidget.obj \
175	gtkapplication.obj \
176	gtkarrow.obj \
177	gtkaspectframe.obj \
178	gtkassistant.obj \
179	gtkbin.obj \
180	gtkbindings.obj \
181	gtkbbox.obj \
182	gtkbox.obj \
183	gtkborder.obj \
184	gtkbuildable.obj \
185	gtkbuilder.obj \
186	gtkbuilderparser.obj \
187	gtkbutton.obj \
188	gtkcalendar.obj \
189	gtkcheckbutton.obj \
190	gtkcheckmenuitem.obj \
191	gtkclipboard.obj \
192	gtkcolorbutton.obj \
193	gtkcolorsel.obj \
194	gtkcolorseldialog.obj \
195	gtkcombobox.obj	\
196	gtkcomboboxtext.obj \
197	gtkcontainer.obj \
198	gtkcssprovider.obj \
199	gtkdialog.obj \
200	gtkdnd.obj \
201	gtkdrawingarea.obj \
202	gtkeditable.obj \
203	gtkentry.obj \
204	gtkentrybuffer.obj \
205	gtkentrycompletion.obj \
206	gtkeventbox.obj \
207	gtkexpander.obj \
208	gtkfixed.obj \
209	gtkfontsel.obj \
210	gtkfontbutton.obj \
211	gtkframe.obj \
212	gtkgradient.obj \
213	gtkgrid.obj \
214	gtkhandlebox.obj \
215	gtkhbbox.obj \
216	gtkhbox.obj \
217	gtkhpaned.obj \
218	gtkhscale.obj \
219	gtkhscrollbar.obj \
220	gtkhseparator.obj \
221	gtkhsv.obj \
222	gtkiconcache.obj \
223	gtkiconcachevalidator.obj \
224	gtkiconfactory.obj \
225	gtkicontheme.obj \
226	gtkiconview.obj \
227	gtkimage.obj \
228	gtkimagemenuitem.obj \
229	gtkimcontext.obj \
230	gtkimcontextsimple.obj \
231	gtkimmodule.obj	\
232	gtkimmulticontext.obj \
233	gtkinfobar.obj \
234	gtkinvisible.obj \
235	gtkkeyhash.obj	\
236	gtklabel.obj \
237	gtklayout.obj \
238	gtklinkbutton.obj \
239	gtkmain.obj \
240	gtkmarshalers.obj \
241	gtkmenu.obj \
242	gtkmenubar.obj \
243	gtkmenuitem.obj \
244	gtkmenushell.obj \
245	gtkmenutoolbutton.obj \
246	gtkmessagedialog.obj \
247	gtkmisc.obj \
248	gtkmnemonichash.obj \
249	gtkmodifierstyle.obj \
250	gtkmodules.obj \
251	gtkmountoperation.obj \
252	gtkmountoperation-stub.obj \
253	gtknotebook.obj \
254	gtknumerableicon.obj \
255	gtkoffscreenwindow.obj \
256	gtkorientable.obj \
257	gtkpagesetup.obj \
258	gtkpaned.obj \
259	gtkpango.obj \
260	gtkpapersize.obj \
261	gtkpathbar.obj \
262	gtkprogressbar.obj \
263	gtkquery.obj \
264	gtkradioaction.obj \
265	gtkradiobutton.obj \
266	gtkradiotoolbutton.obj \
267	gtkradiomenuitem.obj \
268	gtkrange.obj \
269	gtkrbtree.obj \
270	gtkrc.obj \
271	gtkscale.obj \
272	gtkscalebutton.obj \
273	gtkscrollable.obj \
274	gtkscrollbar.obj \
275	gtkscrolledwindow.obj \
276	gtksearchengine.obj \
277	gtksearchenginebeagle.obj \
278	gtksearchenginesimple.obj \
279	gtksearchenginetracker.obj \
280	gtkselection.obj \
281	gtkseparator.obj \
282	gtkseparatormenuitem.obj \
283	gtkseparatortoolitem.obj \
284	gtksettings.obj \
285	gtkshow.obj \
286	gtkstacksidebar.obj \
287	gtksizegroup.obj \
288	gtksizerequest.obj \
289	gtkspinbutton.obj \
290	gtkspinner.obj \
291	gtkstatusicon.obj \
292	gtkstyle.obj \
293	gtkstylecontext.obj \
294	gtkstyleproperties.obj \
295	gtkstyleprovider.obj \
296	gtkstatusbar.obj \
297	gtkstock.obj \
298	gtkswitch.obj \
299	gtksymboliccolor.obj \
300	gtktable.obj \
301	gtktearoffmenuitem.obj \
302	gtktestutils.obj \
303	gtkthemingengine.obj \
304	gtktimeline.obj \
305	gtktoggleaction.obj \
306	gtktogglebutton.obj \
307	gtktoggletoolbutton.obj \
308	gtktoolbar.obj \
309	gtktoolbutton.obj \
310	gtktoolitem.obj \
311	gtktoolitemgroup.obj \
312	gtktoolpalette.obj \
313	gtktoolshell.obj \
314	gtktooltip.obj \
315	gtktreedatalist.obj \
316	gtktypebuiltins.obj \
317	gtkuimanager.obj \
318	gtkvbbox.obj \
319	gtkvbox.obj \
320	gtkviewport.obj \
321	gtkvolumebutton.obj \
322	gtkvpaned.obj \
323	gtkvscale.obj \
324	gtkvscrollbar.obj \
325	gtkvseparator.obj \
326	gtkwidget.obj \
327	gtkwidgetpath.obj \
328	gtkwin32embed.obj \
329	gtkwin32embedwidget.obj \
330	gtkwindow.obj \
331#	gtkwrapbox.obj \
332
333# Source headers which are non-autogenerated headers
334gtk_public_h_sources = 		\
335	gtk.h			\
336	gtkaboutdialog.h	\
337	gtkaccelgroup.h		\
338	gtkaccellabel.h		\
339	gtkaccelmap.h		\
340	gtkaccessible.h		\
341	gtkaction.h		\
342	gtkactiongroup.h	\
343	gtkactivatable.h	\
344	gtkadjustment.h		\
345	gtkalignment.h		\
346	gtkappchooser.h		\
347	gtkappchooserbutton.h	\
348	gtkappchooserdialog.h	\
349	gtkappchooserwidget.h	\
350	gtkapplication.h	\
351	gtkarrow.h		\
352	gtkaspectframe.h	\
353	gtkassistant.h		\
354	gtkbbox.h		\
355	gtkbin.h		\
356	gtkbindings.h		\
357	gtkborder.h		\
358	gtkbox.h		\
359	gtkbuilder.h		\
360	gtkbuildable.h		\
361	gtkbutton.h		\
362	gtkcalendar.h		\
363	gtkcellarea.h		\
364	gtkcellareacontext.h	\
365	gtkcellareabox.h	\
366	gtkcelleditable.h	\
367	gtkcelllayout.h		\
368	gtkcellrenderer.h	\
369	gtkcellrendereraccel.h	\
370	gtkcellrenderercombo.h	\
371	gtkcellrendererpixbuf.h	\
372	gtkcellrendererprogress.h \
373	gtkcellrendererspin.h	\
374	gtkcellrendererspinner.h\
375	gtkcellrenderertext.h	\
376	gtkcellrenderertoggle.h	\
377	gtkcellview.h		\
378	gtkcheckbutton.h	\
379	gtkcheckmenuitem.h	\
380	gtkclipboard.h		\
381	gtkcolorbutton.h	\
382	gtkcolorsel.h		\
383	gtkcolorseldialog.h	\
384	gtkcombobox.h		\
385	gtkcomboboxtext.h	\
386	gtkcontainer.h		\
387	gtkcssprovider.h	\
388	gtkdebug.h		\
389	gtkdialog.h		\
390	gtkdnd.h		\
391	gtkdrawingarea.h	\
392	gtkeditable.h		\
393	gtkentry.h		\
394	gtkentrybuffer.h	\
395	gtkentrycompletion.h	\
396	gtkenums.h		\
397	gtkeventbox.h		\
398	gtkexpander.h		\
399	gtkfilechooser.h	\
400	gtkfilechooserbutton.h	\
401	gtkfilechooserdialog.h	\
402	gtkfilechooserwidget.h	\
403	gtkfilefilter.h		\
404	gtkfixed.h		\
405	gtkfontbutton.h		\
406	gtkfontsel.h		\
407	gtkframe.h		\
408	gtkgradient.h		\
409	gtkgrid.h		\
410	gtkhandlebox.h		\
411	gtkhbbox.h		\
412	gtkhbox.h		\
413	gtkhpaned.h		\
414	gtkhscale.h		\
415	gtkhscrollbar.h		\
416	gtkhseparator.h		\
417	gtkhsv.h		\
418	gtkiconfactory.h	\
419	gtkicontheme.h		\
420	gtkiconview.h		\
421	gtkimage.h		\
422	gtkimagemenuitem.h	\
423	gtkimcontext.h		\
424	gtkimcontextsimple.h	\
425	gtkimmodule.h		\
426	gtkimmulticontext.h	\
427	gtkinfobar.h		\
428	gtkinvisible.h		\
429	gtklabel.h		\
430	gtklayout.h		\
431	gtklinkbutton.h		\
432	gtkliststore.h		\
433	gtkmain.h		\
434	gtkmenu.h		\
435	gtkmenubar.h		\
436	gtkmenuitem.h		\
437	gtkmenushell.h		\
438	gtkmenutoolbutton.h	\
439	gtkmessagedialog.h	\
440	gtkmisc.h		\
441	gtkmodules.h		\
442	gtkmountoperation.h	\
443	gtknotebook.h		\
444	gtkoffscreenwindow.h	\
445	gtkorientable.h		\
446	gtkpagesetup.h		\
447	gtkpaned.h		\
448	gtkpapersize.h		\
449	gtkplug.h		\
450	gtkprintcontext.h	\
451	gtkprintoperation.h	\
452	gtkprintoperationpreview.h \
453	gtkprintsettings.h	\
454	gtkprogressbar.h	\
455	gtkradioaction.h	\
456	gtkradiobutton.h	\
457	gtkradiomenuitem.h	\
458	gtkradiotoolbutton.h	\
459	gtkrange.h		\
460	gtkrc.h			\
461	gtkrecentaction.h	\
462	gtkrecentchooser.h	\
463	gtkrecentchooserdialog.h \
464	gtkrecentchoosermenu.h	\
465	gtkrecentchooserwidget.h \
466	gtkrecentfilter.h	\
467	gtkrecentmanager.h	\
468	gtkscale.h		\
469	gtkscalebutton.h	\
470	gtkscrollable.h		\
471	gtkscrollbar.h		\
472	gtkscrolledwindow.h	\
473	gtkselection.h		\
474	gtkseparator.h		\
475	gtkseparatormenuitem.h	\
476	gtkseparatortoolitem.h	\
477	gtksettings.h		\
478	gtkshow.h		\
479	gtkstacksidebar.h	\
480	gtksizegroup.h		\
481	gtksizerequest.h	\
482	gtksocket.h		\
483	gtkspinbutton.h		\
484	gtkspinner.h		\
485	gtkstatusbar.h		\
486	gtkstatusicon.h		\
487	gtkstock.h		\
488	gtkstylecontext.h	\
489	gtkstyleproperties.h	\
490	gtkstyleprovider.h	\
491	gtkstyle.h		\
492	gtkswitch.h		\
493	gtksymboliccolor.h	\
494	gtktable.h		\
495	gtktearoffmenuitem.h	\
496	gtktestutils.h		\
497	gtktextbuffer.h		\
498	gtktextbufferrichtext.h	\
499	gtktextchild.h		\
500	gtktextdisplay.h	\
501	gtktextiter.h		\
502	gtktextmark.h		\
503	gtktexttag.h		\
504	gtktexttagtable.h	\
505	gtktextview.h		\
506	gtkthemingengine.h	\
507	gtktoggleaction.h	\
508	gtktogglebutton.h	\
509	gtktoggletoolbutton.h	\
510	gtktoolbar.h		\
511	gtktoolbutton.h		\
512	gtktoolitem.h		\
513	gtktoolitemgroup.h	\
514	gtktoolpalette.h	\
515	gtktoolshell.h		\
516	gtktooltip.h		\
517	gtktreednd.h		\
518	gtktreemodel.h		\
519	gtktreemodelfilter.h	\
520	gtktreemodelsort.h	\
521	gtktreeselection.h	\
522	gtktreesortable.h	\
523	gtktreestore.h		\
524	gtktreeview.h		\
525	gtktreeviewcolumn.h	\
526	gtkuimanager.h		\
527	gtkvbbox.h		\
528	gtkvbox.h		\
529	gtkviewport.h		\
530	gtkvolumebutton.h	\
531	gtkvpaned.h		\
532	gtkvscale.h		\
533	gtkvscrollbar.h		\
534	gtkvseparator.h		\
535	gtkwidget.h		\
536	gtkwidgetpath.h		\
537	gtkwindow.h
538
539# these aren't use here, but listed for reference
540gtk_extra_sources = \
541	gtkversion.h		\
542	gtk-boxed.defs		\
543	gtkmarshal.list		\
544
545..\config.h : ..\config.h.win32
546	copy ..\config.h.win32 ..\config.h
547
548gtk.def: gtk.symbols makefile.msc
549	echo EXPORTS > gtk.def
550	cl /EP -DG_OS_WIN32 -DGDK_WINDOWING_WIN32 \
551		-DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \
552		-DG_GNUC_PRINTF=;G_GNUC_PRINTF gtk.symbols >> gtk.def
553
554# generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
555# use 'echo' to work around 'command line too long'
556gtktypebuiltins.h: $(gtk_public_h_sources) makefile.msc
557	echo #ifndef __GTK_TYPE_BUILTINS_H__ > gtktypebuiltins.h
558	echo #define __GTK_TYPE_BUILTINS_H__ >> gtktypebuiltins.h
559	echo #include "glib-object.h" >> gtktypebuiltins.h
560	echo G_BEGIN_DECLS >> gtktypebuiltins.h
561	$(PERL) $(GLIB)\gobject\glib-mkenums \
562		--fprod "/* enumerations from \"@filename@\" */\n" \
563		--vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
564		--ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
565		$(gtk_public_h_sources) >> gtktypebuiltins.h
566
567gtktypebuiltins.c: $(gtk_public_h_sources) makefile.msc
568	$(PERL) $(GLIB)\gobject\glib-mkenums \
569		--fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
570		--fprod "\n/* enumerations from \"@filename@\" */" \
571		--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[] = {" \
572		--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
573		--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
574		$(gtk_public_h_sources) > xgen-gtbc
575	copy xgen-gtbc gtktypebuiltins.c
576
577# private marshalers
578gtkmarshalers.h : gtkmarshalers.list makefile.msc
579	$(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >gtkmarshalers.h
580
581gtkmarshalers.c : gtkmarshalers.list makefile.msc
582	$(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >gtkmarshalers.c
583
584gtktypefuncs.c : makefile.msc
585	echo /*none*/ > gtktypefuncs.c
586
587gtk-win32.res : gtk-win32.rc
588	rc -DBUILDNUMBER=0 -r -fo gtk-win32.res gtk-win32.rc
589
590# build some static limits to covercome command line too long
591# may also speed up the build
592
593gtk-cell.lib : $(gtk_OBJECTS_cell)
594	lib /out:gtk-cell.lib $(gtk_OBJECTS_cell)
595
596gtk-file.lib : $(gtk_OBJECTS_file)
597	lib /out:gtk-file.lib $(gtk_OBJECTS_file)
598
599gtk-print.lib : $(gtk_OBJECTS_print)
600	lib /out:gtk-print.lib $(gtk_OBJECTS_print)
601
602gtk-recent.lib : $(gtk_OBJECTS_recent)
603	lib /out:gtk-recent.lib $(gtk_OBJECTS_recent)
604
605gtk-text.lib : $(gtk_OBJECTS_text)
606	lib /out:gtk-text.lib $(gtk_OBJECTS_text)
607
608gtk-core.lib : $(gtk_OBJECTS)
609	lib /out:gtk-core.lib $(gtk_OBJECTS)
610
611gtk_SUBLIBS = \
612	gtk-cell.lib \
613	gtk-file.lib \
614	gtk-print.lib \
615	gtk-recent.lib \
616	gtk-text.lib \
617	gtk-core.lib
618
619#
620# Linking:
621#
622libgtk-win32-$(GTK_VER)-0.dll : $(gtk_SUBLIBS) gtk.def gtk-win32.res
623	$(CC) $(CFLAGS) -LD -Fm -Fe$@ $(gtk_SUBLIBS) gtk-win32.res $(EXTRALIBS) \
624	gdi32.lib user32.lib advapi32.lib wsock32.lib shell32.lib ole32.lib \
625	comdlg32.lib winspool.lib comctl32.lib \
626	$(LDFLAGS) /implib:gtk-win32-$(GTK_VER).lib /def:gtk.def
627
628gtk-win32-$(GTK_VER)s.lib : $(gtk_OBJECTS)
629	lib /out:gtk-win32-$(GTK_VER)s.lib $(gtk_OBJECTS)
630
631gtk-query-immodules-$(GTK_VER).exe : queryimmodules.obj
632	$(CC) $(CFLAGS) -Fe$@ queryimmodules.obj $(GTK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
633
634gtk-update-icon-cache.exe : updateiconcache.obj
635	$(CC) $(CFLAGS) -Fe$@ updateiconcache.obj $(GDK_PIXBUF_LIBS) $(GLIB_LIBS) $(INTL_LIBS) $(PANGO_LIBS) $(LDFLAGS)
636
637gtk-x11-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
638	$(CC) $(CFLAGS) -LD -Fm -Fegtk-x11-$(GTK_VER).dll $(gtk_OBJECTS) ../gdk/gdk-x11-$(GTK_VER).lib $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) gdi32.lib user32.lib advapi32.lib $(LDFLAGS) /def:gtk.def
639
640# General rule for compiling the objects into the DLL
641.c.obj :
642	$(CC) $(CFLAGS) -GF -Zm400 -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
643
644$(EXAMPLE).obj : ..\examples\$(EXAMPLE)\$(EXAMPLE).c
645	$(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"$(EXAMPLE)\" ..\examples\$(EXAMPLE)\$(EXAMPLE).c
646
647$(EXAMPLE).exe : $(EXAMPLE).obj
648	$(CC) $(CFLAGS) $(EXAMPLE).obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
649
650