]> Pileus Git - ~andy/gtk/blob - gtk/makefile.msc.in
0a624e84ee032c326704c583bcf78926daa54dd2
[~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         gtkcompat.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         gtkcheckbutton.obj                      \
68         gtkcheckmenuitem.obj                    \
69         gtkclipboard.obj                        \
70         gtkclist.obj                            \
71         gtkcolorsel.obj                         \
72         gtkcolorseldialog.obj                   \
73         gtkcombo.obj                            \
74         gtkcontainer.obj                        \
75         gtkctree.obj                            \
76         gtkcurve.obj                            \
77         gtkdata.obj                             \
78         gtkdialog.obj                           \
79         gtkdnd.obj                              \
80         gtkdrawingarea.obj                      \
81         gtkeditable.obj                         \
82         gtkentry.obj                            \
83         gtkeventbox.obj                         \
84         gtkfilesel.obj                          \
85         gtkfixed.obj                            \
86         gtkfontsel.obj                          \
87         gtkframe.obj                            \
88         gtkgamma.obj                            \
89         gtkgc.obj                               \
90         gtkhandlebox.obj                        \
91         gtkhbbox.obj                            \
92         gtkhbox.obj                             \
93         gtkhpaned.obj                           \
94         gtkhruler.obj                           \
95         gtkhscale.obj                           \
96         gtkhscrollbar.obj                       \
97         gtkhseparator.obj                       \
98         gtkhsv.obj                              \
99         gtkiconfactory.obj                      \
100         gtkimage.obj                            \
101         gtkimcontext.obj                        \
102         gtkimcontextsimple.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         gtkmarshal.obj                          \
114         gtkmenu.obj                             \
115         gtkmenubar.obj                          \
116         gtkmenufactory.obj                      \
117         gtkmenuitem.obj                         \
118         gtkmenushell.obj                        \
119         gtkmessagedialog.obj                    \
120         gtkmisc.obj                             \
121         gtknotebook.obj                         \
122         gtkobject.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         gtktypeutils.obj                        \
170         gtkvbbox.obj                            \
171         gtkvbox.obj                             \
172         gtkviewport.obj                         \
173         gtkvpaned.obj                           \
174         gtkvruler.obj                           \
175         gtkvscale.obj                           \
176         gtkvscrollbar.obj                       \
177         gtkvseparator.obj                       \
178         gtkwidget.obj                           \
179         gtkwindow.obj
180
181 # Source headers which are non-autogenerated headers
182 source_headers = \
183         gtk.h                   \
184         gtkaccelgroup.h         \
185         gtkaccellabel.h         \
186         gtkadjustment.h         \
187         gtkalignment.h          \
188         gtkarg.h                \
189         gtkarrow.h              \
190         gtkaspectframe.h        \
191         gtkbin.h                \
192         gtkbindings.h           \
193         gtkbbox.h               \
194         gtkbox.h                \
195         gtkbutton.h             \
196         gtkcalendar.h           \
197         gtkcheckbutton.h        \
198         gtkcheckmenuitem.h      \
199         gtkclist.h              \
200         gtkcolorsel.h           \
201         gtkcolorseldialog.h     \
202         gtkcombo.h              \
203         gtkcompat.h             \
204         gtkcontainer.h          \
205         gtkctree.h              \
206         gtkcurve.h              \
207         gtkdata.h               \
208         gtkdebug.h              \
209         gtkdialog.h             \
210         gtkdnd.h                \
211         gtkdrawingarea.h        \
212         gtkeditable.h           \
213         gtkentry.h              \
214         gtkenums.h              \
215         gtkeventbox.h           \
216         gtkfilesel.h            \
217         gtkfixed.h              \
218         gtkfontsel.h            \
219         gtkframe.h              \
220         gtkgamma.h              \
221         gtkgc.h                 \
222         gtkhandlebox.h          \
223         gtkhbbox.h              \
224         gtkhbox.h               \
225         gtkhpaned.h             \
226         gtkhruler.h             \
227         gtkhscale.h             \
228         gtkhscrollbar.h         \
229         gtkhseparator.h         \
230         gtkhsv.h                \
231         gtkimage.h              \
232         gtkimcontext.h          \
233         gtkimmulticontext.h     \
234         gtkinputdialog.h        \
235         gtkinvisible.h          \
236         gtkitem.h               \
237         gtkitemfactory.h        \
238         gtklabel.h              \
239         gtklayout.h             \
240         gtklist.h               \
241         gtklistitem.h           \
242         gtkmain.h               \
243         gtkmenu.h               \
244         gtkmenubar.h            \
245         gtkmenufactory.h        \
246         gtkmenuitem.h           \
247         gtkmenushell.h          \
248         gtkmisc.h               \
249         gtknotebook.h           \
250         gtkobject.h             \
251         gtkoptionmenu.h         \
252         gtkpacker.h             \
253         gtkpaned.h              \
254         gdk-pixbuf-loader.h     \
255         gtkpixmap.h             \
256         gtkplug.h               \
257         gtkpreview.h            \
258         gtkprivate.h            \
259         gtkprogress.h           \
260         gtkprogressbar.h        \
261         gtkradiobutton.h        \
262         gtkradiomenuitem.h      \
263         gtkrange.h              \
264         gtkrc.h                 \
265         gtkruler.h              \
266         gtkscale.h              \
267         gtkscrollbar.h          \
268         gtkscrolledwindow.h     \
269         gtkselection.h          \
270         gtkseparator.h          \
271         gtksignal.h             \
272         gtksocket.h             \
273         gtkspinbutton.h         \
274         gtkstyle.h              \
275         gtkstatusbar.h          \
276         gtktable.h              \
277         gtktearoffmenuitem.h    \
278         gtktextbuffer.h         \
279         gtktextiter.h           \
280         gtktextmark.h           \
281         gtktexttag.h            \
282         gtktexttagtable.h       \
283         gtktextview.h           \
284         gtktext.h               \
285         gtkthemes.h             \
286         gtktipsquery.h          \
287         gtktogglebutton.h       \
288         gtktoolbar.h            \
289         gtktooltips.h           \
290         gtktree.h               \
291         gtktreeitem.h           \
292         gtktypeutils.h          \
293         gtkvbbox.h              \
294         gtkvbox.h               \
295         gtkviewport.h           \
296         gtkvpaned.h             \
297         gtkvruler.h             \
298         gtkvscale.h             \
299         gtkvscrollbar.h         \
300         gtkvseparator.h         \
301         gtkwidget.h             \
302         gtkwindow.h
303
304 # More headers to use when autogenerating.
305 gdk_headers =                   \
306         ..\gdk\gdkcc.h          \
307         ..\gdk\gdkcolor.h       \
308         ..\gdk\gdkcursor.h      \
309         ..\gdk\gdkdnd.h         \
310         ..\gdk\gdkdrawable.h    \
311         ..\gdk\gdkevents.h      \
312         ..\gdk\gdkfont.h        \
313         ..\gdk\gdkgc.h          \
314         ..\gdk\gdkim.h          \
315         ..\gdk\gdkimage.h       \
316         ..\gdk\gdkinput.h       \
317         ..\gdk\gdkpixmap.h      \
318         ..\gdk\gdkproperty.h    \
319         ..\gdk\gdkregion.h      \
320         ..\gdk\gdkrgb.h         \
321         ..\gdk\gdkselection.h   \
322         ..\gdk\gdktypes.h       \
323         ..\gdk\gdkvisual.h      \
324         ..\gdk\gdkwindow.h
325
326 ..\config.h : ..\config.h.win32
327         copy ..\config.h.win32 ..\config.h
328
329 gtkcompat.h : gtkcompat.h.win32
330         copy gtkcompat.h.win32 gtkcompat.h
331
332 GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
333
334 #
335 # Generated source files:
336 #
337 generated : $(GENERATED)
338         $(TOUCH) generated
339
340 gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
341         $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
342         copy gd.tmp+gtk-boxed.defs gtk.defs
343         @erase gd.tmp
344
345 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
346 gtktypebuiltins.h: gtk.defs maketypes.awk
347         $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
348
349 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
350 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
351         $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
352
353 # generate type entries for type-id registration
354 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
355         $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
356
357 # generate enum value arrays
358 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
359         $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
360
361 gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
362         $(PERL) genmarshal.pl gtkmarshal.list s-gmh s-gmc
363         del gtkmarshal.c
364         rename s-gmc gtkmarshal.c
365         del gtkmarshal.h
366         rename s-gmh gtkmarshal.h
367
368 #
369 # Linking:
370 #
371 gtk-win32-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
372         $(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
373
374 # General rule for compiling the objects into the DLL
375 .c.obj :
376         $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
377
378 #
379 # Test programs:
380 #
381 testcalendar.exe : gtk-win32-$(GTK_VER).dll testcalendar.obj
382         $(CC) $(CFLAGS) testcalendar.obj $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
383
384 # Must have separate rules for these objects that don't go in the DLL
385 testcalendar.obj : testcalendar.c
386         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
387
388 testdnd.exe : gtk-win32-$(GTK_VER).dll testdnd.obj
389         $(CC) $(CFLAGS) testdnd.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
390
391 testdnd.obj : testdnd.c
392         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
393
394 testgtk.exe : gtk-win32-$(GTK_VER).dll testgtk.obj
395         $(CC) $(CFLAGS) testgtk.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PANGO_LIBS) $(LDFLAGS)
396
397 testgtk.obj : testgtk.c
398         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
399
400 testinput.exe : gtk-win32-$(GTK_VER).dll testinput.obj
401         $(CC) $(CFLAGS) testinput.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
402
403 testinput.obj : testinput.c
404         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
405
406 testrgb.exe : gtk-win32-$(GTK_VER).dll testrgb.obj
407         $(CC) $(CFLAGS) testrgb.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
408
409 testrgb.obj : testrgb.c
410         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
411
412 testselection.exe : gtk-win32-$(GTK_VER).dll testselection.obj
413         $(CC) $(CFLAGS) testselection.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
414
415 testselection.obj : testselection.c
416         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
417
418 testtext.exe : gtk-win32-$(GTK_VER).dll testtext.obj
419         $(CC) $(CFLAGS) testtext.obj $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
420
421 testtext.obj : testtext.c
422         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
423
424 testtextbuffer.exe : gtk-win32-$(GTK_VER).dll testtextbuffer.obj
425         $(CC) $(CFLAGS) testtextbuffer.obj $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
426
427 testtextbuffer.obj : testtextbuffer.c
428         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
429
430 testthreads.exe : gtk-win32-$(GTK_VER).dll testthreads.obj
431         $(CC) $(CFLAGS) testthreads.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIBS) $(LDFLAGS)
432
433 testthreads.obj : testthreads.c
434         $(CC) $(CFLAGS) $(PTHREAD_CFLAGS) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
435
436 simple.exe : gtk-win32-$(GTK_VER).dll simple.obj
437         $(CC) $(CFLAGS) simple.obj $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
438
439 simple.obj : simple.c
440         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
441
442 makefile.msc: makefile.msc.in
443         sed -e s,@GTK[_]MAJOR_VERSION@,@GTK_MAJOR_VERSION@, \
444             -e s,@GTK[_]MINOR_VERSION@,@GTK_MINOR_VERSION@, \
445             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,' \
446             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'  <makefile.msc.in >$@