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