efb570fdae
This adds an autogen.sh, configure.ac and build/autotool files etc under clutter/cogl and makes some corresponding Makefile.am changes that make it possible to build and install Cogl as a standalone library. Some notable things about this are: A standalone installation of Cogl installs 3 pkg-config files; cogl-1.0.pc, cogl-gl-1.0.pc and cogl-2.0.pc. The second is only for compatibility with what clutter installed though I'm not sure that anything uses it so maybe we could remove it. cogl-1.0.pc is what Clutter would use if it were updated to build against a standalone cogl library. cogl-2.0.pc is what you would use if you were writing a standalone Cogl application. A standalone installation results in two libraries currently, libcogl.so and libcogl-pango.so. Notably we don't include a major number in the sonames because libcogl supports two major API versions; 1.x as used by Clutter and the experimental 2.x API for standalone applications. Parallel installation of later versions e.g. 3.x and beyond will be supportable either with new sonames or if we can maintain ABI then we'll continue to share libcogl.so. The headers are similarly not installed into a directory with a major version number since the same headers are shared to export the 1.x and 2.x APIs (The only difference is that cogl-2.0.pc ensures that -DCOGL_ENABLE_EXPERIMENTAL_2_0_API is used). Parallel installation of later versions is not precluded though since we can either continue sharing or later add a major version suffix.
52 lines
1.5 KiB
Makefile
52 lines
1.5 KiB
Makefile
# Rules for generating enumeration types using glib-mkenums
|
|
#
|
|
# Define:
|
|
# glib_enum_h = header template file
|
|
# glib_enum_c = source template file
|
|
# glib_enum_headers = list of headers to parse
|
|
#
|
|
# before including Makefile.am.enums. You will also need to have
|
|
# the following targets already defined:
|
|
#
|
|
# CLEANFILES
|
|
# DISTCLEANFILES
|
|
# BUILT_SOURCES
|
|
# EXTRA_DIST
|
|
#
|
|
# Author: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
# Basic sanity checks
|
|
$(if $(GLIB_MKENUMS),,$(error Need to define GLIB_MKENUMS))
|
|
|
|
$(if $(or $(glib_enum_h), \
|
|
$(glib_enum_c)),, \
|
|
$(error Need to define glib_enum_h and glib_enum_c))
|
|
|
|
$(if $(glib_enum_headers),,$(error Need to define glib_enum_headers))
|
|
|
|
enum_tmpl_h=$(addprefix $(srcdir)/, $(glib_enum_h:.h=.h.in))
|
|
enum_tmpl_c=$(addprefix $(srcdir)/, $(glib_enum_c:.c=.c.in))
|
|
|
|
CLEANFILES += stamp-enum-types
|
|
DISTCLEANFILES += $(glib_enum_h) $(glib_enum_c)
|
|
BUILT_SOURCES += $(glib_enum_h) $(glib_enum_c)
|
|
EXTRA_DIST += $(enum_tmpl_h) $(enum_tmpl_c)
|
|
|
|
stamp-enum-types: $(glib_enum_headers) $(enum_tmpl_h)
|
|
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
|
--template $(enum_tmpl_h) \
|
|
$(glib_enum_headers) > xgen-eh \
|
|
&& (cmp -s xgen-eh $(glib_enum_h) || cp -f xgen-eh $(glib_enum_h)) \
|
|
&& rm -f xgen-eh \
|
|
&& echo timestamp > $(@F)
|
|
|
|
$(glib_enum_h): stamp-enum-types
|
|
@true
|
|
|
|
$(glib_enum_c): $(glib_enum_headers) $(glib_enum_h) $(enum_tmpl_c)
|
|
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
|
--template $(enum_tmpl_c) \
|
|
$(glib_enum_headers) > xgen-ec \
|
|
&& cp -f xgen-ec $(glib_enum_c) \
|
|
&& rm -f xgen-ec
|