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