]> Pileus Git - ~andy/gtk/blob - gtk/makefile.mingw.in
6501bee21dd7b3eabc2b5e2524c2f83b7b64f8c6
[~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_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         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         gtkimagemenuitem.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         gtkseparatormenuitem.o  \
152         gtksettings.o           \
153         gtksignal.o             \
154         gtksocket.o             \
155         gtkspinbutton.o         \
156         gtkstyle.o              \
157         gtkstatusbar.o          \
158         gtkstock.o              \
159         gtktable.o              \
160         gtktearoffmenuitem.o    \
161         gtktext.o               \
162         gtktextbtree.o          \
163         gtktextbuffer.o         \
164         gtktextchild.o          \
165         gtktextdisplay.o        \
166         gtktextiter.o           \
167         gtktextlayout.o         \
168         gtktextmark.o           \
169         gtktextsegment.o        \
170         gtktexttag.o            \
171         gtktexttagtable.o       \
172         gtktexttypes.o          \
173         gtktextview.o           \
174         gtkthemes.o             \
175         gtktipsquery.o          \
176         gtktogglebutton.o       \
177         gtktoolbar.o            \
178         gtktooltips.o           \
179         gtktree.o               \
180         gtktreeitem.o           \
181         gtktreedatalist.o       \
182         gtktreednd.o            \
183         gtktreemodel.o          \
184         gtktreemodelsort.o      \
185         gtktreeselection.o      \
186         gtktreestore.o          \
187         gtktreeview.o           \
188         gtktreeviewcolumn.o     \
189         gtktypeutils.o          \
190         gtkvbbox.o              \
191         gtkvbox.o               \
192         gtkviewport.o           \
193         gtkvpaned.o             \
194         gtkvruler.o             \
195         gtkvscale.o             \
196         gtkvscrollbar.o         \
197         gtkvseparator.o         \
198         gtkwidget.o             \
199         gtkwindow.o             \
200         gtkwindow-decorate.o
201
202 # Source headers which are non-autogenerated headers
203 gtk_public_h_sources =          \
204         gtk.h                   \
205         gtkaccelgroup.h         \
206         gtkaccellabel.h         \
207         gtkadjustment.h         \
208         gtkalignment.h          \
209         gtkarg.h                \
210         gtkarrow.h              \
211         gtkaspectframe.h        \
212         gtkbin.h                \
213         gtkbindings.h           \
214         gtkbbox.h               \
215         gtkbox.h                \
216         gtkbutton.h             \
217         gtkcalendar.h           \
218         gtkcheckbutton.h        \
219         gtkcheckmenuitem.h      \
220         gtkseparatormenuitem.h  \
221         gtkclist.h              \
222         gtkclipboard.h          \
223         gtkcolorsel.h           \
224         gtkcolorseldialog.h     \
225         gtkcombo.h              \
226         gtkcontainer.h          \
227         gtkctree.h              \
228         gtkcurve.h              \
229         gtkcellrenderer.h       \
230         gtkcellrenderertext.h   \
231         gtkcellrenderertextpixbuf.h     \
232         gtkcellrenderertoggle.h \
233         gtkcellrendererpixbuf.h \
234         gtkdebug.h              \
235         gtkdialog.h             \
236         gtkdnd.h                \
237         gtkdrawingarea.h        \
238         gtkeditable.h           \
239         gtkentry.h              \
240         gtkenums.h              \
241         gtkeventbox.h           \
242         gtkfilesel.h            \
243         gtkfixed.h              \
244         gtkfontsel.h            \
245         gtkframe.h              \
246         gtkgamma.h              \
247         gtkgc.h                 \
248         gtkhandlebox.h          \
249         gtkhbbox.h              \
250         gtkhbox.h               \
251         gtkhpaned.h             \
252         gtkhruler.h             \
253         gtkhscale.h             \
254         gtkhscrollbar.h         \
255         gtkhseparator.h         \
256         gtkhsv.h                \
257         gtkiconfactory.h        \
258         gtkimage.h              \
259         gtkimagemenuitem.h      \
260         gtkimcontext.h          \
261         gtkimmodule.h           \
262         gtkimmulticontext.h     \
263         gtkinputdialog.h        \
264         gtkinvisible.h          \
265         gtkitem.h               \
266         gtkitemfactory.h        \
267         gtklabel.h              \
268         gtklayout.h             \
269         gtklist.h               \
270         gtklistitem.h           \
271         gtkliststore.h          \
272         gtkmain.h               \
273         gtkmenu.h               \
274         gtkmenubar.h            \
275         gtkmenufactory.h        \
276         gtkmenuitem.h           \
277         gtkmenushell.h          \
278         gtkmessagedialog.h      \
279         gtkmisc.h               \
280         gtknotebook.h           \
281         gtkoldeditable.h        \
282         gtkobject.h             \
283         gtkoptionmenu.h         \
284         gtkpacker.h             \
285         gtkpaned.h              \
286         gtkpixmap.h             \
287         gtkplug.h               \
288         gtkpreview.h            \
289         gtkprivate.h            \
290         gtkprogress.h           \
291         gtkprogressbar.h        \
292         gtkradiobutton.h        \
293         gtkradiomenuitem.h      \
294         gtkrange.h              \
295         gtkrc.h                 \
296         gtkruler.h              \
297         gtkscale.h              \
298         gtkscrollbar.h          \
299         gtkscrolledwindow.h     \
300         gtkselection.h          \
301         gtkseparator.h          \
302         gtksettings.h           \
303         gtksignal.h             \
304         gtksocket.h             \
305         gtkspinbutton.h         \
306         gtkstyle.h              \
307         gtkstatusbar.h          \
308         gtkstock.h              \
309         gtktable.h              \
310         gtktearoffmenuitem.h    \
311         gtktextbuffer.h         \
312         gtktextchild.h          \
313         gtktextdisplay.h        \
314         gtktextiter.h           \
315         gtktextlayout.h         \
316         gtktextmark.h           \
317         gtktexttag.h            \
318         gtktexttagtable.h       \
319         gtktextview.h           \
320         gtktext.h               \
321         gtktipsquery.h          \
322         gtktogglebutton.h       \
323         gtktoolbar.h            \
324         gtktooltips.h           \
325         gtktree.h               \
326         gtktreednd.h            \
327         gtktreeitem.h           \
328         gtktreemodel.h          \
329         gtktreemodelsort.h      \
330         gtktreeselection.h      \
331         gtktreesortable.h       \
332         gtktreestore.h          \
333         gtktreeview.h           \
334         gtktreeviewcolumn.h     \
335         gtktypeutils.h          \
336         gtkvbbox.h              \
337         gtkvbox.h               \
338         gtkviewport.h           \
339         gtkvpaned.h             \
340         gtkvruler.h             \
341         gtkvscale.h             \
342         gtkvscrollbar.h         \
343         gtkvseparator.h         \
344         gtkwidget.h             \
345         gtkwindow.h
346
347 # More headers to use when autogenerating.
348 gdk_headers =                   \
349         ../gdk/gdkcolor.h       \
350         ../gdk/gdkcursor.h      \
351         ../gdk/gdkdnd.h         \
352         ../gdk/gdkdrawable.h    \
353         ../gdk/gdkevents.h      \
354         ../gdk/gdkfont.h        \
355         ../gdk/gdkgc.h          \
356         ../gdk/gdkimage.h       \
357         ../gdk/gdkinput.h       \
358         ../gdk/gdkpixmap.h      \
359         ../gdk/gdkproperty.h    \
360         ../gdk/gdkregion.h      \
361         ../gdk/gdkrgb.h         \
362         ../gdk/gdkselection.h   \
363         ../gdk/gdktypes.h       \
364         ../gdk/gdkvisual.h      \
365         ../gdk/gdkwindow.h
366
367 ../config.h : ../config.h.win32
368         cp $< $@
369
370 GENERATED = gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
371
372 #
373 # Generated source files:
374 #
375 generated : $(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         cat gd.tmp gtk-boxed.defs >gtk.defs
380         rm 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 : generated $(gtk_OBJECTS) gtk.def 
408         $(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
409
410 #
411 # Test programs:
412 #
413 testcalendar.exe : testcalendar.o
414         $(CC) $(CFLAGS) -o $@ testcalendar.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
415
416 # Must have separate rules for these objects that don't go in the DLL
417 testcalendar.o : testcalendar.c
418         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testcalendar\" testcalendar.c
419
420 testdnd.exe : testdnd.o
421         $(CC) $(CFLAGS) -o $@ testdnd.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
422
423 testdnd.o : testdnd.c
424         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
425
426 testgtk.exe : testgtk.o
427         $(CC) $(CFLAGS) -o $@  testgtk.o $(GTK_LIBS) $(GDK_LIBS) $(PANGO_LIBS) $(GLIB_LIBS) $(LDFLAGS)
428
429 testgtk.o : testgtk.c
430         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
431
432 testinput.exe : testinput.o
433         $(CC) $(CFLAGS) -o $@  testinput.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
434
435 testinput.o : testinput.c
436         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
437
438 testrgb.exe : testrgb.o
439         $(CC) $(CFLAGS) -o $@  testrgb.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
440
441 testrgb.o : testrgb.c
442         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
443
444 testselection.exe : testselection.o
445         $(CC) $(CFLAGS) -o $@  testselection.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
446
447 testselection.o : testselection.c
448         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
449
450 testtext.exe : testtext.o
451         $(CC) $(CFLAGS) -o $@  testtext.o $(PANGO_LIBS) $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
452
453 testtext.o : testtext.c
454         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtext\" testtext.c
455
456 testtextbuffer.exe : testtextbuffer.o
457         $(CC) $(CFLAGS) -o $@  testtextbuffer.o $(GDK_PIXBUF_LIBS) $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
458
459 testtextbuffer.o : testtextbuffer.c
460         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c
461
462 testthreads.exe : testthreads.o
463         $(CC) $(CFLAGS) -o $@  testthreads.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIB) $(LDFLAGS)
464
465 testthreads.o : testthreads.c
466         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
467
468 simple.exe : simple.o
469         $(CC) $(CFLAGS) -o $@  simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS)
470
471 simple.o : simple.c
472         $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"simple\" simple.c
473
474 # The rmgen target removes just the generated source files
475 rmgen:
476         -rm $(GENERATED)
477
478 # Hack to get an updated makefile.mingw automatically after updating
479 # makefile.mingw.in. Only for developer use.
480 makefile.mingw: makefile.mingw.in
481         sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
482             -e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' \
483             -e 's,@GTK[_]VERSION@,@GTK_VERSION@,' \
484             -e 's,@GDK_PIXBUF[_]MAJOR@,@GDK_PIXBUF_MAJOR@,'   \
485             -e 's,@GDK_PIXBUF[_]MINOR@,@GDK_PIXBUF_MINOR@,'     <$< >$@