]> Pileus Git - ~andy/gtk/blob - gtk/makefile.mingw.in
cb77bf1039741706399a4e348c97b82cccb59fd7
[~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 GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal.exe
40
41 all :                           \
42         ../config.h             \
43         generated               \
44         gtk-win32-$(GTK_VER).dll\
45         testcalendar.exe        \
46         testdnd.exe             \
47         testgtk.exe             \
48         testinput.exe           \
49         testrgb.exe             \
50         testselection.exe       \
51         testtext.exe            \
52         testtextbuffer.exe      \
53         simple.exe
54
55 gtk_OBJECTS =                   \
56         fnmatch.o               \
57         gtkaccelgroup.o         \
58         gtkaccellabel.o         \
59         gtkadjustment.o         \
60         gtkalignment.o          \
61         gtkarg.o                \
62         gtkarrow.o              \
63         gtkaspectframe.o        \
64         gtkbin.o                \
65         gtkbindings.o           \
66         gtkbbox.o               \
67         gtkbox.o                \
68         gtkbutton.o             \
69         gtkcalendar.o           \
70         gtkcellrenderer.o       \
71         gtkcellrenderertext.o   \
72         gtkcellrenderertextpixbuf.o     \
73         gtkcellrenderertoggle.o \
74         gtkcellrendererpixbuf.o \
75         gtkcheckbutton.o        \
76         gtkcheckmenuitem.o      \
77         gtkclipboard.o          \
78         gtkclist.o              \
79         gtkcolorsel.o           \
80         gtkcolorseldialog.o     \
81         gtkcombo.o              \
82         gtkcontainer.o          \
83         gtkctree.o              \
84         gtkcurve.o              \
85         gtkdata.o               \
86         gtkdialog.o             \
87         gtkdnd.o                \
88         gtkdrawingarea.o        \
89         gtkeditable.o           \
90         gtkentry.o              \
91         gtkeventbox.o           \
92         gtkfilesel.o            \
93         gtkfixed.o              \
94         gtkfontsel.o            \
95         gtkframe.o              \
96         gtkgamma.o              \
97         gtkgc.o                 \
98         gtkhandlebox.o          \
99         gtkhbbox.o              \
100         gtkhbox.o               \
101         gtkhpaned.o             \
102         gtkhruler.o             \
103         gtkhscale.o             \
104         gtkhscrollbar.o         \
105         gtkhseparator.o         \
106         gtkhsv.o                \
107         gtkiconfactory.o        \
108         gtkimage.o              \
109         gtkimcontext.o          \
110         gtkimcontextsimple.o    \
111         gtkimmodule.o           \
112         gtkimmulticontext.o     \
113         gtkinputdialog.o        \
114         gtkinvisible.o          \
115         gtkitem.o               \
116         gtkitemfactory.o        \
117         gtklabel.o              \
118         gtklayout.o             \
119         gtklist.o               \
120         gtklistitem.o           \
121         gtkmain.o               \
122         gtkmenu.o               \
123         gtkmenubar.o            \
124         gtkmenufactory.o        \
125         gtkmenuitem.o           \
126         gtkmenushell.o          \
127         gtkmessagedialog.o      \
128         gtkmisc.o               \
129         gtknotebook.o           \
130         gtkobject.o             \
131         gtkoldeditable.o        \
132         gtkoptionmenu.o         \
133         gtkpacker.o             \
134         gtkpaned.o              \
135         gtkpixmap.o             \
136         gtkplug.o               \
137         gtkpreview.o            \
138         gtkprogress.o           \
139         gtkprogressbar.o        \
140         gtkradiobutton.o        \
141         gtkradiomenuitem.o      \
142         gtkrange.o              \
143         gtkrbtree.o             \
144         gtkrc.o                 \
145         gtkruler.o              \
146         gtkscale.o              \
147         gtkscrollbar.o          \
148         gtkscrolledwindow.o     \
149         gtkselection.o          \
150         gtkseparator.o          \
151         gtksignal.o             \
152         gtksocket.o             \
153         gtkspinbutton.o         \
154         gtkstyle.o              \
155         gtkstatusbar.o          \
156         gtkstock.o              \
157         gtktable.o              \
158         gtktearoffmenuitem.o    \
159         gtktext.o               \
160         gtktextbtree.o          \
161         gtktextbuffer.o         \
162         gtktextchild.o          \
163         gtktextdisplay.o        \
164         gtktextiter.o           \
165         gtktextlayout.o         \
166         gtktextmark.o           \
167         gtktextsegment.o        \
168         gtktexttag.o            \
169         gtktexttagtable.o       \
170         gtktexttypes.o          \
171         gtktextview.o           \
172         gtkthemes.o             \
173         gtktipsquery.o          \
174         gtktogglebutton.o       \
175         gtktoolbar.o            \
176         gtktooltips.o           \
177         gtktree.o               \
178         gtktreeitem.o           \
179         gtktreedatalist.o       \
180         gtktreednd.o            \
181         gtktreemodel.o          \
182         gtktreemodelsimple.o    \
183         gtktreemodelsort.o      \
184         gtktreeselection.o      \
185         gtktreestore.o          \
186         gtktreeview.o           \
187         gtktreeviewcolumn.o     \
188         gtktypeutils.o          \
189         gtkvbbox.o              \
190         gtkvbox.o               \
191         gtkviewport.o           \
192         gtkvpaned.o             \
193         gtkvruler.o             \
194         gtkvscale.o             \
195         gtkvscrollbar.o         \
196         gtkvseparator.o         \
197         gtkwidget.o             \
198         gtkwindow.o             \
199         gtkwindow-decorate.o
200
201 # Source headers which are non-autogenerated headers
202 gtk_public_h_sources =          \
203         gtk.h                   \
204         gtkaccelgroup.h         \
205         gtkaccellabel.h         \
206         gtkadjustment.h         \
207         gtkalignment.h          \
208         gtkarg.h                \
209         gtkarrow.h              \
210         gtkaspectframe.h        \
211         gtkbin.h                \
212         gtkbindings.h           \
213         gtkbbox.h               \
214         gtkbox.h                \
215         gtkbutton.h             \
216         gtkcalendar.h           \
217         gtkcheckbutton.h        \
218         gtkcheckmenuitem.h      \
219         gtkclist.h              \
220         gtkclipboard.h          \
221         gtkcolorsel.h           \
222         gtkcolorseldialog.h     \
223         gtkcombo.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         gtkpixmap.h             \
285         gtkplug.h               \
286         gtkpreview.h            \
287         gtkprivate.h            \
288         gtkprogress.h           \
289         gtkprogressbar.h        \
290         gtkradiobutton.h        \
291         gtkradiomenuitem.h      \
292         gtkrange.h              \
293         gtkrc.h                 \
294         gtkruler.h              \
295         gtkscale.h              \
296         gtkscrollbar.h          \
297         gtkscrolledwindow.h     \
298         gtkselection.h          \
299         gtkseparator.h          \
300         gtksignal.h             \
301         gtksocket.h             \
302         gtkspinbutton.h         \
303         gtkstyle.h              \
304         gtkstatusbar.h          \
305         gtkstock.h              \
306         gtktable.h              \
307         gtktearoffmenuitem.h    \
308         gtktextbuffer.h         \
309         gtktextchild.h          \
310         gtktextdisplay.h        \
311         gtktextiter.h           \
312         gtktextlayout.h         \
313         gtktextmark.h           \
314         gtktexttag.h            \
315         gtktexttagtable.h       \
316         gtktextview.h           \
317         gtktext.h               \
318         gtktipsquery.h          \
319         gtktogglebutton.h       \
320         gtktoolbar.h            \
321         gtktooltips.h           \
322         gtktree.h               \
323         gtktreednd.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         cp $< $@
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
376 gtk.defs : makeenums.pl gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
377         $(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) >gd.tmp
378         cat gd.tmp gtk-boxed.defs >gtk.defs
379         rm gd.tmp
380
381 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
382 gtktypebuiltins.h: gtk.defs maketypes.awk
383         $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
384
385 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
386 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
387         $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
388
389 # generate type entries for type-id registration
390 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
391         $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
392
393 # generate enum value arrays
394 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
395         $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c
396
397 gtkmarshal.h : gtkmarshal.list
398         $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h
399
400 gtkmarshal.c : gtkmarshal.list
401         $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
402
403 #
404 # Linking:
405 #
406 gtk-win32-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def 
407         $(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
408
409 #
410 # Test programs:
411 #
412 testcalendar.exe : testcalendar.o
413         $(CC) $(CFLAGS) -o $@ testcalendar.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
414
415 # Must have separate rules for these objects that don't go in the DLL
416 testcalendar.o : testcalendar.c
417         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
418
419 testdnd.exe : testdnd.o
420         $(CC) $(CFLAGS) -o $@ testdnd.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
421
422 testdnd.o : testdnd.c
423         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
424
425 testgtk.exe : testgtk.o
426         $(CC) $(CFLAGS) -o $@  testgtk.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
427
428 testgtk.o : testgtk.c
429         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
430
431 testinput.exe : testinput.o
432         $(CC) $(CFLAGS) -o $@  testinput.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
433
434 testinput.o : testinput.c
435         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
436
437 testrgb.exe : testrgb.o
438         $(CC) $(CFLAGS) -o $@  testrgb.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
439
440 testrgb.o : testrgb.c
441         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
442
443 testselection.exe : testselection.o
444         $(CC) $(CFLAGS) -o $@  testselection.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
445
446 testselection.o : testselection.c
447         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
448
449 testtext.exe : testtext.o
450         $(CC) $(CFLAGS) -o $@  testtext.o $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
451
452 testtext.o : testtext.c
453         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
454
455 testtextbuffer.exe : testtextbuffer.o
456         $(CC) $(CFLAGS) -o $@  testtextbuffer.o $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
457
458 testtextbuffer.o : testtextbuffer.c
459         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
460
461 testthreads.exe : testthreads.o
462         $(CC) $(CFLAGS) -o $@  testthreads.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIB) $(LDFLAGS)
463
464 testthreads.o : testthreads.c
465         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
466
467 simple.exe : simple.o
468         $(CC) $(CFLAGS) -o $@  simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
469
470 simple.o : simple.c
471         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"simple\" simple.c
472
473 # The rmgen target removes just the generated source files
474 rmgen:
475         -rm $(GENERATED)
476
477 # Hack to get an updated makefile.mingw automatically after updating
478 # makefile.mingw.in. Only for developer use.
479 makefile.mingw: makefile.mingw.in
480         sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
481             -e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' \
482             -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
483             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,'   \
484             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'     <$< >$@