1AUTOMAKE_OPTIONS = 1.7
2
3PLATFORM_VERSION = 2.0
4
5CLEANFILES =
6EXTRA_DIST =
7INCLUDES = \
8	$(PYTHON_INCLUDES) \
9	$(PYGOBJECT_CFLAGS) \
10	-I$(srcdir)/gtk
11
12# defs files
13defsdir = $(pkgdatadir)/$(PLATFORM_VERSION)/defs
14defs_DATA =
15
16# python scripts & extension modules
17pkgpythondir = $(pyexecdir)/gtk-2.0
18pkgpyexecdir = $(pyexecdir)/gtk-2.0
19
20# gtk python extension modules
21pygtkexecdir = $(pkgpyexecdir)/gtk
22pygtkexec_LTLIBRARIES =
23
24# gtk python scripts
25pygtkdir = $(pkgpythondir)/gtk
26pygtk_PYTHON = 			\
27	__init__.py 		\
28	_lazyutils.py		\
29	compat.py		\
30	deprecation.py		\
31	keysyms.py
32
33# gtk headers
34pkgincludedir = $(includedir)/pygtk-$(PLATFORM_VERSION)/pygtk
35pkginclude_HEADERS = pygtk.h
36
37# linker flags
38common_ldflags = -module -avoid-version
39if PLATFORM_WIN32
40common_ldflags += -no-undefined
41endif
42
43# gtk module
44GTK_DEFS = gtk-base.defs
45GDK_DEFS = gdk-base.defs
46GTKUNIXPRINT_DEFS = gtkunixprint-base.defs
47GTK_TYPES_DEFS = gtk-base-types.defs
48GDK_TYPES_DEFS = gdk-base-types.defs
49GTKUNIXPRINT_TYPES_DEFS = gtkunixprint-base-types.defs
50
51GTK_2_10_DEFS = gdk-2.10.defs gtk-2.10.defs gtk-2.10-types.defs
52
53GTK_2_12_DEFS =
54	gdk-2.12.defs		\
55	gtk-2.12.defs		\
56	gtk-2.12-types.defs	\
57	gtkunixprint-2.12.defs
58
59GTK_2_14_DEFS =
60	gdk-2.14.defs		\
61	gtk-2.14.defs		\
62	gtk-2.14-types.defs 	\
63	gtkunixprint-2.14.defs
64
65GTK_2_16_DEFS =
66	gdk-2.16.defs		\
67	gtk-2.16.defs		\
68	gtk-2.16-types.defs
69
70GTK_2_18_DEFS =
71	gdk-2.18.defs		\
72	gtk-2.18.defs		\
73	gtk-2.18-types.defs
74
75GTK_2_20_DEFS =
76	gdk-2.20.defs		\
77	gtk-2.20.defs		\
78	gtk-2.20-types.defs	\
79	gtkunixprint-2.20.defs
80
81GTK_2_22_DEFS =
82	gdk-2.22.defs		\
83	gtk-2.22.defs		\
84	gtk-2.22-types.defs
85
86GTK_2_24_DEFS =
87	gdk-2.24.defs		\
88	gtk-2.24.defs		\
89	gtk-2.24-types.defs
90
91if HAVE_GTK_2_10
92GDK_DEFS += gdk-2.10.defs
93GTK_DEFS += gtk-2.10.defs
94GTK_TYPES_DEFS += gtk-2.10-types.defs
95endif
96
97if HAVE_GTK_2_12
98GDK_DEFS += gdk-2.12.defs
99GTK_DEFS += gtk-2.12.defs
100GTK_TYPES_DEFS += gtk-2.12-types.defs
101GTKUNIXPRINT_DEFS += gtkunixprint-2.12.defs
102endif
103
104
105if HAVE_GTK_2_14
106GDK_DEFS += gdk-2.14.defs
107GTK_DEFS += gtk-2.14.defs
108GTK_TYPES_DEFS += gtk-2.14-types.defs
109GTKUNIXPRINT_DEFS += gtkunixprint-2.14.defs
110endif
111
112if HAVE_GTK_2_16
113GDK_DEFS += gdk-2.16.defs
114GTK_DEFS += gtk-2.16.defs
115GTK_TYPES_DEFS += gtk-2.16-types.defs
116endif
117
118if HAVE_GTK_2_18
119GDK_DEFS += gdk-2.18.defs
120GTK_DEFS += gtk-2.18.defs
121GTK_TYPES_DEFS += gtk-2.18-types.defs
122endif
123
124if HAVE_GTK_2_20
125GDK_DEFS += gdk-2.20.defs
126GTK_DEFS += gtk-2.20.defs
127GTK_TYPES_DEFS += gtk-2.20-types.defs
128endif
129
130if HAVE_GTK_2_22
131GDK_DEFS += gdk-2.22.defs
132GTK_DEFS += gtk-2.22.defs
133GTK_TYPES_DEFS += gtk-2.22-types.defs
134endif
135
136if HAVE_GTK_2_24
137GDK_DEFS += gdk-2.24.defs
138GTK_DEFS += gtk-2.24.defs
139GTK_TYPES_DEFS += gtk-2.24-types.defs
140endif
141
142CREATEDEFS = $(PYTHON) $(CODEGENDIR)/createdefs.py
143
144GDK_OVERRIDES = \
145	gdk.override 		\
146	gdkcairo.override	\
147	gdkcolor.override	\
148	gdkdraw.override	\
149	gdkevent.override	\
150	gdkgc.override		\
151	gdkpixbuf.override	\
152	gdkrectangle.override	\
153	gdkwindow.override
154
155GTK_OVERRIDES = 		\
156	gtk.override 		\
157	gtkborder.override	\
158	gtkbuilder.override 	\
159	gtkclist.override 	\
160	gtkcontainer.override 	\
161	gtkctree.override 	\
162	gtkiconview.override 	\
163	gtkrcstyle.override 	\
164	gtkstatusbar.override	\
165	gtkstyle.override 	\
166	gtktextview.override 	\
167	gtktoolbar.override 	\
168	gtktreeview.override 	\
169	gtkwidget.override 	\
170	gtkwindow.override
171
172CLEANFILES +=			\
173	gtk.c			\
174	gdk.c			\
175	gtk.defs		\
176	gtk-types.defs		\
177	gdk.defs		\
178	gdk-types.defs		\
179	gen-gtk.c
180
181EXTRA_DIST += 			\
182	gtk-extrafuncs.defs	\
183	$(GDK_DEFS) 		\
184	$(GDK_TYPES_DEFS) 	\
185	$(GDK_OVERRIDES) 	\
186	$(GTK_DEFS) 		\
187	$(GTK_TYPES_DEFS)	\
188	$(GTK_2_10_DEFS)	\
189	$(GTK_2_12_DEFS)	\
190	$(GTK_2_14_DEFS)	\
191	$(GTK_2_16_DEFS)	\
192	$(GTK_2_18_DEFS)	\
193	$(GTK_2_20_DEFS)	\
194	$(GTK_2_22_DEFS)	\
195	$(GTK_2_24_DEFS)	\
196	$(GTK_OVERRIDES)
197
198
199gdk.defs: $(GDK_DEFS) Makefile
200	$(CREATEDEFS) $@ $(GDK_DEFS)
201
202gtk.defs: $(GTK_DEFS) Makefile
203	$(CREATEDEFS) $@ $(GTK_DEFS)
204
205gdk-types.defs: $(GDK_TYPES_DEFS) Makefile
206	$(CREATEDEFS) $@ $(GDK_TYPES_DEFS)
207
208gtk-types.defs: $(GTK_TYPES_DEFS) Makefile
209	$(CREATEDEFS) $@ $(GTK_TYPES_DEFS)
210
211gtkunixprint.defs: $(GTKUNIXPRINT_DEFS) Makefile
212	$(CREATEDEFS) $@ $(GTKUNIXPRINT_DEFS)
213
214gtkunixprint-types.defs: $(GTKUNIXPRINT_TYPES_DEFS) Makefile
215	$(CREATEDEFS) $@ $(GTKUNIXPRINT_TYPES_DEFS)
216
217gdk.c: gdk-types.defs gdk.defs $(GDK_OVERRIDES)
218gtk.c: gdk-types.defs gtk-types.defs gtk.defs gdk-types.defs $(GTK_OVERRIDES)
219_gtk_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTK_CFLAGS)
220_gtk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtk
221_gtk_la_LIBADD = $(GTK_LIBS)
222_gtk_la_SOURCES = 		\
223	gtk-types.c 		\
224	gtkmodule.c 		\
225	gtkobject-support.c 	\
226	pygtk.h 		\
227	pygtk-private.h 	\
228	pygtkcellrenderer.h 	\
229	pygtkcellrenderer.c	\
230	pygtktreemodel.h 	\
231	pygtktreemodel.c
232nodist__gtk_la_SOURCES = gtk.c gdk.c
233if BUILD_GTK
234pygtkexec_LTLIBRARIES += _gtk.la
235defs_DATA += $(GDK_DEFS) $(GDK_TYPES_DEFS) $(GTK_DEFS) $(GTK_TYPES_DEFS) \
236	gdk.defs gtk.defs gdk-types.defs gtk-types.defs gtk-extrafuncs.defs
237endif
238
239# libglade module
240LIBGLADE_DEFS = libglade.defs
241CLEANFILES += libglade.c
242EXTRA_DIST += $(LIBGLADE_DEFS) libglade.override
243libglade.c: $(LIBGLADE_DEFS) libglade.override gdk-types.defs gtk-types.defs
244glade_la_CFLAGS = $(LIBGLADE_CFLAGS)
245glade_la_LIBADD = $(LIBGLADE_LIBS)
246glade_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initglade
247glade_la_SOURCES = libglademodule.c
248nodist_glade_la_SOURCES = libglade.c
249if BUILD_LIBGLADE
250pygtkexec_LTLIBRARIES += glade.la
251defs_DATA += $(LIBGLADE_DEFS)
252endif
253
254# gtkunixprint module
255CLEANFILES +=			\
256	gtkunixprint.c 		\
257	gtkunixprint.defs 	\
258	gtkunixprint-types.defs
259
260
261EXTRA_DIST +=				\
262	$(GTKUNIXPRINT_DEFS)		\
263	$(GTKUNIXPRINT_TYPES_DEFS)	\
264	gtkunixprint.override
265
266gtkunixprint.c:						\
267	 gtkunixprint-types.defs gtkunixprint.defs	\
268		gtkunixprint.override gdk-types.defs	\
269		gtk-types.defs
270
271gtkunixprint_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTKUNIXPRINT_CFLAGS)
272gtkunixprint_la_LIBADD = $(GTKUNIXPRINT_LIBS)
273gtkunixprint_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initgtkunixprint
274gtkunixprint_la_SOURCES = gtkunixprintmodule.c
275nodist_gtkunixprint_la_SOURCES = gtkunixprint.c
276if BUILD_GTKUNIXPRINT
277pkgpyexec_LTLIBRARIES = gtkunixprint.la
278defs_DATA += $(GTKUNIXPRINT_DEFS) $(GTKUNIXPRINT_TYPES_DEFS)
279endif
280
281if PLATFORM_WIN32
282_gtk_la_CFLAGS  += -DPLATFORM_WIN32
283endif
284
285
286extra_codegen_args =
287
288if HAVE_GIO_TYPES_DEFS
289extra_codegen_args += --register $(PYGOBJECT_DEFSDIR)/gio-types.defs
290endif
291
292.defs.c:
293	($(PYTHON) $(CODEGENDIR)/codegen.py \
294	   $(PYGTK_CODEGEN_DEFINES) \
295	    -I $(srcdir) \
296	    --py_ssize_t-clean $(extra_codegen_args) \
297	    --register $(top_srcdir)/pango-types.defs \
298	    --register $(top_srcdir)/atk-types.defs \
299	    --register gdk-types.defs \
300	    --register gtk-types.defs \
301	    --override $(srcdir)/$*.override \
302	    --prefix py$* $<) > gen-$*.c \
303	&& cp gen-$*.c $*.c \
304	&& rm -f gen-$*.c
305
306# prevent the .defs.c rule from trying to generate gtk-types.c because
307# there is gtk-types.defs.  This is basically a hack and I really wish I
308# could use pattern rules.  Perhaps we should rename gtk-types.c.
309gtk-types.c:
310	@:
311
312
313all: $(pygtkexec_LTLIBRARIES:.la=.so) $(pkgpyexec_LTLIBRARIES:.la=.so)
314clean-local:
315	rm -f $(pygtkexec_LTLIBRARIES:.la=.so) $(pkgpyexec_LTLIBRARIES:.la=.so)
316.la.so:
317	$(LN_S) .libs/$@ $@ || true
318