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