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