]> Pileus Git - ~andy/gtk/blob - gtk/makefile.mingw.in
Update. Mention the gtk-1-3-win32-production branch.
[~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         gtktreemodelsort.o      \
183         gtktreeselection.o      \
184         gtktreestore.o          \
185         gtktreeview.o           \
186         gtktreeviewcolumn.o     \
187         gtktypeutils.o          \
188         gtkvbbox.o              \
189         gtkvbox.o               \
190         gtkviewport.o           \
191         gtkvpaned.o             \
192         gtkvruler.o             \
193         gtkvscale.o             \
194         gtkvscrollbar.o         \
195         gtkvseparator.o         \
196         gtkwidget.o             \
197         gtkwindow.o             \
198         gtkwindow-decorate.o
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         gtkcontainer.h          \
224         gtkctree.h              \
225         gtkcurve.h              \
226         gtkcellrenderer.h       \
227         gtkcellrenderertext.h   \
228         gtkcellrenderertextpixbuf.h     \
229         gtkcellrenderertoggle.h \
230         gtkcellrendererpixbuf.h \
231         gtkdata.h               \
232         gtkdebug.h              \
233         gtkdialog.h             \
234         gtkdnd.h                \
235         gtkdrawingarea.h        \
236         gtkeditable.h           \
237         gtkentry.h              \
238         gtkenums.h              \
239         gtkeventbox.h           \
240         gtkfilesel.h            \
241         gtkfixed.h              \
242         gtkfontsel.h            \
243         gtkframe.h              \
244         gtkgamma.h              \
245         gtkgc.h                 \
246         gtkhandlebox.h          \
247         gtkhbbox.h              \
248         gtkhbox.h               \
249         gtkhpaned.h             \
250         gtkhruler.h             \
251         gtkhscale.h             \
252         gtkhscrollbar.h         \
253         gtkhseparator.h         \
254         gtkhsv.h                \
255         gtkiconfactory.h        \
256         gtkimage.h              \
257         gtkimcontext.h          \
258         gtkimmodule.h           \
259         gtkimmulticontext.h     \
260         gtkinputdialog.h        \
261         gtkinvisible.h          \
262         gtkitem.h               \
263         gtkitemfactory.h        \
264         gtklabel.h              \
265         gtklayout.h             \
266         gtklist.h               \
267         gtklistitem.h           \
268         gtkliststore.h          \
269         gtkmain.h               \
270         gtkmenu.h               \
271         gtkmenubar.h            \
272         gtkmenufactory.h        \
273         gtkmenuitem.h           \
274         gtkmenushell.h          \
275         gtkmessagedialog.h      \
276         gtkmisc.h               \
277         gtknotebook.h           \
278         gtkoldeditable.h        \
279         gtkobject.h             \
280         gtkoptionmenu.h         \
281         gtkpacker.h             \
282         gtkpaned.h              \
283         gtkpixmap.h             \
284         gtkplug.h               \
285         gtkpreview.h            \
286         gtkprivate.h            \
287         gtkprogress.h           \
288         gtkprogressbar.h        \
289         gtkradiobutton.h        \
290         gtkradiomenuitem.h      \
291         gtkrange.h              \
292         gtkrc.h                 \
293         gtkruler.h              \
294         gtkscale.h              \
295         gtkscrollbar.h          \
296         gtkscrolledwindow.h     \
297         gtkselection.h          \
298         gtkseparator.h          \
299         gtksignal.h             \
300         gtksocket.h             \
301         gtkspinbutton.h         \
302         gtkstyle.h              \
303         gtkstatusbar.h          \
304         gtkstock.h              \
305         gtktable.h              \
306         gtktearoffmenuitem.h    \
307         gtktextbuffer.h         \
308         gtktextchild.h          \
309         gtktextdisplay.h        \
310         gtktextiter.h           \
311         gtktextlayout.h         \
312         gtktextmark.h           \
313         gtktexttag.h            \
314         gtktexttagtable.h       \
315         gtktextview.h           \
316         gtktext.h               \
317         gtktipsquery.h          \
318         gtktogglebutton.h       \
319         gtktoolbar.h            \
320         gtktooltips.h           \
321         gtktree.h               \
322         gtktreednd.h            \
323         gtktreeitem.h           \
324         gtktreemodel.h          \
325         gtktreemodelsort.h      \
326         gtktreeselection.h      \
327         gtktreesortable.h       \
328         gtktreestore.h          \
329         gtktreeview.h           \
330         gtktreeviewcolumn.h     \
331         gtktypeutils.h          \
332         gtkvbbox.h              \
333         gtkvbox.h               \
334         gtkviewport.h           \
335         gtkvpaned.h             \
336         gtkvruler.h             \
337         gtkvscale.h             \
338         gtkvscrollbar.h         \
339         gtkvseparator.h         \
340         gtkwidget.h             \
341         gtkwindow.h
342
343 # More headers to use when autogenerating.
344 gdk_headers =                   \
345         ../gdk/gdkcolor.h       \
346         ../gdk/gdkcursor.h      \
347         ../gdk/gdkdnd.h         \
348         ../gdk/gdkdrawable.h    \
349         ../gdk/gdkevents.h      \
350         ../gdk/gdkfont.h        \
351         ../gdk/gdkgc.h          \
352         ../gdk/gdkim.h          \
353         ../gdk/gdkimage.h       \
354         ../gdk/gdkinput.h       \
355         ../gdk/gdkpixmap.h      \
356         ../gdk/gdkproperty.h    \
357         ../gdk/gdkregion.h      \
358         ../gdk/gdkrgb.h         \
359         ../gdk/gdkselection.h   \
360         ../gdk/gdktypes.h       \
361         ../gdk/gdkvisual.h      \
362         ../gdk/gdkwindow.h
363
364 ../config.h : ../config.h.win32
365         cp $< $@
366
367 GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
368
369 #
370 # Generated source files:
371 #
372 generated : $(GENERATED)
373
374 gtk.defs : makeenums.pl gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
375         $(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) >gd.tmp
376         cat gd.tmp gtk-boxed.defs >gtk.defs
377         rm gd.tmp
378
379 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
380 gtktypebuiltins.h: gtk.defs maketypes.awk
381         $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
382
383 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
384 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
385         $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
386
387 # generate type entries for type-id registration
388 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
389         $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
390
391 # generate enum value arrays
392 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
393         $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) >gtktypebuiltins_evals.c
394
395 gtkmarshal.h : gtkmarshal.list
396         $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --header >gtkmarshal.h
397
398 gtkmarshal.c : gtkmarshal.list
399         $(GLIB_GENMARSHAL) --prefix=gtk_marshal gtkmarshal.list --body >gtkmarshal.c
400
401 #
402 # Linking:
403 #
404 gtk-win32-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def 
405         $(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
406
407 #
408 # Test programs:
409 #
410 testcalendar.exe : testcalendar.o
411         $(CC) $(CFLAGS) -o $@ testcalendar.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
412
413 # Must have separate rules for these objects that don't go in the DLL
414 testcalendar.o : testcalendar.c
415         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
416
417 testdnd.exe : testdnd.o
418         $(CC) $(CFLAGS) -o $@ testdnd.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
419
420 testdnd.o : testdnd.c
421         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
422
423 testgtk.exe : testgtk.o
424         $(CC) $(CFLAGS) -o $@  testgtk.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
425
426 testgtk.o : testgtk.c
427         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
428
429 testinput.exe : testinput.o
430         $(CC) $(CFLAGS) -o $@  testinput.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
431
432 testinput.o : testinput.c
433         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
434
435 testrgb.exe : testrgb.o
436         $(CC) $(CFLAGS) -o $@  testrgb.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
437
438 testrgb.o : testrgb.c
439         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
440
441 testselection.exe : testselection.o
442         $(CC) $(CFLAGS) -o $@  testselection.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
443
444 testselection.o : testselection.c
445         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
446
447 testtext.exe : testtext.o
448         $(CC) $(CFLAGS) -o $@  testtext.o $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
449
450 testtext.o : testtext.c
451         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
452
453 testtextbuffer.exe : testtextbuffer.o
454         $(CC) $(CFLAGS) -o $@  testtextbuffer.o $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
455
456 testtextbuffer.o : testtextbuffer.c
457         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
458
459 testthreads.exe : testthreads.o
460         $(CC) $(CFLAGS) -o $@  testthreads.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIB) $(LDFLAGS)
461
462 testthreads.o : testthreads.c
463         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
464
465 simple.exe : simple.o
466         $(CC) $(CFLAGS) -o $@  simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
467
468 simple.o : simple.c
469         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"simple\" simple.c
470
471 # The rmgen target removes just the generated source files
472 rmgen:
473         -rm $(GENERATED)
474
475 # Hack to get an updated makefile.mingw automatically after updating
476 # makefile.mingw.in. Only for developer use.
477 makefile.mingw: makefile.mingw.in
478         sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
479             -e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' \
480             -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
481             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,'   \
482             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'     <$< >$@