]> Pileus Git - ~andy/gtk/blob - gtk/makefile.msc.in
gtk/gtkcombobox.c : prototype cell_view_sync_cells() before first usage
[~andy/gtk] / gtk / makefile.msc.in
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
7 TOP = ..\..
8 !INCLUDE $(TOP)/glib/build/win32/make.msc
9
10 ################################################################
11
12 # Possibly override versions from build/win32/module.defs
13 GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
14 GDK_PIXBUF_VER = @GDK_PIXBUF_MAJOR@.@GDK_PIXBUF_MINOR@
15
16
17 GDK_LIBS = ../gdk/gdk-win32-$(GTK_VER).lib
18 GTK_LIBS = gtk-win32-$(GTK_VER).lib
19 GDK_PIXBUF_LIBS = ../gdk-pixbuf/gdk_pixbuf-$(GDK_PIXBUF_VER).lib
20 GTK_BINARY_VERSION = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@LT_CURRENT@
21
22 # Perl and awk are needed to generate some source files.
23 # These generated source files are distribuyted with the Win32 GTk+ source
24 # distributions, so don't worry if you don't have perl and awk.
25 PERL = perl
26 AWK = gawk
27
28 INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. -I ../gdk -I ../gdk-pixbuf
29 DEPCFLAGS = $(PANGO_CFLAGS) $(GLIB_CFLAGS) $(LIBICONV_CFLAGS) \
30                 $(INTL_CFLAGS) $(ATK_CFLAGS)
31 LDFLAGS = $(ATK_LIBS) /link /machine:ix86 $(LINKDEBUG)
32 # Some files use near as an identifier
33 # Don't define GTK_COMPILATION here, because it's for gtk-x.x.dll only
34 DEFINES = $(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
40 TOUCH = copy makefile.msc+nul
41
42 gtk-stocks-icons :
43         cd stock-icons
44         nmake -nologo -f makefile.msc
45         cd ..
46
47 all :                                           \
48         ..\config.h                             \
49         generated                               \
50         gtk-stocks-icons                        \
51         libgtk-win32-$(GTK_VER)-0.dll           \
52         gtk-query-immodules-$(GTK_VER).exe \
53 #       gtk-win32-$(GTK_VER)s.lib \
54 #       gtk-x11-$(GTK_VER).dll
55
56 gtk_OBJECTS =                                   \
57         fnmatch.obj                             \
58         gtkaccelgroup.obj                       \
59         gtkaccellabel.obj                       \
60         gtkaccelmap.obj \
61         gtkaccessible.obj \
62         gtkaction.obj   \
63         gtkactiongroup.obj      \
64         gtkadjustment.obj                       \
65         gtkalignment.obj                        \
66         gtkarrow.obj                            \
67         gtkaspectframe.obj                      \
68         gtkbin.obj                              \
69         gtkbindings.obj                         \
70         gtkbbox.obj                             \
71         gtkbox.obj                              \
72         gtkbutton.obj                           \
73         gtkcalendar.obj                         \
74         gtkcelleditable.obj                     \
75         gtkcelllayout.obj                       \
76         gtkcellrenderer.obj                     \
77         gtkcellrenderertext.obj                 \
78         gtkcellrenderertoggle.obj               \
79         gtkcellrendererpixbuf.obj               \
80         gtkcellrendererseptext.obj              \
81         gtkcellview.obj         \
82         gtkcellviewmenuitem.obj \
83         gtkcheckbutton.obj                      \
84         gtkcheckmenuitem.obj                    \
85         gtkclipboard.obj                        \
86         gtkclist.obj                            \
87         gtkcolorbutton.obj                              \
88         gtkcolorsel.obj                         \
89         gtkcolorseldialog.obj                   \
90         gtkcombo.obj                            \
91         gtkcombobox.obj                 \
92         gtkcomboboxentry.obj            \
93         gtkcontainer.obj                        \
94         gtkctree.obj                            \
95         gtkcurve.obj                            \
96         gtkdialog.obj                           \
97         gtkdnd.obj                              \
98         gtkdrawingarea.obj                      \
99         gtkeditable.obj                         \
100         gtkentry.obj                            \
101         gtkentrycompletion.obj          \
102         gtkeventbox.obj                         \
103         gtkexpander.obj                 \
104         gtkfilechooser.obj                      \
105         gtkfilechooserdefault.obj                       \
106         gtkfilechooserdialog.obj                        \
107         gtkfilechooserembed.obj         \
108         gtkfilechooserentry.obj                 \
109         gtkfilechooserutils.obj                 \
110         gtkfilechooserwidget.obj                        \
111         gtkfilefilter.obj                       \
112         gtkfilesel.obj                          \
113         gtkfilesystem.obj                               \
114         gtkfilesystemmodel.obj                          \
115         gtkfilesystemwin32.obj                          \
116         gtkfixed.obj                            \
117         gtkfontsel.obj                          \
118         gtkfontbutton.obj                               \
119         gtkframe.obj                            \
120         gtkgamma.obj                            \
121         gtkgc.obj                               \
122         gtkhandlebox.obj                        \
123         gtkhbbox.obj                            \
124         gtkhbox.obj                             \
125         gtkhpaned.obj                           \
126         gtkhruler.obj                           \
127         gtkhscale.obj                           \
128         gtkhscrollbar.obj                       \
129         gtkhseparator.obj                       \
130         gtkhsv.obj                              \
131         gtkiconfactory.obj                      \
132         gtkicontheme.obj                        \
133         gtkiconthemeparser.obj                  \
134         gtkimage.obj                            \
135         gtkimagemenuitem.obj    \
136         gtkimcontext.obj                        \
137         gtkimcontextsimple.obj                  \
138         gtkimmodule.obj                         \
139         gtkimmulticontext.obj                   \
140         gtkinputdialog.obj                      \
141         gtkinvisible.obj                        \
142         gtkitem.obj                             \
143         gtkitemfactory.obj                      \
144         gtkkeyhash.obj  \
145         gtklabel.obj                            \
146         gtklayout.obj                           \
147         gtklist.obj                             \
148         gtklistitem.obj                         \
149         gtkliststore.obj                                \
150         gtkmain.obj                             \
151         gtkmarshalers.obj               \
152         gtkmarshal.obj          \
153         gtkmenu.obj                             \
154         gtkmenubar.obj                          \
155         gtkmenuitem.obj                         \
156         gtkmenushell.obj                        \
157         gtkmessagedialog.obj                    \
158         gtkmisc.obj                             \
159         gtknotebook.obj                         \
160         gtkobject.obj                           \
161         gtkoldeditable.obj                      \
162         gtkoptionmenu.obj                       \
163         gtkpaned.obj                            \
164         gtkpathbar.obj                          \
165         gtkpixmap.obj                           \
166 #       gtkplug.obj                             \
167         gtkpreview.obj                          \
168         gtkprogress.obj                         \
169         gtkprogressbar.obj                      \
170         gtkradioaction.obj                      \
171         gtkradiobutton.obj                      \
172         gtkradiotoolbutton.obj                  \
173         gtkradiomenuitem.obj                    \
174         gtkrange.obj                            \
175         gtkrbtree.obj   \
176         gtkrc.obj                               \
177         gtkruler.obj                            \
178         gtkscale.obj                            \
179         gtkscrollbar.obj                        \
180         gtkscrolledwindow.obj                   \
181         gtkselection.obj                        \
182         gtkseparator.obj                        \
183         gtkseparatormenuitem.obj \
184         gtkseparatortoolitem.obj \
185         gtksettings.obj \
186         gtksignal.obj                           \
187         gtksizegroup.obj \
188 #       gtksocket.obj                           \
189         gtkspinbutton.obj                       \
190         gtkstyle.obj                            \
191         gtkstatusbar.obj                        \
192         gtkstock.obj                            \
193         gtktable.obj                            \
194         gtktearoffmenuitem.obj                  \
195         gtktext.obj                             \
196         gtktextbtree.obj                        \
197         gtktextbuffer.obj                       \
198         gtktextchild.obj                        \
199         gtktextdisplay.obj                      \
200         gtktextiter.obj                         \
201         gtktextlayout.obj                       \
202         gtktextmark.obj                         \
203         gtktextsegment.obj                      \
204         gtktexttag.obj                          \
205         gtktexttagtable.obj                     \
206         gtktexttypes.obj                        \
207         gtktextutil.obj \
208         gtktextview.obj                         \
209         gtkthemes.obj                           \
210         gtktipsquery.obj                        \
211         gtktoggleaction.obj                     \
212         gtktogglebutton.obj                     \
213         gtktoggletoolbutton.obj                 \
214         gtktoolbar.obj                          \
215         gtktoolbutton.obj                               \
216         gtktoolitem.obj                         \
217         gtktooltips.obj                         \
218         gtktree.obj                             \
219         gtktreedatalist.obj     \
220         gtktreednd.obj                          \
221         gtktreeitem.obj                         \
222         gtktreemodel.obj                        \
223         gtktreemodelfilter.obj                  \
224         gtktreemodelsort.obj                    \
225         gtktreeselection.obj                    \
226         gtktreesortable.obj \
227         gtktreestore.obj                        \
228         gtktreeview.obj                 \
229         gtktreeviewcolumn.obj                   \
230         gtktypeutils.obj                        \
231         gtktypebuiltins.obj \
232         gtkuimanager.obj        \
233         gtkvbbox.obj                            \
234         gtkvbox.obj                             \
235         gtkviewport.obj                         \
236         gtkvpaned.obj                           \
237         gtkvruler.obj                           \
238         gtkvscale.obj                           \
239         gtkvscrollbar.obj                       \
240         gtkvseparator.obj                       \
241         gtkwidget.obj                           \
242         gtkwindow.obj                           \
243         gtkwindow-decorate.obj
244
245 # Source headers which are non-autogenerated headers
246 gtk_public_h_sources =          \
247         gtk.h                   \
248         gtkaccelgroup.h         \
249         gtkaccellabel.h         \
250         gtkaccelmap.h           \
251         gtkaccessible.h \
252         gtkaction.h             \
253         gtkactiongroup.h        \
254         gtkadjustment.h         \
255         gtkalignment.h          \
256         gtkarrow.h              \
257         gtkaspectframe.h        \
258         gtkbbox.h               \
259         gtkbin.h                \
260         gtkbindings.h           \
261         gtkbox.h                \
262         gtkbutton.h             \
263         gtkcalendar.h           \
264         gtkcelleditable.h       \
265         gtkcelllayout.h         \
266         gtkcellrenderer.h       \
267         gtkcellrendererpixbuf.h \
268         gtkcellrenderertext.h   \
269         gtkcellrenderertoggle.h \
270         gtkcheckbutton.h        \
271         gtkcheckmenuitem.h      \
272         gtkclipboard.h          \
273         gtkclist.h              \
274         gtkclipboard.h          \
275         gtkcolorbutton.h        \
276         gtkcolorsel.h           \
277         gtkcolorseldialog.h     \
278         gtkcombo.h              \
279         gtkcombobox.h           \
280         gtkcomboboxentry.h      \
281         gtkcontainer.h          \
282         gtkctree.h              \
283         gtkcurve.h              \
284         gtkdebug.h              \
285         gtkdialog.h             \
286         gtkdnd.h                \
287         gtkdrawingarea.h        \
288         gtkeditable.h           \
289         gtkentry.h              \
290         gtkentrycompletion.h    \
291         gtkenums.h              \
292         gtkeventbox.h           \
293         gtkexpander.h           \
294         gtkfilechooser.h        \
295         gtkfilechooserdialog.h  \
296         gtkfilechooserwidget.h  \
297         gtkfilefilter.h         \
298         gtkfilesel.h            \
299         gtkfixed.h              \
300         gtkfontbutton.h         \
301         gtkfontsel.h            \
302         gtkframe.h              \
303         gtkgamma.h              \
304         gtkgc.h                 \
305         gtkhandlebox.h          \
306         gtkhbbox.h              \
307         gtkhbox.h               \
308         gtkhpaned.h             \
309         gtkhruler.h             \
310         gtkhscale.h             \
311         gtkhscrollbar.h         \
312         gtkhseparator.h         \
313         gtkhsv.h                \
314         gtkiconfactory.h        \
315         gtkicontheme.h          \
316         gtkimage.h              \
317         gtkimagemenuitem.h      \
318         gtkimcontext.h          \
319         gtkimcontextsimple.h    \
320         gtkimmodule.h           \
321         gtkimmulticontext.h     \
322         gtkinputdialog.h        \
323         gtkinvisible.h          \
324         gtkitem.h               \
325         gtkitemfactory.h        \
326         gtklabel.h              \
327         gtklayout.h             \
328         gtklist.h               \
329         gtklistitem.h           \
330         gtkliststore.h          \
331         gtkmain.h               \
332         gtkmarshal.h    \
333         gtkmenu.h               \
334         gtkmenubar.h            \
335         gtkmenuitem.h           \
336         gtkmenushell.h          \
337         gtkmessagedialog.h      \
338         gtkmisc.h               \
339         gtknotebook.h           \
340         gtkobject.h             \
341         gtkoldeditable.h        \
342         gtkoptionmenu.h         \
343         gtkpaned.h              \
344         gtkpixmap.h             \
345         gtkplug.h               \
346         gtkpreview.h            \
347         gtkprivate.h            \
348         gtkprogress.h           \
349         gtkprogressbar.h        \
350         gtkradioaction.h        \
351         gtkradiobutton.h        \
352         gtkradiomenuitem.h      \
353         gtkradiotoolbutton.h    \
354         gtkrange.h              \
355         gtkrc.h                 \
356         gtkruler.h              \
357         gtkscale.h              \
358         gtkscrollbar.h          \
359         gtkscrolledwindow.h     \
360         gtkselection.h          \
361         gtkseparator.h          \
362         gtkseparatormenuitem.h  \
363         gtkseparatortoolitem.h  \
364         gtksettings.h           \
365         gtksignal.h             \
366         gtksizegroup.h  \
367         gtksignal.h             \
368         gtksocket.h             \
369         gtkspinbutton.h         \
370         gtkstatusbar.h          \
371         gtkstock.h              \
372         gtkstyle.h              \
373         gtktable.h              \
374         gtktearoffmenuitem.h    \
375         gtktext.h               \
376         gtktextbuffer.h         \
377         gtktextchild.h          \
378         gtktextdisplay.h        \
379         gtktextiter.h           \
380         gtktextlayout.h         \
381         gtktextmark.h           \
382         gtktexttag.h            \
383         gtktexttagtable.h       \
384         gtktextview.h           \
385         gtktipsquery.h          \
386         gtktoggleaction.h       \
387         gtktogglebutton.h       \
388         gtktoggletoolbutton.h   \
389         gtktoolbar.h            \
390         gtktoolbutton.h         \
391         gtktoolitem.h           \
392         gtktooltips.h           \
393         gtktree.h               \
394         gtktreednd.h            \
395         gtktreeitem.h           \
396         gtktreemodel.h          \
397         gtktreemodelfilter.h    \
398         gtktreemodelsort.h      \
399         gtktreeselection.h      \
400         gtktreesortable.h       \
401         gtktreestore.h          \
402         gtktreeview.h           \
403         gtktreeviewcolumn.h     \
404         gtktypeutils.h          \
405         gtkuimanager.h  \
406         gtkvbbox.h              \
407         gtkvbox.h               \
408         gtkviewport.h           \
409         gtkvpaned.h             \
410         gtkvruler.h             \
411         gtkvscale.h             \
412         gtkvscrollbar.h         \
413         gtkvseparator.h         \
414         gtkwidget.h             \
415         gtkwindow.h
416
417 # these aren't use here, but listed for reference
418 gtk_extra_sources = \
419         gtkversion.h            \
420         gtk-boxed.defs          \
421         gtkmarshal.list         \
422
423 ..\config.h : ..\config.h.win32
424         copy ..\config.h.win32 ..\config.h
425
426 # Removed: gtk.defs 
427 GENERATED = gtktypebuiltins.h gtktypebuiltins.c gtkmarshal.h gtkmarshal.c gtkmarshalers.h gtkmarshalers.c
428
429 #
430 # Generated source files:
431 #
432 generated : $(GENERATED)
433         $(TOUCH) generated
434
435 gtk.defs : $(gtk_public_h_sources) makefile.msc
436         $(PERL) $(GLIB)\gobject\glib-mkenums \
437                 --comments ";; @comment@" \
438                 --fprod "; enumerations from \"@filename@\"\n " \
439                 --vhead "(define-@type@ @EnumName@" \
440                 --vprod "   (@valuenick@ @VALUENAME@)" \
441                 --vtail ")" \
442                 $(gtk_public_h_sources) > xgen-gdef
443         copy xgen-gdef gtk.defs
444
445 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
446 # use 'echo' to work around 'command line too long'
447 gtktypebuiltins.h: $(gtk_public_h_sources) makefile.msc
448         echo #ifndef __GTK_TYPE_BUILTINS_H__ > gtktypebuiltins.h
449         echo #define __GTK_TYPE_BUILTINS_H__ >> gtktypebuiltins.h
450         echo #include "glib-object.h" >> gtktypebuiltins.h
451         echo G_BEGIN_DECLS >> gtktypebuiltins.h
452         $(PERL) $(GLIB)\gobject\glib-mkenums \
453                 --fprod "/* enumerations from \"@filename@\" */\n" \
454                 --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
455                 --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
456                 $(gtk_public_h_sources) >> gtktypebuiltins.h
457
458 gtktypebuiltins.c: $(gtk_public_h_sources) makefile.msc
459         $(PERL) $(GLIB)\gobject\glib-mkenums \
460                 --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
461                 --fprod "\n/* enumerations from \"@filename@\" */" \
462                 --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[] = {" \
463                 --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
464                 --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
465                 $(gtk_public_h_sources) > xgen-gtbc
466         copy xgen-gtbc gtktypebuiltins.c
467
468 # private marshalers
469 gtkmarshalers.h : gtkmarshalers.list
470         $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >>gtkmarshalers.h
471
472 gtkmarshalers.c : gtkmarshalers.list
473         $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >gtkmarshalers.c
474
475 # public, deprecated marshalers
476 gtkmarshal.h : gtkmarshal.list
477         echo #ifndef GTK_DISABLE_DEPRECATED >gtkmarshal.h
478         $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >>gtkmarshal.h
479         echo #endif /* GTK_DISABLE_DEPRECATED */ >>gtkmarshal.h
480
481 gtkmarshal.c : gtkmarshal.list
482         $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
483
484 gtksignal.obj : gtksignal.c gtkmarshal.c gtkmarshal.h
485         $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" gtksignal.c
486
487 gtk.res : gtk.rc
488         rc -DBUILDNUMBER=0 -r -fo gtk.res gtk.rc
489
490 #
491 # Linking:
492 #
493 libgtk-win32-$(GTK_VER)-0.dll : $(gtk_OBJECTS) gtk.def gtk.res
494         $(CC) $(CFLAGS) -LD -Fm -Fe$@ $(gtk_OBJECTS) gtk.res \
495         $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) \
496         gdi32.lib user32.lib advapi32.lib wsock32.lib shell32.lib \
497         $(LDFLAGS) /implib:gtk-win32-$(GTK_VER).lib /def:gtk.def
498
499 gtk-win32-$(GTK_VER)s.lib : $(gtk_OBJECTS)
500         lib /out:gtk-win32-$(GTK_VER)s.lib $(gtk_OBJECTS)
501
502 gtk-query-immodules-$(GTK_VER).exe : queryimmodules.obj
503         $(CC) $(CFLAGS) -Fe$@ queryimmodules.obj $(GTK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
504
505 gtk-x11-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
506         $(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
507
508 # General rule for compiling the objects into the DLL
509 .c.obj :
510         $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
511
512 $(EXAMPLE).obj : ..\examples\$(EXAMPLE)\$(EXAMPLE).c
513         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"$(EXAMPLE)\" ..\examples\$(EXAMPLE)\$(EXAMPLE).c
514
515 $(EXAMPLE).exe : $(EXAMPLE).obj
516         $(CC) $(CFLAGS) $(EXAMPLE).obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
517
518 makefile.msc: makefile.msc.in
519         sed -e s,@GTK[_]MAJOR_VERSION@,@GTK_MAJOR_VERSION@, \
520             -e s,@GTK[_]MINOR_VERSION@,@GTK_MINOR_VERSION@, \
521             -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
522             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
523             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'  <makefile.msc.in >$@