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