1## Makefile for building the GDK DLL with Microsoft C
2## Use: nmake -f makefile.msc
3
4## You must first build the Win32-dependent sources in the win32 subdirectory.
5
6## There is no install target, you have to decide where and
7## how to install for yourself.
8
9TOP = ..\..
10!INCLUDE $(TOP)/glib/build/win32/make.msc
11
12# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
13# definition should possibly go to build/win32/module.def, too.
14!IFNDEF WTKIT
15WTKIT = $(TOP)\wtkit126
16!ENDIF
17
18###############################################################
19
20# Nothing much configurable below
21# overwrite version?
22GTK_VER=3.0
23
24!IFNDEF PERL
25PERL = perl
26!ENDIF
27
28INCLUDES = -FImsvc_recommended_pragmas.h \
29	-I . -I .. \
30	$(GLIB_CFLAGS) $(PANGO_CFLAGS) $(CAIRO_CFLAGS) $(GDK_PIXBUF_CFLAGS) \
31
32DEFINES = \
33	-DHAVE_CONFIG_H \
34	-DGDK_VERSION=\"$(GTK_VER)\" \
35	-DG_LOG_DOMAIN=\"Gdk\" \
36	-DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\"
37
38EXTRALIBS = \
39	$(WTKIT)\lib\i386\wntab32x.lib \
40	$(GLIB_LIBS) $(GDK_PIXBUF_LIBS) \
41	$(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) \
42	$(PANGOWIN32_LIBS) $(PANGOCAIRO_LIBS) $(INTL_LIBS)
43
44gdk-win32-backend :
45	cd win32
46	nmake -nologo -f makefile.msc
47	cd ..
48
49all: \
50	..\config.h \
51	gdkconfig.h \
52	gdkenumtypes.h \
53	gdkenumtypes.c \
54	gdkmarshalers.h \
55	gdkmarshalers.c \
56	gdk-win32-backend \
57	libgdk-win32-$(GTK_VER)-0.dll \
58#	testgdk.exe \
59#	gdk-win32-$(GTK_VER)s.lib \
60#	gdk-x11-$(GTK_VER).dll \
61
62gdk_OBJECTS = \
63	gdk.obj \
64	gdkapplaunchcontext.obj \
65	gdkcairo.obj \
66	gdkcolor.obj \
67	gdkcursor.obj \
68	gdkdevice.obj \
69	gdkdevicemanager.obj \
70	gdkdisplay.obj \
71	gdkdisplaymanager.obj \
72	gdkdnd.obj \
73	gdkenumtypes.obj \
74	gdkevents.obj \
75	gdkglobals.obj \
76	gdkkeynames.obj \
77	gdkkeys.obj \
78	gdkkeyuni.obj \
79	gdkmarshalers.obj \
80	gdkoffscreenwindow.obj \
81	gdkpango.obj \
82	gdkpixbuf-drawable.obj \
83	gdkrectangle.obj \
84	gdkrgba.obj \
85	gdkscreen.obj \
86	gdkselection.obj \
87	gdkvisual.obj \
88	gdkwindow.obj \
89	gdkwindowimpl.obj \
90
91gdk_public_h_sources = 				\
92	gdk.h					\
93	gdkapplaunchcontext.h			\
94	gdkcairo.h				\
95	gdkcolor.h				\
96	gdkcursor.h				\
97	gdkdevice.h				\
98	gdkdevicemanager.h			\
99	gdkdisplay.h				\
100	gdkdisplaymanager.h			\
101	gdkdnd.h				\
102	gdkevents.h				\
103	gdkkeys.h				\
104	gdkkeysyms.h				\
105	gdkkeysyms-compat.h			\
106	gdkmain.h				\
107	gdkpango.h				\
108	gdkpixbuf.h				\
109	gdkprivate.h				\
110	gdkproperty.h				\
111	gdkrectangle.h				\
112	gdkrgba.h				\
113	gdkscreen.h				\
114	gdkselection.h				\
115	gdktestutils.h				\
116	gdkthreads.h				\
117	gdktypes.h				\
118	gdkvisual.h				\
119	gdkwindow.h
120
121# private marshalers
122gdkmarshalers.h : gdkmarshalers.list
123	$(GLIB)\gobject\glib-genmarshal --prefix=_gdk_marshal gdkmarshalers.list --header >>gdkmarshalers.h
124
125gdkmarshalers.c : gdkmarshalers.list
126	$(GLIB)\gobject\glib-genmarshal --prefix=_gdk_marshal gdkmarshalers.list --body >gdkmarshalers.c
127
128gdkenumtypes.h: $(gdk_public_h_sources) gdkenumtypes.h.template
129	$(PERL) $(GLIB)\gobject\glib-mkenums --template gdkenumtypes.h.template \
130		$(gdk_public_h_sources) > gdkenumtypes.h
131
132gdkenumtypes.c: $(gdk_public_h_sources) gdkenumtypes.c.template
133	$(PERL) $(GLIB)\gobject\glib-mkenums --template gdkenumtypes.c.template \
134		$(gdk_public_h_sources) > gdkenumtypes.c
135
136..\config.h : ..\config.h.win32
137	copy ..\config.h.win32 ..\config.h
138
139gdkconfig.h : gdkconfig.h.win32
140	copy gdkconfig.h.win32 gdkconfig.h
141
142gdk.def: gdk.symbols
143	echo EXPORTS > gdk.def
144	cl /EP -DG_OS_WIN32 -DGDK_WINDOWING_WIN32 \
145		-DG_GNUC_CONST= \
146		gdk.symbols >> gdk.def
147
148# /force /verbose:lib
149libgdk-win32-$(GTK_VER)-0.dll : $(gdk_OBJECTS) gdk.def win32\gdk-win32.lib
150	$(CC) $(CFLAGS) -LD -Fe$@ $(gdk_OBJECTS) win32\gdk-win32.lib $(EXTRALIBS) \
151	gdi32.lib user32.lib imm32.lib shell32.lib ole32.lib uuid.lib win32\gdk.res \
152	$(LDFLAGS) /implib:gdk-win32-$(GTK_VER).lib /def:gdk.def
153
154gdk-win32-$(GTK_VER)s.lib : $(gdk_OBJECTS)
155	lib /out:gdk-win32-$(GTK_VER)s.lib $(gdk_OBJECTS) win32\gdk-win32.lib
156
157gdk-x11-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def x11\gdk-x11.lib
158	$(CC) $(CFLAGS) -LD -Fegdk-x11-$(GTK_VER).dll $(gdk_OBJECTS) \
159	$(PANGO)\pango\pangox-$(PANGO_VER).lib \
160	x11\gdk-x11.lib $(X11_LIBS) $(EXTRALIBS) user32.lib $(LDFLAGS) /def:gdk.def
161
162testgdk.exe : libgdk-win32-$(GTK_VER)-0.dll testgdk.obj
163	$(CC) -Fetestgdk.exe testgdk.obj gdk-win32-$(GTK_VER).lib $(EXTRALIBS) $(LDFLAGS)
164
165clean::
166	cd win32
167	nmake -f makefile.msc clean
168	cd ..
169	del gdkmarshalers.c
170	del gdkmarshalers.h
171	del *.dll
172	del *.obj
173	del *.lib
174	del *.err
175	del *.res
176