]> Pileus Git - ~andy/gtk/blob - gtk/makefile.cygwin
be2a52e9fe73ca4a3809d12b59b94d28e8e94815
[~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 GETTEXT = ../../gettext-0.10.35
36
37 CFLAGS = $(OPTIMIZE) -I . -I .. -I $(GDKSYSDEP) -I $(GLIB) -I $(GLIB)/gmodule -I $(GETTEXT)/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/gdktypes.h \
278         ../gdk/gdkrgb.h
279
280 ../config.h : ../config.h.win32
281         cp ../config.h.win32 ../config.h
282
283 gtkcompat.h : gtkcompat.h.win32
284         cp gtkcompat.h.win32 gtkcompat.h
285
286 #
287 # Generated source files:
288 #
289 generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
290
291 gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
292         $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
293         cat gd.tmp gtk-boxed.defs >gtk.defs
294         rm gd.tmp
295
296 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
297 gtktypebuiltins.h: gtk.defs maketypes.awk
298         $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
299
300 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
301 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
302         $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
303
304 # generate type entries for type-id registration
305 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
306         $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
307
308 # generate enum value arrays
309 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
310         $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
311
312 gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
313         $(PERL) genmarshal.pl
314         -rm gtkmarshal.c
315         mv s-gmc gtkmarshal.c
316         -rm gtkmarshal.h
317         mv s-gmh gtkmarshal.h
318
319 #
320 # Linking:
321 #
322 gtk-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def
323         $(GLIB)/build-dll gtk $(GTK_VER) gtk.def $(gtk_OBJECTS) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L$(GETTEXT)/intl -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lgdi32 -luser32
324
325 # General rule for compiling the objects into the DLL
326 .c.o :
327         $(CC) $(CFLAGS) -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
328
329 #
330 # Test programs:
331 #
332 testdnd.exe : testdnd.o
333         $(CC) $(CFLAGS) -o $@ testdnd.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
334
335 # Must have separate rules for these objects that don't go in the DLL
336 testdnd.o : testdnd.c
337         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
338
339 testgtk.exe : testgtk.o
340         $(CC) $(CFLAGS) -o $@  testgtk.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
341
342 testgtk.o : testgtk.c
343         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
344
345 testinput.exe : testinput.o
346         $(CC) $(CFLAGS) -o $@  testinput.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
347
348 testinput.o : testinput.c
349         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
350
351 testrgb.exe : testrgb.o
352         $(CC) $(CFLAGS) -o $@  testrgb.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
353
354 testrgb.o : testrgb.c
355         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
356
357 testselection.exe : testselection.o
358         $(CC) $(CFLAGS) -o $@  testselection.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
359
360 testselection.o : testselection.c
361         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
362
363 testthreads.exe : testthreads.o
364         $(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)
365
366 testthreads.o : testthreads.c
367         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
368
369 simple.exe : simple.o
370         $(CC) $(CFLAGS) -o $@  simple.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
371
372 simple.o : simple.c
373         $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
374
375 # The clean target doesn't remove the generated sources
376 clean:
377         -rm *.exe *.o *.dll *.a *.exp *.base