bf9d5f3949
This adds a separate variable name "CLUTTER_SONAME_INFIX" to define the infix for the clutter library that gets linked. Currently the WINSYS corresponds to the directory we enter when building to compile the window system and input support, but it is desirable to be able to define multiple flavours that use the same WINSYS but should result in different library names. For example we are planning to combine the eglx and eglnative window systems into one "egl" winsys but we will need to preserve the current library names for the eglx and eglnative flavours.
404 lines
13 KiB
Makefile
404 lines
13 KiB
Makefile
include $(top_srcdir)/build/autotools/Makefile.am.silent
|
|
|
|
NULL =
|
|
|
|
SUBDIRS = cogl $(CLUTTER_WINSYS_BASE) $(CLUTTER_WINSYS)
|
|
|
|
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
|
|
clutter_json_gir = ClutterJson-@CLUTTER_API_VERSION@.gir
|
|
endif
|
|
|
|
DIST_SUBDIRS = glx eglx eglnative cogl json osx x11 win32 fruity
|
|
|
|
# common definitions
|
|
CLEANFILES =
|
|
DISTCLEANFILES =
|
|
EXTRA_DIST =
|
|
BUILT_SOURCES =
|
|
|
|
if SUPPORT_WIN32
|
|
|
|
# Ideally this resources stuff would go in win32/ but libtool doesn't
|
|
# seem to pass on the -Wl argument when linking a convenience library
|
|
# so we need to do it here as part of linking the dll. libtool also
|
|
# won't let you link against the .o directly because it wants you to
|
|
# link against libtool objects for dynamic libraries.
|
|
.rc.o :
|
|
$(WINDRES) -I$(srcdir)/win32 $< $@
|
|
|
|
win32/resources.o : $(srcdir)/win32/invisible-cursor.cur
|
|
|
|
win32_resources = win32/resources.o
|
|
win32_resources_ldflag = -Wl,win32/resources.o
|
|
|
|
endif # SUPPORT_WIN32
|
|
|
|
INCLUDES = \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/clutter/cogl \
|
|
-I$(top_srcdir)/clutter/cogl/pango \
|
|
-I$(top_srcdir)/clutter \
|
|
$(clutter_json_include) \
|
|
-I$(top_builddir) \
|
|
-I$(top_builddir)/clutter \
|
|
-I$(top_builddir)/clutter/cogl \
|
|
$(NULL)
|
|
|
|
AM_CPPFLAGS = \
|
|
-DCLUTTER_PREFIX=\""$(prefix)"\" \
|
|
-DCLUTTER_LIBDIR=\""$(libdir)"\" \
|
|
-DCLUTTER_DATADIR=\""$(datadir)"\" \
|
|
-DCLUTTER_COMPILATION=1 \
|
|
-DCOGL_DISABLE_DEPRECATED \
|
|
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
|
-DG_DISABLE_DEPRECATED \
|
|
-DG_DISABLE_SINGLE_INCLUDES \
|
|
-DG_LOG_DOMAIN=\"Clutter\" \
|
|
$(CLUTTER_DEBUG_CFLAGS) \
|
|
$(NULL)
|
|
|
|
AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS) $(GCOV_CFLAGS)
|
|
|
|
# please, keep this sorted alphabetically
|
|
source_h = \
|
|
$(srcdir)/clutter-action.h \
|
|
$(srcdir)/clutter-actor-meta.h \
|
|
$(srcdir)/clutter-actor.h \
|
|
$(srcdir)/clutter-align-constraint.h \
|
|
$(srcdir)/clutter-alpha.h \
|
|
$(srcdir)/clutter-animatable.h \
|
|
$(srcdir)/clutter-animation.h \
|
|
$(srcdir)/clutter-animator.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-bind-constraint.h \
|
|
$(srcdir)/clutter-binding-pool.h \
|
|
$(srcdir)/clutter-bin-layout.h \
|
|
$(srcdir)/clutter-blur-effect.h \
|
|
$(srcdir)/clutter-box.h \
|
|
$(srcdir)/clutter-box-layout.h \
|
|
$(srcdir)/clutter-cairo-texture.h \
|
|
$(srcdir)/clutter-child-meta.h \
|
|
$(srcdir)/clutter-click-action.h \
|
|
$(srcdir)/clutter-clone.h \
|
|
$(srcdir)/clutter-color.h \
|
|
$(srcdir)/clutter-colorize-effect.h \
|
|
$(srcdir)/clutter-constraint.h \
|
|
$(srcdir)/clutter-container.h \
|
|
$(srcdir)/clutter-deform-effect.h \
|
|
$(srcdir)/clutter-deprecated.h \
|
|
$(srcdir)/clutter-desaturate-effect.h \
|
|
$(srcdir)/clutter-device-manager.h \
|
|
$(srcdir)/clutter-drag-action.h \
|
|
$(srcdir)/clutter-effect.h \
|
|
$(srcdir)/clutter-event.h \
|
|
$(srcdir)/clutter-feature.h \
|
|
$(srcdir)/clutter-fixed.h \
|
|
$(srcdir)/clutter-fixed-layout.h \
|
|
$(srcdir)/clutter-flow-layout.h \
|
|
$(srcdir)/clutter-frame-source.h \
|
|
$(srcdir)/clutter-group.h \
|
|
$(srcdir)/clutter-input-device.h \
|
|
$(srcdir)/clutter-interval.h \
|
|
$(srcdir)/clutter-keysyms.h \
|
|
$(srcdir)/clutter-layout-manager.h \
|
|
$(srcdir)/clutter-layout-meta.h \
|
|
$(srcdir)/clutter-list-model.h \
|
|
$(srcdir)/clutter-main.h \
|
|
$(srcdir)/clutter-media.h \
|
|
$(srcdir)/clutter-model.h \
|
|
$(srcdir)/clutter-offscreen-effect.h \
|
|
$(srcdir)/clutter-page-turn-effect.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-effect.h \
|
|
$(srcdir)/clutter-shader-types.h \
|
|
$(srcdir)/clutter-stage.h \
|
|
$(srcdir)/clutter-stage-manager.h \
|
|
$(srcdir)/clutter-stage-window.h \
|
|
$(srcdir)/clutter-state.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 \
|
|
$(NULL)
|
|
|
|
built_source_h = \
|
|
clutter-enum-types.h \
|
|
clutter-marshal.h
|
|
|
|
# glib-genmarshal rules
|
|
glib_marshal_list = clutter-marshal.list
|
|
glib_marshal_prefix = _clutter_marshal
|
|
include $(top_srcdir)/build/autotools/Makefile.am.marshal
|
|
|
|
# glib-mkenums rules
|
|
glib_enum_h = clutter-enum-types.h
|
|
glib_enum_c = clutter-enum-types.c
|
|
glib_enum_headers = $(source_h)
|
|
include $(top_srcdir)/build/autotools/Makefile.am.enums
|
|
|
|
# please, keep this sorted alphabetically
|
|
source_c = \
|
|
$(srcdir)/clutter-action.c \
|
|
$(srcdir)/clutter-actor-meta.c \
|
|
$(srcdir)/clutter-actor.c \
|
|
$(srcdir)/clutter-align-constraint.c \
|
|
$(srcdir)/clutter-alpha.c \
|
|
$(srcdir)/clutter-animatable.c \
|
|
$(srcdir)/clutter-animation.c \
|
|
$(srcdir)/clutter-animator.c \
|
|
$(srcdir)/clutter-backend.c \
|
|
$(srcdir)/clutter-behaviour.c \
|
|
$(srcdir)/clutter-behaviour-depth.c \
|
|
$(srcdir)/clutter-behaviour-ellipse.c \
|
|
$(srcdir)/clutter-behaviour-opacity.c \
|
|
$(srcdir)/clutter-behaviour-path.c \
|
|
$(srcdir)/clutter-behaviour-rotate.c \
|
|
$(srcdir)/clutter-behaviour-scale.c \
|
|
$(srcdir)/clutter-bezier.c \
|
|
$(srcdir)/clutter-bind-constraint.c \
|
|
$(srcdir)/clutter-binding-pool.c \
|
|
$(srcdir)/clutter-bin-layout.c \
|
|
$(srcdir)/clutter-blur-effect.c \
|
|
$(srcdir)/clutter-box.c \
|
|
$(srcdir)/clutter-box-layout.c \
|
|
$(srcdir)/clutter-cairo-texture.c \
|
|
$(srcdir)/clutter-child-meta.c \
|
|
$(srcdir)/clutter-click-action.c \
|
|
$(srcdir)/clutter-clone.c \
|
|
$(srcdir)/clutter-color.c \
|
|
$(srcdir)/clutter-colorize-effect.c \
|
|
$(srcdir)/clutter-constraint.c \
|
|
$(srcdir)/clutter-container.c \
|
|
$(srcdir)/clutter-deform-effect.c \
|
|
$(srcdir)/clutter-desaturate-effect.c \
|
|
$(srcdir)/clutter-device-manager.c \
|
|
$(srcdir)/clutter-drag-action.c \
|
|
$(srcdir)/clutter-effect.c \
|
|
$(srcdir)/clutter-event.c \
|
|
$(srcdir)/clutter-feature.c \
|
|
$(srcdir)/clutter-fixed.c \
|
|
$(srcdir)/clutter-fixed-layout.c \
|
|
$(srcdir)/clutter-flow-layout.c \
|
|
$(srcdir)/clutter-frame-source.c \
|
|
$(srcdir)/clutter-group.c \
|
|
$(srcdir)/clutter-input-device.c \
|
|
$(srcdir)/clutter-interval.c \
|
|
$(srcdir)/clutter-layout-manager.c \
|
|
$(srcdir)/clutter-layout-meta.c \
|
|
$(srcdir)/clutter-list-model.c \
|
|
$(srcdir)/clutter-main.c \
|
|
$(srcdir)/clutter-master-clock.c \
|
|
$(srcdir)/clutter-media.c \
|
|
$(srcdir)/clutter-model.c \
|
|
$(srcdir)/clutter-offscreen-effect.c \
|
|
$(srcdir)/clutter-page-turn-effect.c \
|
|
$(srcdir)/clutter-path.c \
|
|
$(srcdir)/clutter-rectangle.c \
|
|
$(srcdir)/clutter-score.c \
|
|
$(srcdir)/clutter-script.c \
|
|
$(srcdir)/clutter-script-parser.c \
|
|
$(srcdir)/clutter-scriptable.c \
|
|
$(srcdir)/clutter-shader.c \
|
|
$(srcdir)/clutter-shader-effect.c \
|
|
$(srcdir)/clutter-shader-types.c \
|
|
$(srcdir)/clutter-stage.c \
|
|
$(srcdir)/clutter-stage-manager.c \
|
|
$(srcdir)/clutter-stage-window.c \
|
|
$(srcdir)/clutter-state.c \
|
|
$(srcdir)/clutter-texture.c \
|
|
$(srcdir)/clutter-text.c \
|
|
$(srcdir)/clutter-timeline.c \
|
|
$(srcdir)/clutter-timeout-pool.c \
|
|
$(srcdir)/clutter-units.c \
|
|
$(srcdir)/clutter-util.c \
|
|
$(NULL)
|
|
|
|
source_c_priv = \
|
|
$(srcdir)/clutter-id-pool.c \
|
|
$(srcdir)/clutter-profile.c \
|
|
$(srcdir)/clutter-timeout-interval.c \
|
|
$(NULL)
|
|
|
|
built_source_c = \
|
|
clutter-enum-types.c \
|
|
clutter-marshal.c
|
|
|
|
source_h_priv = \
|
|
$(srcdir)/clutter-actor-meta-private.h \
|
|
$(srcdir)/clutter-bezier.h \
|
|
$(srcdir)/clutter-debug.h \
|
|
$(srcdir)/clutter-id-pool.h \
|
|
$(srcdir)/clutter-keysyms-table.h \
|
|
$(srcdir)/clutter-master-clock.h \
|
|
$(srcdir)/clutter-model-private.h \
|
|
$(srcdir)/clutter-private.h \
|
|
$(srcdir)/clutter-profile.h \
|
|
$(srcdir)/clutter-script-private.h \
|
|
$(srcdir)/clutter-timeout-interval.h \
|
|
$(NULL)
|
|
|
|
libclutter_@CLUTTER_SONAME_INFIX@_@CLUTTER_API_VERSION@_la_LIBADD = \
|
|
$(CLUTTER_LIBS) \
|
|
$(top_builddir)/clutter/cogl/cogl/libclutter-cogl.la \
|
|
$(top_builddir)/clutter/cogl/pango/libcoglpango.la \
|
|
$(top_builddir)/clutter/$(CLUTTER_WINSYS)/libclutter-$(CLUTTER_WINSYS).la \
|
|
$(clutter_json_libadd) \
|
|
$(CLUTTER_WINSYS_BASE_LIB)
|
|
|
|
libclutter_@CLUTTER_SONAME_INFIX@_@CLUTTER_API_VERSION@_la_DEPENDENCIES = \
|
|
$(top_builddir)/clutter/cogl/cogl/libclutter-cogl.la \
|
|
$(top_builddir)/clutter/cogl/pango/libcoglpango.la \
|
|
$(top_builddir)/clutter/$(CLUTTER_WINSYS)/libclutter-$(CLUTTER_WINSYS).la \
|
|
$(clutter_json_dep) \
|
|
$(CLUTTER_WINSYS_BASE_LIB) \
|
|
$(win32_resources)
|
|
|
|
libclutter_@CLUTTER_SONAME_INFIX@_@CLUTTER_API_VERSION@_la_SOURCES = \
|
|
$(source_c) \
|
|
$(source_h) \
|
|
$(source_c_priv) \
|
|
$(source_h_priv)
|
|
|
|
nodist_libclutter_@CLUTTER_SONAME_INFIX@_@CLUTTER_API_VERSION@_la_SOURCES = \
|
|
$(built_source_c) \
|
|
$(built_source_h)
|
|
|
|
libclutter_@CLUTTER_SONAME_INFIX@_@CLUTTER_API_VERSION@_la_LDFLAGS = \
|
|
$(CLUTTER_LT_LDFLAGS) \
|
|
$(GCOV_LDFLAGS) \
|
|
-export-dynamic \
|
|
-export-symbols-regex "^(clutter|cogl|json).*" \
|
|
-rpath $(libdir) \
|
|
$(win32_resources_ldflag) \
|
|
$(NULL)
|
|
|
|
lib_LTLIBRARIES = $(CLUTTER_WINSYS_LIB)
|
|
|
|
EXTRA_LTLIBRARIES = libclutter-@CLUTTER_SONAME_INFIX@-@CLUTTER_API_VERSION@.la
|
|
|
|
clutterdir = $(includedir)/clutter-$(CLUTTER_API_VERSION)/clutter
|
|
clutter_HEADERS = \
|
|
$(source_h) \
|
|
$(top_srcdir)/clutter/clutter.h
|
|
nodist_clutter_HEADERS = \
|
|
$(top_builddir)/clutter/clutter-json.h \
|
|
$(top_builddir)/clutter/clutter-version.h \
|
|
$(built_source_h)
|
|
|
|
|
|
DISTCLEANFILES += clutter-version.h
|
|
EXTRA_DIST += clutter-version.h.in
|
|
|
|
BUILT_GIRSOURCES =
|
|
|
|
if LOCAL_JSON_GLIB
|
|
json_gir_include_path=--add-include-path=json
|
|
json_gir_include=--include=ClutterJson-@CLUTTER_API_VERSION@
|
|
json_gir_pkg=
|
|
|
|
# If we are building it, ClutterJson gets the same handling as described
|
|
# for Cogl above
|
|
ClutterJson-@CLUTTER_API_VERSION@.gir: Clutter-@CLUTTER_API_VERSION@.gir json/ClutterJson-@CLUTTER_API_VERSION@.gir
|
|
$(QUIET_GEN) \
|
|
shlib=`sed -n 's/.*shared-library="\([^"]*\)".*/\1/p' < Clutter-@CLUTTER_API_VERSION@.gir` ; \
|
|
sed "s/shared-library=\"[^\"]*\"/shared-library=\"$$shlib\"/"< json/ClutterJson-@CLUTTER_API_VERSION@.gir > $@
|
|
|
|
BUILT_GIRSOURCES += ClutterJson-@CLUTTER_API_VERSION@.gir
|
|
else
|
|
json_gir_include=--include=Json-1.0
|
|
json_gir_pkg=--pkg json-glib-1.0
|
|
endif # LOCAL_JSON_GLIB
|
|
|
|
if HAVE_INTROSPECTION
|
|
# 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_SONAME_INFIX@-@CLUTTER_API_VERSION@.la
|
|
$(QUIET_GEN)$(INTROSPECTION_SCANNER) -v \
|
|
--namespace Clutter --nsversion=@CLUTTER_API_VERSION@ \
|
|
$(INCLUDES) \
|
|
$(AM_CPPFLAGS) \
|
|
--add-include-path=cogl/cogl \
|
|
$(json_gir_include_path) \
|
|
--c-include='clutter/clutter.h' \
|
|
--include=GL-1.0 \
|
|
--include=GObject-2.0 \
|
|
--include=Atk-1.0 \
|
|
--include=Pango-1.0 \
|
|
--include=PangoCairo-1.0 \
|
|
--include=Cogl-@CLUTTER_API_VERSION@ \
|
|
$(json_gir_include) \
|
|
--library=libclutter-@CLUTTER_SONAME_INFIX@-@CLUTTER_API_VERSION@.la \
|
|
--libtool="$(top_builddir)/libtool" \
|
|
--pkg gobject-2.0 \
|
|
$(json_gir_pkg) \
|
|
--pkg atk \
|
|
--pkg pango \
|
|
--pkg pangocairo \
|
|
--output $@ \
|
|
$(clutter_HEADERS) \
|
|
$(nodist_clutter_HEADERS) \
|
|
$(source_c) \
|
|
$(built_source_c)
|
|
|
|
BUILT_GIRSOURCES += Clutter-@CLUTTER_API_VERSION@.gir
|
|
|
|
# ClutterJson.gir and Cogl.gir are used included into Clutter.gir, so need
|
|
# to be built before the typelib is generated
|
|
Clutter-@CLUTTER_API_VERSION@.typelib: $(clutter_json_gir) Cogl-@CLUTTER_API_VERSION@.gir
|
|
|
|
# We build Cogl.gir in the cogl/ 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 Cogl.gir
|
|
# that we compile and install, we transfer the shared-library="" line from
|
|
# Clutter.gir to Cogl.gir
|
|
Cogl-@CLUTTER_API_VERSION@.gir: Clutter-@CLUTTER_API_VERSION@.gir cogl/cogl/Cogl-@CLUTTER_API_VERSION@.gir
|
|
$(QUIET_GEN) \
|
|
shlib=`sed -n 's/.*shared-library="\([^"]*\)".*/\1/p' < Clutter-@CLUTTER_API_VERSION@.gir` ; \
|
|
sed "s/shared-library=\"[^\"]*\"/shared-library=\"$$shlib\"/"< cogl/cogl/Cogl-@CLUTTER_API_VERSION@.gir > $@
|
|
|
|
BUILT_GIRSOURCES += Cogl-@CLUTTER_API_VERSION@.gir
|
|
|
|
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
|
|
# install anything - 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) \
|
|
LD_LIBRARY_PATH=.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH} \
|
|
$(INTROSPECTION_COMPILER) \
|
|
--includedir=$(srcdir) \
|
|
--includedir=. \
|
|
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
|
|
|
|
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
|
|
endif # HAVE_INTROSPECTION
|
|
|
|
gcov_sources = $(source_c)
|
|
include $(top_srcdir)/build/autotools/Makefile.am.gcov
|