]> Pileus Git - ~andy/gtk/blob - gtk/makefile.cygwin
Don't use TextOutW for GDK_FONT_FONT fonts (which is all we have for now,
[~andy/gtk] / gtk / makefile.cygwin
1 ## Makefile for building the GTK DLL with egcs on cygwin
2 ## Use: make -f makefile.cygwin install
3
4 # Change this to wherever you want to install the DLL. This directory
5 # should be in your PATH.
6 BIN = /bin
7
8 # This is the location of pthreads for Win32, 
9 # see http://sourceware.cygnus.com/pthreads-win32/
10 PTHREADS = ../../pthreads-snap-1999-05-30
11 PTHREAD_LIB = -L $(PTHREADS) -lpthread
12 PTHREAD_INC = -I $(PTHREADS)
13
14 OPTIMIZE = -g -O
15
16 ################################################################
17
18 # Nothing much configurable below
19
20 CC = gcc -mno-cygwin -mpentium -fnative-struct
21
22 # Perl and awk are needed to generate some source files.
23 # These generated source files are distribuyted with the Win32 GTk+ source
24 # distributions, so don't worry if you don't have perl and awk.
25 PERL = perl
26 AWK = awk
27
28 INSTALL = install
29
30 GLIB_VER=1.3
31 GTK_VER=1.3
32
33 GDKSYSDEP = ../gdk/win32
34 GLIB = ../../glib
35 INTL = ../../intl
36
37 CFLAGS = $(OPTIMIZE) -I . -I .. -I $(GDKSYSDEP) -I ../gdk -I $(GLIB) -I $(GLIB)/gmodule -I $(INTL) -DGTK_DISABLE_COMPAT_H
38
39 all : \
40         ../config.h     \
41         gtkcompat.h     \
42         generated       \
43         gtk-$(GTK_VER).dll\
44         testdnd.exe     \
45         testgtk.exe     \
46         testinput.exe   \
47         testrgb.exe     \
48         testselection.exe \
49         simple.exe
50
51 install : all
52         $(INSTALL) gtk-$(GTK_VER).dll $(BIN)
53
54 gtk_OBJECTS = \
55         fnmatch.o       \
56         gtkaccelgroup.o \
57         gtkaccellabel.o \
58         gtkadjustment.o \
59         gtkalignment.o  \
60         gtkarg.o        \
61         gtkarrow.o      \
62         gtkaspectframe.o\
63         gtkbbox.o       \
64         gtkbin.o        \
65         gtkbindings.o   \
66         gtkbox.o        \
67         gtkbutton.o     \
68         gtkcalendar.o   \
69         gtkcheckbutton.o\
70         gtkcheckmenuitem.o\
71         gtkclist.o      \
72         gtkcolorsel.o   \
73         gtkcombo.o      \
74         gtkcontainer.o  \
75         gtkctree.o      \
76         gtkcurve.o      \
77         gtkdata.o       \
78         gtkdialog.o     \
79         gtkdnd.o        \
80         gtkdrawingarea.o\
81         gtkeditable.o   \
82         gtkentry.o      \
83         gtkeventbox.o   \
84         gtkfilesel.o    \
85         gtkfixed.o      \
86         gtkfontsel.o    \
87         gtkframe.o      \
88         gtkgamma.o      \
89         gtkgc.o         \
90         gtkhandlebox.o  \
91         gtkhbbox.o      \
92         gtkhbox.o       \
93         gtkhpaned.o     \
94         gtkhruler.o     \
95         gtkhscale.o     \
96         gtkhscrollbar.o \
97         gtkhseparator.o \
98         gtkimage.o      \
99         gtkinputdialog.o\
100         gtkinvisible.o  \
101         gtkitem.o       \
102         gtkitemfactory.o\
103         gtklabel.o      \
104         gtklayout.o     \
105         gtklist.o       \
106         gtklistitem.o   \
107         gtkmain.o       \
108         gtkmarshal.o    \
109         gtkmenu.o       \
110         gtkmenubar.o    \
111         gtkmenufactory.o\
112         gtkmenuitem.o   \
113         gtkmenushell.o  \
114         gtkmisc.o       \
115         gtknotebook.o   \
116         gtkobject.o     \
117         gtkoptionmenu.o \
118         gtkpacker.o     \
119         gtkpaned.o      \
120         gtkpixmap.o     \
121         gtkplug.o       \
122         gtkpreview.o    \
123         gtkprogress.o   \
124         gtkprogressbar.o\
125         gtkradiobutton.o\
126         gtkradiomenuitem.o\
127         gtkrange.o      \
128         gtkrc.o         \
129         gtkruler.o      \
130         gtkscale.o      \
131         gtkscrollbar.o  \
132         gtkscrolledwindow.o\
133         gtkselection.o  \
134         gtkseparator.o  \
135         gtksignal.o     \
136         gtksocket.o     \
137         gtkspinbutton.o \
138         gtkstatusbar.o  \
139         gtkstyle.o      \
140         gtktable.o      \
141         gtktearoffmenuitem.o\
142         gtktext.o       \
143         gtkthemes.o     \
144         gtktipsquery.o  \
145         gtktogglebutton.o\
146         gtktoolbar.o    \
147         gtktooltips.o   \
148         gtktree.o       \
149         gtktreeitem.o   \
150         gtktypeutils.o  \
151         gtkvbbox.o      \
152         gtkvbox.o       \
153         gtkviewport.o   \
154         gtkvpaned.o     \
155         gtkvruler.o     \
156         gtkvscale.o     \
157         gtkvscrollbar.o \
158         gtkvseparator.o \
159         gtkwidget.o     \
160         gtkwindow.o
161
162 # Source headers which are non-autogenerated headers
163 source_headers = \
164         gtk.h                   \
165         gtkaccelgroup.h         \
166         gtkaccellabel.h         \
167         gtkadjustment.h         \
168         gtkalignment.h          \
169         gtkarg.h                \
170         gtkarrow.h              \
171         gtkaspectframe.h        \
172         gtkbin.h                \
173         gtkbindings.h           \
174         gtkbbox.h               \
175         gtkbox.h                \
176         gtkbutton.h             \
177         gtkcalendar.h           \
178         gtkcheckbutton.h        \
179         gtkcheckmenuitem.h      \
180         gtkclist.h              \
181         gtkcolorsel.h           \
182         gtkcombo.h              \
183         gtkcompat.h             \
184         gtkcontainer.h          \
185         gtkctree.h              \
186         gtkcurve.h              \
187         gtkdata.h               \
188         gtkdebug.h              \
189         gtkdialog.h             \
190         gtkdnd.h                \
191         gtkdrawingarea.h        \
192         gtkeditable.h           \
193         gtkentry.h              \
194         gtkenums.h              \
195         gtkeventbox.h           \
196         gtkfilesel.h            \
197         gtkfixed.h              \
198         gtkfontsel.h            \
199         gtkframe.h              \
200         gtkgamma.h              \
201         gtkgc.h                 \
202         gtkhandlebox.h          \
203         gtkhbbox.h              \
204         gtkhbox.h               \
205         gtkhpaned.h             \
206         gtkhruler.h             \
207         gtkhscale.h             \
208         gtkhscrollbar.h         \
209         gtkhseparator.h         \
210         gtkimage.h              \
211         gtkinputdialog.h        \
212         gtkintl.h               \
213         gtkinvisible.h          \
214         gtkitem.h               \
215         gtkitemfactory.h        \
216         gtklabel.h              \
217         gtklayout.h             \
218         gtklist.h               \
219         gtklistitem.h           \
220         gtkmain.h               \
221         gtkmenu.h               \
222         gtkmenubar.h            \
223         gtkmenufactory.h        \
224         gtkmenuitem.h           \
225         gtkmenushell.h          \
226         gtkmisc.h               \
227         gtknotebook.h           \
228         gtkobject.h             \
229         gtkoptionmenu.h         \
230         gtkpacker.h             \
231         gtkpaned.h              \
232         gtkpixmap.h             \
233         gtkplug.h               \
234         gtkpreview.h            \
235         gtkprivate.h            \
236         gtkprogress.h           \
237         gtkprogressbar.h        \
238         gtkradiobutton.h        \
239         gtkradiomenuitem.h      \
240         gtkrange.h              \
241         gtkrc.h                 \
242         gtkruler.h              \
243         gtkscale.h              \
244         gtkscrollbar.h          \
245         gtkscrolledwindow.h     \
246         gtkselection.h          \
247         gtkseparator.h          \
248         gtksignal.h             \
249         gtksocket.h             \
250         gtkspinbutton.h         \
251         gtkstyle.h              \
252         gtkstatusbar.h          \
253         gtktable.h              \
254         gtktearoffmenuitem.h    \
255         gtktext.h               \
256         gtkthemes.h             \
257         gtktipsquery.h          \
258         gtktogglebutton.h       \
259         gtktoolbar.h            \
260         gtktooltips.h           \
261         gtktree.h               \
262         gtktreeitem.h           \
263         gtktypeutils.h          \
264         gtkvbbox.h              \
265         gtkvbox.h               \
266         gtkviewport.h           \
267         gtkvpaned.h             \
268         gtkvruler.h             \
269         gtkvscale.h             \
270         gtkvscrollbar.h         \
271         gtkvseparator.h         \
272         gtkwidget.h             \
273         gtkwindow.h
274
275 # More headers to use when autogenerating.
276 gdk_headers = \
277         ../gdk/gdkcc.h          \
278         ../gdk/gdkcolor.h       \
279         ../gdk/gdkcursor.h      \
280         ../gdk/gdkdnd.h         \
281         ../gdk/gdkdrawable.h    \
282         ../gdk/gdkevents.h      \
283         ../gdk/gdkfont.h        \
284         ../gdk/gdkgc.h          \
285         ../gdk/gdkim.h          \
286         ../gdk/gdkimage.h       \
287         ../gdk/gdkinput.h       \
288         ../gdk/gdkpixmap.h      \
289         ../gdk/gdkproperty.h    \
290         ../gdk/gdkregion.h      \
291         ../gdk/gdkrgb.h         \
292         ../gdk/gdkselection.h   \
293         ../gdk/gdktypes.h       \
294         ../gdk/gdkvisual.h      \
295         ../gdk/gdkwindow.h
296
297 ../config.h : ../config.h.win32
298         cp ../config.h.win32 ../config.h
299
300 gtkcompat.h : gtkcompat.h.win32
301         cp gtkcompat.h.win32 gtkcompat.h
302
303 #
304 # Generated source files:
305 #
306 generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
307
308 gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
309         $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
310         cat gd.tmp gtk-boxed.defs >gtk.defs
311         rm gd.tmp
312
313 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
314 gtktypebuiltins.h: gtk.defs maketypes.awk
315         $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
316
317 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
318 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
319         $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
320
321 # generate type entries for type-id registration
322 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
323         $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
324
325 # generate enum value arrays
326 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
327         $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
328
329 gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
330         $(PERL) genmarshal.pl
331         -rm gtkmarshal.c
332         mv s-gmc gtkmarshal.c
333         -rm gtkmarshal.h
334         mv s-gmh gtkmarshal.h
335
336 #
337 # Linking:
338 #
339 gtk-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def
340         $(GLIB)/build-dll gtk $(GTK_VER) gtk.def $(gtk_OBJECTS) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L$(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lgdi32 -luser32
341
342 .SUFFIXES: .c .o .i
343
344 # General rule for compiling the objects into the DLL
345 .c.o :
346         $(CC) $(CFLAGS) -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
347
348 .c.i :
349         $(CC) $(CFLAGS) -E -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $< >$@
350
351 #
352 # Test programs:
353 #
354 testdnd.exe : testdnd.o
355         $(CC) $(CFLAGS) -o $@ testdnd.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
356
357 # Must have separate rules for these objects that don't go in the DLL
358 testdnd.o : testdnd.c
359         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
360
361 testgtk.exe : testgtk.o
362         $(CC) $(CFLAGS) -o $@  testgtk.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
363
364 testgtk.o : testgtk.c
365         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
366
367 testinput.exe : testinput.o
368         $(CC) $(CFLAGS) -o $@  testinput.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
369
370 testinput.o : testinput.c
371         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
372
373 testrgb.exe : testrgb.o
374         $(CC) $(CFLAGS) -o $@  testrgb.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
375
376 testrgb.o : testrgb.c
377         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
378
379 testselection.exe : testselection.o
380         $(CC) $(CFLAGS) -o $@  testselection.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
381
382 testselection.o : testselection.c
383         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
384
385 testthreads.exe : testthreads.o
386         $(CC) $(CFLAGS) -o $@  testthreads.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgthread-$(GLIB_VER) $(PTHREAD_LIB) $(LDFLAGS)
387
388 testthreads.o : testthreads.c
389         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
390
391 simple.exe : simple.o
392         $(CC) $(CFLAGS) -o $@  simple.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
393
394 simple.o : simple.c
395         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
396
397 # The clean target doesn't remove the generated sources
398 clean:
399         -rm *.exe *.o *.dll *.a *.exp *.base