AUTOMAKE_OPTIONS = 1.7

CLEANFILES =

CLUTTER_DEFS = clutter-base.defs
CLUTTER_TYPES_DEFS = clutter-base-types.defs
CLUTTER_OVERRIDES = clutter.override

CLEANFILES += 			\
	clutter.defs		\
	clutter-types.defs

EXTRA_DIST = 			\
	clutter-base.defs	\
	clutter-base-types.defs \
	clutter.override

clutter.defs: Makefile stamp-clutter.defs
	@true
stamp-clutter.defs: $(CLUTTER_DEFS)
	@echo "*** Creating clutter.defs" && \
	echo ";; -*- scheme -*-" > gen-cdefs && \
	echo ";; THIS FILE IS AUTOGENERATED" >> gen-cdefs && \
	for p in $(CLUTTER_DEFS); do \
		echo "(include \"$(top_srcdir)/bindings/python/$$p\")" >> gen-cdefs; \
	done &&	\
	(cmp -s gen-cdefs clutter.defs || cp gen-cdefs clutter.defs) && \
	rm -f gen-cdefs && \
	echo "timestamp" > $(@F)

clutter-types.defs: Makefile stamp-clutter-types.defs
	@true
stamp-clutter-types.defs: $(CLUTTER_TYPES_DEFS)
	@echo "*** Creating clutter-types.defs" &&					\
	echo ";; -*- scheme -*-" > gen-ctdefs &&					\
	echo ";; THIS FILE IS AUTOGENERATED" >> gen-ctdefs &&				\
	for p in $(CLUTTER_TYPES_DEFS); do						\
		echo "(include \"$(top_srcdir)/bindings/python/$$p\")" >> gen-ctdefs;	\
	done &&										\
	(cmp -s gen-ctdefs clutter-types.defs || cp gen-ctdefs clutter-types.defs) &&	\
	rm -f gen-ctdefs && \
	echo "timestamp" > $(@F)

CLEANFILES += stamp-clutter.defs stamp-clutter-types.defs

clutter-pyglue.c: clutter.defs clutter-types.defs $(CLUTTER_OVERRIDES)
	$(PYGTK_CODEGEN)				\
        --register $(PYGTK_DEFSDIR)/gdk-types.defs	\
        --register $(PYGTK_DEFSDIR)/gtk-types.defs	\
        --register $(PYGTK_DEFSDIR)/pango-types.defs	\
	--register clutter-types.defs			\
	--override $(top_srcdir)/bindings/python/$(CLUTTER_OVERRIDES)	\
	--prefix clutter				\
        clutter.defs > gen-$@ &&			\
	(cmp -s $@ gen-$@ || cp gen-$@ $@) &&		\
	rm -f gen-$@

CLEANFILES += clutter-pyglue.c

pythondir = $(libdir)/python${PY_VER}/site-packages
python_LTLIBRARIES = clutter.la

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = pyclutter.pc

EXTRA_DIST += pyclutter.pc.in

INCLUDES = $(PYTHON_CFLAGS) $(PYGTK_CFLAGS) -I$(top_srcdir) $(GST_CFLAGS) $(CLUTTER_CFLAGS)

clutter_la_SOURCES = clutter-pyglue.c cluttermodule.c
clutter_la_LIBADD  = $(PYTHON_LIBS) $(PYGTK_LIBS) \
		     $(GST_LIBS) \
		     $(CLUTTER_LIBS) \
                     $(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
clutter_la_LDFLAGS = -module -avoid-version -export-symbols-regex initclutter

# Run this to update the API and then copy then newly generated
# definitions into clutter-base.defs and clutter-base-types.defs;
# it's manual, as my might do some name mangling for static
# methods.
update-defs:
	$(PYTHON) $(PYGTK_CODEGENDIR)/h2def.py -v       \
		$(top_srcdir)/clutter/clutter-keysyms.h         \
		$(top_srcdir)/clutter/clutter-timeline.h        \
		$(top_srcdir)/clutter/clutter-media.h		\
		$(top_srcdir)/clutter/clutter-main.h            \
		$(top_srcdir)/clutter/clutter-event.h           \
		$(top_srcdir)/clutter/clutter-actor.h         \
		$(top_srcdir)/clutter/clutter-rectangle.h       \
		$(top_srcdir)/clutter/clutter-texture.h         \
		$(top_srcdir)/clutter/clutter-video-texture.h	\
		$(top_srcdir)/clutter/clutter-color.h           \
		$(top_srcdir)/clutter/clutter-clone-texture.h   \
		$(top_srcdir)/clutter/clutter-label.h           \
		$(top_srcdir)/clutter/clutter-group.h           \
		$(top_srcdir)/clutter/clutter-stage.h           \
		$(top_srcdir)/clutter/clutter-enum-types.h      \
	> gen-cdefs && \
	(cmp -s gen-cdefs clutter-api.def || cp gen-cdefs clutter-api.def) && \
	rm -f gen-cdefs