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