mirror of
https://github.com/brl/mutter.git
synced 2024-12-24 12:02:04 +00:00
0fc9452b03
Bug 1478 - typelib creation shaved out of existence Add a 'GEN' output rule for the typelib files created when introspection is enabled.
308 lines
9.4 KiB
Makefile
308 lines
9.4 KiB
Makefile
NULL =
|
|
V = @
|
|
Q = $(V:1=)
|
|
QUIET_GEN = $(Q:@=@echo ' GEN '$@;)
|
|
|
|
SUBDIRS = cogl pango $(backendextra) $(clutterbackend)
|
|
|
|
if LOCAL_JSON_GLIB
|
|
SUBDIRS += json
|
|
clutter_json_include = -I$(top_srcdir)/clutter/json
|
|
clutter_json_dep = json/libclutter-json.la
|
|
clutter_json_libadd = $(top_builddir)/clutter/json/libclutter-json.la
|
|
endif
|
|
|
|
DIST_SUBDIRS = pango glx eglx eglnative cogl sdl json osx x11 win32 fruity
|
|
|
|
target = $(clutterbackend)
|
|
|
|
MARSHALFILES = clutter-marshal.c clutter-marshal.h
|
|
ENUMFILES = clutter-enum-types.c clutter-enum-types.h
|
|
STAMPFILES = stamp-clutter-marshal.h stamp-clutter-enum-types.h
|
|
|
|
INCLUDES = \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/clutter/pango \
|
|
-I$(top_srcdir)/clutter \
|
|
$(clutter_json_include) \
|
|
-I$(top_builddir)/clutter \
|
|
-DCLUTTER_PREFIX=\""$(prefix)"\" \
|
|
-DCLUTTER_LIBDIR=\""$(libdir)"\" \
|
|
-DCLUTTER_DATADIR=\""$(datadir)"\" \
|
|
-DCLUTTER_COMPILATION=1 \
|
|
-DG_DISABLE_DEPRECATED \
|
|
-DG_LOG_DOMAIN=\"Clutter\" \
|
|
$(CLUTTER_CFLAGS) \
|
|
$(NULL)
|
|
|
|
AM_CFLAGS = $(GCC_FLAGS) $(CLUTTER_DEBUG_CFLAGS) $(MAINTAINER_CFLAGS)
|
|
|
|
LDADD = \
|
|
$(CLUTTER_LT_LDFLAGS) \
|
|
-export-dynamic \
|
|
-export-symbols-regex "^(clutter|cogl|json|pango).*" \
|
|
-rpath $(libdir) \
|
|
$(NULL)
|
|
|
|
BUILT_SOURCES = $(MARSHALFILES) $(ENUMFILES)
|
|
|
|
# please, keep this sorted alphabetically
|
|
source_h = \
|
|
$(srcdir)/clutter-actor.h \
|
|
$(srcdir)/clutter-alpha.h \
|
|
$(srcdir)/clutter-animatable.h \
|
|
$(srcdir)/clutter-animation.h \
|
|
$(srcdir)/clutter-backend.h \
|
|
$(srcdir)/clutter-behaviour.h \
|
|
$(srcdir)/clutter-behaviour-depth.h \
|
|
$(srcdir)/clutter-behaviour-ellipse.h \
|
|
$(srcdir)/clutter-behaviour-opacity.h \
|
|
$(srcdir)/clutter-behaviour-path.h \
|
|
$(srcdir)/clutter-behaviour-rotate.h \
|
|
$(srcdir)/clutter-behaviour-scale.h \
|
|
$(srcdir)/clutter-binding-pool.h \
|
|
$(srcdir)/clutter-cairo-texture.h \
|
|
$(srcdir)/clutter-child-meta.h \
|
|
$(srcdir)/clutter-clone.h \
|
|
$(srcdir)/clutter-color.h \
|
|
$(srcdir)/clutter-container.h \
|
|
$(srcdir)/clutter-deprecated.h \
|
|
$(srcdir)/clutter-event.h \
|
|
$(srcdir)/clutter-feature.h \
|
|
$(srcdir)/clutter-fixed.h \
|
|
$(srcdir)/clutter-frame-source.h \
|
|
$(srcdir)/clutter-group.h \
|
|
$(srcdir)/clutter-interval.h \
|
|
$(srcdir)/clutter-keysyms.h \
|
|
$(srcdir)/clutter-list-model.h \
|
|
$(srcdir)/clutter-main.h \
|
|
$(srcdir)/clutter-media.h \
|
|
$(srcdir)/clutter-model.h \
|
|
$(srcdir)/clutter-path.h \
|
|
$(srcdir)/clutter-rectangle.h \
|
|
$(srcdir)/clutter-score.h \
|
|
$(srcdir)/clutter-script.h \
|
|
$(srcdir)/clutter-scriptable.h \
|
|
$(srcdir)/clutter-shader.h \
|
|
$(srcdir)/clutter-shader-types.h \
|
|
$(srcdir)/clutter-stage.h \
|
|
$(srcdir)/clutter-stage-manager.h \
|
|
$(srcdir)/clutter-texture.h \
|
|
$(srcdir)/clutter-text.h \
|
|
$(srcdir)/clutter-timeline.h \
|
|
$(srcdir)/clutter-timeout-pool.h \
|
|
$(srcdir)/clutter-types.h \
|
|
$(srcdir)/clutter-units.h \
|
|
$(srcdir)/clutter-util.h \
|
|
$(top_builddir)/clutter/clutter-version.h \
|
|
$(NULL)
|
|
|
|
clutter-marshal.h: stamp-clutter-marshal.h
|
|
@true
|
|
stamp-clutter-marshal.h: clutter-marshal.list
|
|
$(QUIET_GEN)$(GLIB_GENMARSHAL) \
|
|
--prefix=clutter_marshal \
|
|
--header \
|
|
$(srcdir)/clutter-marshal.list > xgen-cmh \
|
|
&& (cmp -s xgen-cmh clutter-marshal.h || cp xgen-cmh clutter-marshal.h ) \
|
|
&& rm -f xgen-cmh \
|
|
&& echo timestamp > $(@F)
|
|
|
|
clutter-marshal.c: clutter-marshal.h Makefile
|
|
$(QUIET_GEN)( echo "#include \"clutter-marshal.h\"" ; \
|
|
$(GLIB_GENMARSHAL) \
|
|
--prefix=clutter_marshal \
|
|
--body \
|
|
$(srcdir)/clutter-marshal.list --body ) >> xgen-cmc \
|
|
&& cp xgen-cmc clutter-marshal.c \
|
|
&& rm -f xgen-cmc
|
|
|
|
clutter-enum-types.h: stamp-clutter-enum-types.h
|
|
@true
|
|
stamp-clutter-enum-types.h: $(source_h) Makefile
|
|
$(QUIET_GEN)( $(GLIB_MKENUMS) \
|
|
--template $(srcdir)/clutter-enum-types.h.in \
|
|
$(source_h) ) >> xgen-ceth && \
|
|
(cmp -s xgen-ceth clutter-enum-types.h || cp xgen-ceth clutter-enum-types.h) && \
|
|
rm -f xgen-ceth && \
|
|
echo timestamp > $(@F)
|
|
|
|
clutter-enum-types.c: clutter-enum-types.h
|
|
$(QUIET_GEN)( $(GLIB_MKENUMS) \
|
|
--template $(srcdir)/clutter-enum-types.c.in \
|
|
$(source_h) ) >> xgen-cetc && \
|
|
cp xgen-cetc clutter-enum-types.c && \
|
|
rm -f xgen-cetc
|
|
|
|
CLEANFILES = $(STAMPFILES)
|
|
|
|
# please, keep this sorted alphabetically
|
|
source_c = \
|
|
clutter-actor.c \
|
|
clutter-alpha.c \
|
|
clutter-animatable.c \
|
|
clutter-animation.c \
|
|
clutter-backend.c \
|
|
clutter-behaviour.c \
|
|
clutter-behaviour-depth.c \
|
|
clutter-behaviour-ellipse.c \
|
|
clutter-behaviour-opacity.c \
|
|
clutter-behaviour-path.c \
|
|
clutter-behaviour-rotate.c \
|
|
clutter-behaviour-scale.c \
|
|
clutter-bezier.c \
|
|
clutter-binding-pool.c \
|
|
clutter-cairo-texture.c \
|
|
clutter-child-meta.c \
|
|
clutter-clone.c \
|
|
clutter-color.c \
|
|
clutter-container.c \
|
|
clutter-enum-types.c \
|
|
clutter-event.c \
|
|
clutter-feature.c \
|
|
clutter-fixed.c \
|
|
clutter-frame-source.c \
|
|
clutter-group.c \
|
|
clutter-id-pool.c \
|
|
clutter-interval.c \
|
|
clutter-list-model.c \
|
|
clutter-main.c \
|
|
clutter-marshal.c \
|
|
clutter-media.c \
|
|
clutter-model.c \
|
|
clutter-path.c \
|
|
clutter-rectangle.c \
|
|
clutter-score.c \
|
|
clutter-script.c \
|
|
clutter-script-parser.c \
|
|
clutter-scriptable.c \
|
|
clutter-shader.c \
|
|
clutter-shader-types.c \
|
|
clutter-stage.c \
|
|
clutter-stage-manager.c \
|
|
clutter-stage-window.c \
|
|
clutter-texture.c \
|
|
clutter-text.c \
|
|
clutter-timeline.c \
|
|
clutter-timeout-pool.c \
|
|
clutter-units.c \
|
|
clutter-util.c \
|
|
$(NULL)
|
|
|
|
source_h_priv = \
|
|
clutter-bezier.h \
|
|
clutter-debug.h \
|
|
clutter-keysyms-table.h \
|
|
clutter-model-private.h \
|
|
clutter-private.h \
|
|
clutter-id-pool.h \
|
|
clutter-script-private.h \
|
|
clutter-stage-window.h \
|
|
$(NULL)
|
|
|
|
libclutter_@CLUTTER_FLAVOUR@_@CLUTTER_API_VERSION@_la_LIBADD = \
|
|
$(CLUTTER_LIBS) \
|
|
$(top_builddir)/clutter/pango/libcoglpango.la \
|
|
$(top_builddir)/clutter/$(CLUTTER_FLAVOUR)/libclutter-$(CLUTTER_FLAVOUR).la \
|
|
$(top_builddir)/clutter/cogl/$(CLUTTER_COGL)/libclutter-cogl.la \
|
|
$(clutter_json_libadd) \
|
|
$(backendextralib)
|
|
|
|
libclutter_@CLUTTER_FLAVOUR@_@CLUTTER_API_VERSION@_la_DEPENDENCIES = \
|
|
pango/libcoglpango.la \
|
|
$(CLUTTER_FLAVOUR)/libclutter-$(CLUTTER_FLAVOUR).la \
|
|
cogl/$(CLUTTER_COGL)/libclutter-cogl.la \
|
|
$(clutter_json_dep) \
|
|
$(backendextralib)
|
|
|
|
libclutter_@CLUTTER_FLAVOUR@_@CLUTTER_API_VERSION@_la_SOURCES = \
|
|
$(source_c) \
|
|
$(source_h) \
|
|
$(source_h_priv)
|
|
|
|
libclutter_@CLUTTER_FLAVOUR@_@CLUTTER_API_VERSION@_la_LDFLAGS = $(LDADD)
|
|
|
|
lib_LTLIBRARIES = $(clutterbackendlib)
|
|
|
|
EXTRA_LTLIBRARIES = libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_API_VERSION@.la
|
|
|
|
clutterdir = $(includedir)/clutter-$(CLUTTER_API_VERSION)/clutter
|
|
|
|
clutter_HEADERS = \
|
|
$(source_h) \
|
|
clutter-json.h \
|
|
clutter-enum-types.h \
|
|
clutter-version.h \
|
|
clutter.h
|
|
|
|
if HAVE_INTROSPECTION
|
|
BUILT_GIRSOURCES =
|
|
|
|
if LOCAL_JSON_GLIB
|
|
json_gir_include_path=--add-include-path=json
|
|
endif
|
|
|
|
# We can't reference the list of COGL header files, since they are in a
|
|
# subdir Makefile.am, so just extract them from cogl.h instead. The doc comments
|
|
# for COGL are in the headers, so we don't need the source files.
|
|
Clutter-@CLUTTER_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_API_VERSION@.la
|
|
cogl_headers=`sed -n "s/#include <cogl\/\([^>]*\)>/cogl\/\1/p" < cogl/cogl.h` ; \
|
|
$(INTROSPECTION_SCANNER) -v --namespace Clutter --nsversion=@CLUTTER_API_VERSION@ \
|
|
$(INCLUDES) \
|
|
$(json_gir_include_path) \
|
|
--include=GL-1.0 \
|
|
--include=GObject-2.0 \
|
|
--include=Pango-1.0 \
|
|
--include=PangoCairo-1.0 \
|
|
--include=ClutterJson-@CLUTTER_API_VERSION@ \
|
|
--library=clutter-@CLUTTER_FLAVOUR@-@CLUTTER_API_VERSION@ \
|
|
--libtool="$(top_builddir)/doltlibtool" \
|
|
--pkg gobject-2.0 \
|
|
--pkg pango \
|
|
--pkg pangocairo \
|
|
--output $@ \
|
|
$(clutter_HEADERS) \
|
|
$$cogl_headers \
|
|
$(source_c)
|
|
|
|
BUILT_GIRSOURCES += Clutter-@CLUTTER_API_VERSION@.gir
|
|
|
|
if LOCAL_JSON_GLIB
|
|
# We build ClutterJson.gir in the json/ subdir, but it needs to reference the shared library
|
|
# that it's built into, so we delay compiling the gir into typelib until after we've built
|
|
# the shared library. To create the final ClutterJson.gir that we compiler and install, we
|
|
# transfer the shared-library="" line from Clutter.gir to ClutterJson.gir
|
|
ClutterJson-@CLUTTER_API_VERSION@.gir: Clutter-@CLUTTER_API_VERSION@.gir json/ClutterJson-@CLUTTER_API_VERSION@.gir
|
|
shlib=`sed -n 's/.*shared-library="\([^"]*\)".*/\1/p' < Clutter-@CLUTTER_API_VERSION@.gir` ; \
|
|
sed "s/shared-library=\"clutter-json\"/shared-library=\"$$shlib\"/"< json/ClutterJson-@CLUTTER_API_VERSION@.gir > $@
|
|
|
|
BUILT_GIRSOURCES += ClutterJson-@CLUTTER_API_VERSION@.gir
|
|
endif
|
|
|
|
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to install
|
|
# thing - we need to install inside our prefix.
|
|
girdir = $(datadir)/gir-1.0
|
|
gir_DATA = $(BUILT_GIRSOURCES)
|
|
|
|
typelibsdir = $(libdir)/girepository-1.0/
|
|
typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
|
|
|
|
%.typelib: %.gir $(INTROSPECTION_COMPILER)
|
|
$(QUIET_GEN)$(DEBUG) $(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=. $(INTROSPECTION_COMPILER_OPTS) $< -o $(builddir)/$(@F)
|
|
|
|
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
|
|
endif
|
|
|
|
DISTCLEANFILES = \
|
|
$(ENUMFILES) \
|
|
$(MARSHALFILES) \
|
|
clutter-version.h \
|
|
$(NULL)
|
|
|
|
EXTRA_DIST = \
|
|
clutter-marshal.list \
|
|
clutter-version.h.in \
|
|
clutter-enum-types.h.in \
|
|
clutter-enum-types.c.in \
|
|
$(NULL)
|