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