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