]> Pileus Git - ~andy/gtk/blob - gtk/makefile.msc.in
make rewrite_event_for_window() static gtk_rc_clear_realized_style()
[~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
39 TOUCH = copy makefile.msc+nul
40
41 gtk-stocks-icons :
42         cd stock-icons
43         nmake -nologo -f makefile.msc
44         cd ..
45
46 all :                                           \
47         ..\config.h                             \
48         generated                               \
49         gtk-stocks-icons                        \
50         gtk-win32-$(GTK_VER).dll                \
51         gtk-query-immodules-$(GTK_VER).exe \
52 #       gtk-win32-$(GTK_VER)s.lib \
53 #       gtk-x11-$(GTK_VER).dll
54
55 gtk_OBJECTS =                                   \
56         fnmatch.obj                             \
57         gtkaccelgroup.obj                       \
58         gtkaccellabel.obj                       \
59         gtkaccelmap.obj \
60         gtkaccessible.obj \
61         gtkadjustment.obj                       \
62         gtkalignment.obj                        \
63         gtkarrow.obj                            \
64         gtkaspectframe.obj                      \
65         gtkbin.obj                              \
66         gtkbindings.obj                         \
67         gtkbbox.obj                             \
68         gtkbox.obj                              \
69         gtkbutton.obj                           \
70         gtkcalendar.obj                         \
71         gtkcelleditable.obj                     \
72         gtkcellrenderer.obj                     \
73         gtkcellrenderertext.obj                 \
74         gtkcellrenderertoggle.obj               \
75         gtkcellrendererpixbuf.obj               \
76         gtkcheckbutton.obj                      \
77         gtkcheckmenuitem.obj                    \
78         gtkclipboard.obj                        \
79         gtkclist.obj                            \
80         gtkcolorsel.obj                         \
81         gtkcolorseldialog.obj                   \
82         gtkcombo.obj                            \
83         gtkcontainer.obj                        \
84         gtkctree.obj                            \
85         gtkcurve.obj                            \
86         gtkdialog.obj                           \
87         gtkdnd.obj                              \
88         gtkdrawingarea.obj                      \
89         gtkeditable.obj                         \
90         gtkentry.obj                            \
91         gtkeventbox.obj                         \
92         gtkfilesel.obj                          \
93         gtkfixed.obj                            \
94         gtkfontsel.obj                          \
95         gtkframe.obj                            \
96         gtkgamma.obj                            \
97         gtkgc.obj                               \
98         gtkhandlebox.obj                        \
99         gtkhbbox.obj                            \
100         gtkhbox.obj                             \
101         gtkhpaned.obj                           \
102         gtkhruler.obj                           \
103         gtkhscale.obj                           \
104         gtkhscrollbar.obj                       \
105         gtkhseparator.obj                       \
106         gtkhsv.obj                              \
107         gtkiconfactory.obj                      \
108         gtkimage.obj                            \
109         gtkimagemenuitem.obj    \
110         gtkimcontext.obj                        \
111         gtkimcontextsimple.obj                  \
112         gtkimmodule.obj                         \
113         gtkimmulticontext.obj                   \
114         gtkinputdialog.obj                      \
115         gtkinvisible.obj                        \
116         gtkitem.obj                             \
117         gtkitemfactory.obj                      \
118         gtkkeyhash.obj  \
119         gtklabel.obj                            \
120         gtklayout.obj                           \
121         gtklist.obj                             \
122         gtklistitem.obj                         \
123         gtkliststore.obj                                \
124         gtkmain.obj                             \
125         gtkmarshalers.obj               \
126         gtkmarshal.obj          \
127         gtkmenu.obj                             \
128         gtkmenubar.obj                          \
129         gtkmenuitem.obj                         \
130         gtkmenushell.obj                        \
131         gtkmessagedialog.obj                    \
132         gtkmisc.obj                             \
133         gtknotebook.obj                         \
134         gtkobject.obj                           \
135         gtkoldeditable.obj                      \
136         gtkoptionmenu.obj                       \
137         gtkpaned.obj                            \
138         gtkpixmap.obj                           \
139 #       gtkplug.obj                             \
140         gtkpreview.obj                          \
141         gtkprogress.obj                         \
142         gtkprogressbar.obj                      \
143         gtkradiobutton.obj                      \
144         gtkradiomenuitem.obj                    \
145         gtkrange.obj                            \
146         gtkrbtree.obj   \
147         gtkrc.obj                               \
148         gtkruler.obj                            \
149         gtkscale.obj                            \
150         gtkscrollbar.obj                        \
151         gtkscrolledwindow.obj                   \
152         gtkselection.obj                        \
153         gtkseparator.obj                        \
154         gtkseparatormenuitem.obj \
155         gtksettings.obj \
156         gtksignal.obj                           \
157         gtksizegroup.obj \
158 #       gtksocket.obj                           \
159         gtkspinbutton.obj                       \
160         gtkstyle.obj                            \
161         gtkstatusbar.obj                        \
162         gtkstock.obj                            \
163         gtktable.obj                            \
164         gtktearoffmenuitem.obj                  \
165         gtktext.obj                             \
166         gtktextbtree.obj                        \
167         gtktextbuffer.obj                       \
168         gtktextchild.obj                        \
169         gtktextdisplay.obj                      \
170         gtktextiter.obj                         \
171         gtktextlayout.obj                       \
172         gtktextmark.obj                         \
173         gtktextsegment.obj                      \
174         gtktexttag.obj                          \
175         gtktexttagtable.obj                     \
176         gtktexttypes.obj                        \
177         gtktextutil.obj \
178         gtktextview.obj                         \
179         gtkthemes.obj                           \
180         gtktipsquery.obj                        \
181         gtktogglebutton.obj                     \
182         gtktoolbar.obj                          \
183         gtktooltips.obj                         \
184         gtktree.obj                             \
185         gtktreedatalist.obj     \
186         gtktreednd.obj                          \
187         gtktreeitem.obj                         \
188         gtktreemodel.obj                        \
189         gtktreemodelsort.obj                    \
190         gtktreeselection.obj                    \
191         gtktreesortable.obj \
192         gtktreestore.obj                        \
193         gtktreeview.obj                 \
194         gtktreeviewcolumn.obj                   \
195         gtktypeutils.obj                        \
196         gtktypebuiltins.obj \
197         gtkvbbox.obj                            \
198         gtkvbox.obj                             \
199         gtkviewport.obj                         \
200         gtkvpaned.obj                           \
201         gtkvruler.obj                           \
202         gtkvscale.obj                           \
203         gtkvscrollbar.obj                       \
204         gtkvseparator.obj                       \
205         gtkwidget.obj                           \
206         gtkwindow.obj                           \
207         gtkwindow-decorate.obj
208
209 # Source headers which are non-autogenerated headers
210 gtk_public_h_sources =          \
211         gtk.h                   \
212         gtkaccelgroup.h         \
213         gtkaccellabel.h         \
214         gtkaccessible.h \
215         gtkadjustment.h         \
216         gtkalignment.h          \
217         gtkarrow.h              \
218         gtkaspectframe.h        \
219         gtkbin.h                \
220         gtkbindings.h           \
221         gtkbbox.h               \
222         gtkbox.h                \
223         gtkbutton.h             \
224         gtkcalendar.h           \
225         gtkcheckbutton.h        \
226         gtkcheckmenuitem.h      \
227         gtkclist.h              \
228         gtkclipboard.h          \
229         gtkcolorsel.h           \
230         gtkcolorseldialog.h     \
231         gtkcombo.h              \
232         gtkcontainer.h          \
233         gtkctree.h              \
234         gtkcurve.h              \
235         gtkcelleditable.h \
236         gtkcellrenderer.h       \
237         gtkcellrenderertext.h   \
238         gtkcellrenderertoggle.h \
239         gtkcellrendererpixbuf.h \
240         gtkdebug.h              \
241         gtkdialog.h             \
242         gtkdnd.h                \
243         gtkdrawingarea.h        \
244         gtkeditable.h           \
245         gtkentry.h              \
246         gtkenums.h              \
247         gtkeventbox.h           \
248         gtkfilesel.h            \
249         gtkfixed.h              \
250         gtkfontsel.h            \
251         gtkframe.h              \
252         gtkgamma.h              \
253         gtkgc.h                 \
254         gtkhandlebox.h          \
255         gtkhbbox.h              \
256         gtkhbox.h               \
257         gtkhpaned.h             \
258         gtkhruler.h             \
259         gtkhscale.h             \
260         gtkhscrollbar.h         \
261         gtkhseparator.h         \
262         gtkhsv.h                \
263         gtkiconfactory.h        \
264         gtkimage.h              \
265         gtkimcontext.h          \
266         gtkimmodule.h           \
267         gtkimmulticontext.h     \
268         gtkinputdialog.h        \
269         gtkinvisible.h          \
270         gtkitem.h               \
271         gtkitemfactory.h        \
272         gtklabel.h              \
273         gtklayout.h             \
274         gtklist.h               \
275         gtklistitem.h           \
276         gtkliststore.h          \
277         gtkmain.h               \
278         gtkmarshal.h    \
279         gtkmenu.h               \
280         gtkmenubar.h            \
281         gtkmenuitem.h           \
282         gtkmenushell.h          \
283         gtkmessagedialog.h      \
284         gtkmisc.h               \
285         gtknotebook.h           \
286         gtkoldeditable.h        \
287         gtkobject.h             \
288         gtkoptionmenu.h         \
289         gtkpaned.h              \
290         gtkpixmap.h             \
291         gtkplug.h               \
292         gtkpreview.h            \
293         gtkprivate.h            \
294         gtkprogress.h           \
295         gtkprogressbar.h        \
296         gtkradiobutton.h        \
297         gtkradiomenuitem.h      \
298         gtkrange.h              \
299         gtkrc.h                 \
300         gtkruler.h              \
301         gtkscale.h              \
302         gtkscrollbar.h          \
303         gtkscrolledwindow.h     \
304         gtkselection.h          \
305         gtkseparator.h          \
306         gtksizegroup.h  \
307         gtksignal.h             \
308         gtksocket.h             \
309         gtkspinbutton.h         \
310         gtkstyle.h              \
311         gtkstatusbar.h          \
312         gtkstock.h              \
313         gtktable.h              \
314         gtktearoffmenuitem.h    \
315         gtktextbuffer.h         \
316         gtktextchild.h          \
317         gtktextdisplay.h        \
318         gtktextiter.h           \
319         gtktextlayout.h         \
320         gtktextmark.h           \
321         gtktexttag.h            \
322         gtktexttagtable.h       \
323         gtktextview.h           \
324         gtktext.h               \
325         gtktipsquery.h          \
326         gtktogglebutton.h       \
327         gtktoolbar.h            \
328         gtktooltips.h           \
329         gtktree.h               \
330         gtktreeitem.h           \
331         gtktreemodel.h          \
332         gtktreemodelsort.h      \
333         gtktreeselection.h      \
334         gtktreesortable.h       \
335         gtktreestore.h          \
336         gtktreeview.h           \
337         gtktreeviewcolumn.h     \
338         gtktypeutils.h          \
339         gtkvbbox.h              \
340         gtkvbox.h               \
341         gtkviewport.h           \
342         gtkvpaned.h             \
343         gtkvruler.h             \
344         gtkvscale.h             \
345         gtkvscrollbar.h         \
346         gtkvseparator.h         \
347         gtkwidget.h             \
348         gtkwindow.h
349
350 # these aren't use here, but listed for reference
351 gtk_extra_sources = \
352         gtkversion.h            \
353         gtk-boxed.defs          \
354         gtkmarshal.list         \
355
356 ..\config.h : ..\config.h.win32
357         copy ..\config.h.win32 ..\config.h
358
359 GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins.c gtkmarshal.h gtkmarshal.c gtkmarshalers.h gtkmarshalers.c
360
361 #
362 # Generated source files:
363 #
364 generated : $(GENERATED)
365         $(TOUCH) generated
366
367 gtk.defs : gtk-boxed.defs $(gtk_public_h_sources) makefile.msc
368         $(PERL) $(GLIB)\gobject\glib-mkenums \
369                 --comments ";; @comment@" \
370                 --fprod "; enumerations from \"@filename@\"\n " \
371                 --vhead "(define-@type@ @EnumName@" \
372                 --vprod "   (@valuenick@ @VALUENAME@)" \
373                 --vtail ")" \
374                 $(gtk_public_h_sources) > xgen-gdef
375         copy xgen-gdef+gtk-boxed.defs gtk.defs
376
377 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
378 # use 'echo' to work around 'command line too long'
379 gtktypebuiltins.h: $(gtk_public_h_sources) makefile.msc
380         echo #ifndef __GTK_TYPE_BUILTINS_H__ > gtktypebuiltins.h
381         echo #define __GTK_TYPE_BUILTINS_H__ >> gtktypebuiltins.h
382         echo #include "glib-object.h" >> gtktypebuiltins.h
383         echo G_BEGIN_DECLS >> gtktypebuiltins.h
384         $(PERL) $(GLIB)\gobject\glib-mkenums \
385                 --fprod "/* enumerations from \"@filename@\" */\n" \
386                 --vhead "GType @enum_name@_get_type (void);\n#define GTK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
387                 --ftail "G_END_DECLS\n\n#endif /* __GTK_TYPE_BUILTINS_H__ */" \
388                 $(gtk_public_h_sources) >> gtktypebuiltins.h
389
390 gtktypebuiltins.c: $(gtk_public_h_sources) makefile.msc
391         $(PERL) $(GLIB)\gobject\glib-mkenums \
392                 --fhead "#define GTK_ENABLE_BROKEN\n#include \"gtk.h\"\n#include \"gtkprivate.h\"" \
393                 --fprod "\n/* enumerations from \"@filename@\" */" \
394                 --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[] = {" \
395                 --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
396                 --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
397                 $(gtk_public_h_sources) > xgen-gtbc
398         copy xgen-gtbc gtktypebuiltins.c
399
400 # private marshalers
401 gtkmarshalers.h : gtkmarshalers.list
402         $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --header >>gtkmarshalers.h
403
404 gtkmarshalers.c : gtkmarshalers.list
405         $(GLIB)\gobject\glib-genmarshal --prefix=_gtk_marshal gtkmarshalers.list --body >gtkmarshalers.c
406
407 # public, deprecated marshalers
408 gtkmarshal.h : gtkmarshal.list
409         echo #ifndef GTK_DISABLE_DEPRECATED >gtkmarshal.h
410         $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --header >>gtkmarshal.h
411         echo #endif /* GTK_DISABLE_DEPRECATED */ >>gtkmarshal.h
412
413 gtkmarshal.c : gtkmarshal.list
414         $(GLIB)\gobject\glib-genmarshal --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
415
416 gtksignal.obj : gtksignal.c gtkmarshal.c gtkmarshal.h
417         $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" gtksignal.c
418
419 #
420 # Linking:
421 #
422 gtk-win32-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
423         $(CC) $(CFLAGS) -LD -Fm -Fegtk-win32-$(GTK_VER).dll $(gtk_OBJECTS) $(GDK_LIBS) $(GDK_PIXBUF_LIBS) $(PANGO_LIBS) $(INTL_LIBS) $(GLIB_LIBS) gdi32.lib user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:gtk.def
424
425 gtk-win32-$(GTK_VER)s.lib : $(gtk_OBJECTS)
426         lib /out:gtk-win32-$(GTK_VER)s.lib $(gtk_OBJECTS)
427
428 gtk-query-immodules-$(GTK_VER).exe : queryimmodules.obj
429         $(CC) $(CFLAGS) -Fe$@ queryimmodules.obj $(GTK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
430
431 gtk-x11-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
432         $(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
433
434 # General rule for compiling the objects into the DLL
435 .c.obj :
436         $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
437
438 $(EXAMPLE).obj : ..\examples\$(EXAMPLE)\$(EXAMPLE).c
439         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"$(EXAMPLE)\" ..\examples\$(EXAMPLE)\$(EXAMPLE).c
440
441 $(EXAMPLE).exe : $(EXAMPLE).obj
442         $(CC) $(CFLAGS) $(EXAMPLE).obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
443
444 makefile.msc: makefile.msc.in
445         sed -e s,@GTK[_]MAJOR_VERSION@,@GTK_MAJOR_VERSION@, \
446             -e s,@GTK[_]MINOR_VERSION@,@GTK_MINOR_VERSION@, \
447             -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
448             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
449             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'  <makefile.msc.in >$@