1 ## Makefile for building the GTK DLL with gcc-2.95 or later on cygwin
2 ## Use: make -f makefile.cygwin
4 ## There is no install target, you have to decide where and
5 ## how to install for yourself.
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)
15 ################################################################
17 # Nothing much configurable below
19 CC = gcc -mno-cygwin -mpentium -fnative-struct
21 # Perl and awk are needed to generate some source files.
22 # These generated source files are distribuyted with the Win32 GTk+ source
23 # distributions, so don't worry if you don't have perl and awk.
33 CFLAGS = $(OPTIMIZE) -I . -I .. -I ../gdk -I $(GLIB) -I $(GLIB)/gmodule -I $(INTL) -DGTK_DISABLE_COMPAT_H
134 gtktearoffmenuitem.o\
155 # Source headers which are non-autogenerated headers
236 gtkscrolledwindow.h \
245 gtktearoffmenuitem.h \
266 # More headers to use when autogenerating.
272 ../gdk/gdkdrawable.h \
280 ../gdk/gdkproperty.h \
283 ../gdk/gdkselection.h \
288 ../config.h : ../config.h.win32
289 cp ../config.h.win32 ../config.h
291 gtkcompat.h : gtkcompat.h.win32
292 cp gtkcompat.h.win32 gtkcompat.h
295 # Generated source files:
297 generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
299 gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
300 $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
301 cat gd.tmp gtk-boxed.defs >gtk.defs
304 # generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
305 gtktypebuiltins.h: gtk.defs maketypes.awk
306 $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
308 # generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
309 gtktypebuiltins_vars.c: gtk.defs maketypes.awk
310 $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
312 # generate type entries for type-id registration
313 gtktypebuiltins_ids.c: gtk.defs maketypes.awk
314 $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
316 # generate enum value arrays
317 gtktypebuiltins_evals.c: makeenums.pl gtk.defs
318 $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
320 gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
321 $(PERL) genmarshal.pl gtkmarshal.list s-gmh s-gmc
323 mv s-gmc gtkmarshal.c
325 mv s-gmh gtkmarshal.h
330 gtk-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def gtk-win32res.o
331 $(GLIB)/build-dll gtk $(GTK_VER) gtk.def $(gtk_OBJECTS) gtk-win32res.o -L ../gdk -lgdk-$(GTK_VER) -L$(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lgdi32 -luser32
335 # Kludge to get the path to the win32 headers
336 WIN32APIHEADERS = $(shell echo "\#include <winver.h>" | $(CC) -M -E - | tail -1 | sed -e 's!/winver.h!!')
338 gtk-win32res.o : gtk.rc gtk-build.tmp
339 m4 -DBUILDNUMBER=`cat gtk-build.tmp` <gtk.rc >gtk-win32res.rc
340 windres --include-dir $(WIN32APIHEADERS) gtk-win32res.rc gtk-win32res.o
341 rm gtk-build.tmp gtk-win32res.rc
343 # Magic to bump the build number
345 bash -c "read number && echo $$[number+1]" <gtk-build.stamp >gtk-build.tmp
346 cp gtk-build.tmp gtk-build.stamp
348 # General rule for compiling the objects into the DLL
350 $(CC) $(CFLAGS) -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
353 $(CC) $(CFLAGS) -E -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $< >$@
358 testdnd.exe : testdnd.o
359 $(CC) $(CFLAGS) -o $@ testdnd.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
361 # Must have separate rules for these objects that don't go in the DLL
362 testdnd.o : testdnd.c
363 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
365 testgtk.exe : testgtk.o
366 $(CC) $(CFLAGS) -o $@ testgtk.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
368 testgtk.o : testgtk.c
369 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
371 testinput.exe : testinput.o
372 $(CC) $(CFLAGS) -o $@ testinput.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
374 testinput.o : testinput.c
375 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
377 testrgb.exe : testrgb.o
378 $(CC) $(CFLAGS) -o $@ testrgb.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
380 testrgb.o : testrgb.c
381 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
383 testselection.exe : testselection.o
384 $(CC) $(CFLAGS) -o $@ testselection.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
386 testselection.o : testselection.c
387 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
389 testthreads.exe : testthreads.o
390 $(CC) $(CFLAGS) -o $@ testthreads.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgthread-$(GLIB_VER) $(PTHREAD_LIB) $(LDFLAGS)
392 testthreads.o : testthreads.c
393 $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
395 simple.exe : simple.o
396 $(CC) $(CFLAGS) -o $@ simple.o -L . -lgtk-$(GTK_VER) -L ../gdk -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
399 $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
401 # The clean target doesn't remove the generated sources
403 -rm *.exe *.o *.dll *.a *.exp *.base