mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 08:30:42 -05:00
605dfb8fd0
Clutter is able to show debug messages written using the CLUTTER_NOTE() macro at runtime, either by using an environment variable: CLUTTER_DEBUG=... or by using a command line switch: --clutter-debug=... --clutter-no-debug=... Both are parsed during the initialization process by using the GOption API. COGL would benefit from having the same support. In order to do this, we need a cogl_get_option_group() function in COGL that sets up a GOptionGroup for COGL and adds a pre-parse hook that will check the COGL_DEBUG environment variable. The OptionGroup will also install two command line switches: --cogl-debug --cogl-no-debug With the same semantics of the Clutter ones. During Clutter initialization, the COGL option group will be attached to the GOptionContext used to parse the command line options passed to a Clutter application. Every debug message written using: COGL_NOTE (SECTION, "message format", arguments); Will then be printed only if SECTION was enabled at runtime. This whole machinery, like the equivalent one in Clutter, depends on a compile time switch, COGL_ENABLE_DEBUG, which is enabled at the same time as CLUTTER_ENABLE_DEBUG. Having two different symbols allows greater granularity.
756 lines
24 KiB
Plaintext
756 lines
24 KiB
Plaintext
# clutter package version number, (as distinct from shared library version)
|
|
# An odd micro number indicates in-progress development, (eg. from CVS)
|
|
# An even micro number indicates a released version.
|
|
m4_define([clutter_major_version], [0])
|
|
m4_define([clutter_minor_version], [9])
|
|
m4_define([clutter_micro_version], [1])
|
|
|
|
m4_define([clutter_version],
|
|
[clutter_major_version.clutter_minor_version.clutter_micro_version])
|
|
|
|
m4_define([clutter_api_version],
|
|
[clutter_major_version.clutter_minor_version])
|
|
|
|
# increase the interface age by 2 for each release;
|
|
# if the API changes, set to 0
|
|
m4_define([clutter_interface_age], [0])
|
|
m4_define([clutter_binary_age],
|
|
[m4_eval(100 * clutter_minor_version + clutter_micro_version)])
|
|
|
|
AC_PREREQ(2.53)
|
|
|
|
AC_INIT([clutter],
|
|
[clutter_version],
|
|
[http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter])
|
|
AC_CONFIG_MACRO_DIR([build/autotools])
|
|
AC_CONFIG_SRCDIR([clutter/clutter.h])
|
|
AM_CONFIG_HEADER([config.h])
|
|
|
|
AM_INIT_AUTOMAKE([1.9])
|
|
|
|
CLUTTER_MAJOR_VERSION=clutter_major_version
|
|
CLUTTER_MINOR_VERSION=clutter_minor_version
|
|
CLUTTER_MICRO_VERSION=clutter_micro_version
|
|
CLUTTER_VERSION=clutter_version
|
|
CLUTTER_API_VERSION=clutter_api_version
|
|
CLUTTER_MAJORMINOR=clutter_api_version
|
|
AC_SUBST(CLUTTER_MAJOR_VERSION)
|
|
AC_SUBST(CLUTTER_MINOR_VERSION)
|
|
AC_SUBST(CLUTTER_MICRO_VERSION)
|
|
AC_SUBST(CLUTTER_VERSION)
|
|
AC_SUBST(CLUTTER_API_VERSION)
|
|
AC_SUBST(CLUTTER_MAJORMINOR)
|
|
|
|
m4_define([lt_current],
|
|
[m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
|
|
m4_define([lt_revision], [clutter_interface_age])
|
|
m4_define([lt_age], [m4_eval(clutter_binary_age - clutter_interface_age)])
|
|
CLUTTER_LT_CURRENT=lt_current
|
|
CLUTTER_LT_REV=lt_revision
|
|
CLUTTER_LT_AGE=lt_age
|
|
CLUTTER_LT_VERSION="$CLUTTER_LT_CURRENT:$CLUTTER_LT_REV:$CLUTTER_LT_AGE"
|
|
CLUTTER_LT_LDFLAGS="-version-info $CLUTTER_LT_VERSION"
|
|
|
|
AC_SUBST(CLUTTER_LT_VERSION)
|
|
AC_SUBST(CLUTTER_LT_LDFLAGS)
|
|
|
|
dnl ========================================================================
|
|
|
|
# Checks for programs.
|
|
AM_PROG_CC_C_O
|
|
#_AM_DEPENDENCIES([OBJC])
|
|
#AC_PROG_OBJC
|
|
AC_DISABLE_STATIC
|
|
AC_PROG_LIBTOOL
|
|
DOLT
|
|
|
|
# Make libtool respect the make -s switch (kudos to jacob berman)
|
|
changequote(,)dnl
|
|
LIBTOOL="${LIBTOOL} \$(shell echo \"\$(MFLAGS)\" | awk '/^[^ ]*s/ { print \"--silent\" }')"
|
|
changequote([,])dnl
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
|
|
# Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_MMAP
|
|
AC_CHECK_FUNCS([memset munmap strcasecmp strdup])
|
|
|
|
AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums])
|
|
AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal])
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
dnl ========================================================================
|
|
|
|
# Peek which flavour the user wants so that we can couple the osx flavour with
|
|
# quartz imageloader.
|
|
if test "x$with_flavour" = "xosx"; then
|
|
imagebackend="quartz"
|
|
else
|
|
imagebackend="gdk-pixbuf"
|
|
fi
|
|
|
|
AC_ARG_WITH([imagebackend],
|
|
AC_HELP_STRING([--with-imagebackend=@<:@gdk-pixbuf/quartz/internal@:>@],
|
|
[Select COGL image loading backend]),
|
|
imagebackend=$with_imagebackend)
|
|
|
|
case $imagebackend in
|
|
|
|
quartz)
|
|
AC_DEFINE([USE_QUARTZ], 1, [Use Core Graphics (Quartz) for loading image files])
|
|
;;
|
|
|
|
gdk-pixbuf)
|
|
AC_DEFINE([USE_GDKPIXBUF], 1, [Use GdkPixbuf for loading image files])
|
|
;;
|
|
|
|
internal)
|
|
;;
|
|
|
|
|
|
esac
|
|
|
|
|
|
dnl ========================================================================
|
|
|
|
backendextra=
|
|
backendextralib=
|
|
clutterbackend=glx
|
|
AC_ARG_WITH([flavour],
|
|
AC_HELP_STRING([--with-flavour=@<:@glx/eglx/eglnative/sdl/osx/win32/fruity@:>@],
|
|
[Select the Clutter backend]),
|
|
clutterbackend=$with_flavour)
|
|
|
|
case $clutterbackend in
|
|
glx|eglx|eglnative|sdl|osx|win32|fruity) ;;
|
|
*) AC_MSG_ERROR([Invalid flavour $clutterbackend]) ;;
|
|
esac
|
|
|
|
glesversion=1.1
|
|
AC_ARG_WITH([gles],
|
|
AC_HELP_STRING([--with-gles=@<:@1.1/2.0@:>@],
|
|
[Select Clutter GLES version (for EGL backends)]),
|
|
glesversion=$with_gles)
|
|
|
|
case $glesversion in
|
|
1.1|2.0) ;;
|
|
*) AC_MSG_ERROR([Invalid GL ES version $glesversion])
|
|
esac
|
|
|
|
if test "x$clutterbackend" = "xfruity"
|
|
then
|
|
if test "x$glesversion" != "x1.1"; then
|
|
AC_MSG_ERROR([Fruity backend only supports GL ES 1.1.]);
|
|
fi
|
|
glesversion="fruity"
|
|
fi
|
|
|
|
BACKEND_PC_FILES=""
|
|
|
|
# Check for X though could be redundant if backend does not need it.
|
|
AC_MSG_CHECKING([for X11])
|
|
PKG_CHECK_EXISTS([x11], [have_x11=yes], [have_x11=no])
|
|
if test "x$have_x11" = "xno"; then
|
|
AC_PATH_X
|
|
|
|
if test x"$no_x" = "yes" ; then
|
|
if test "x$clutterbackend" = "xglx" or "x$clutterbackend" = "xeglx"
|
|
then
|
|
AC_MSG_ERROR([No X11 Libraries found and required by backend.])
|
|
fi
|
|
|
|
AC_MSG_RESULT([not found])
|
|
else
|
|
if test x"$x_includes" != x"NONE" && test -n "$x_includes" ; then
|
|
X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`
|
|
fi
|
|
|
|
if test x"$x_libraries" != x"NONE" && test -n "$x_libraries" ; then
|
|
X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`
|
|
fi
|
|
|
|
AC_MSG_RESULT([found])
|
|
fi
|
|
else
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES x11"
|
|
AC_MSG_RESULT([found])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for XFIXES extension >= 3])
|
|
PKG_CHECK_EXISTS([xfixes >= 3], [have_xfixes=yes], [have_xfixes=no])
|
|
if test "x$have_xfixes" = "xyes"; then
|
|
AC_DEFINE(HAVE_XFIXES, 1, [Define to 1 if we have the XFIXES X extension])
|
|
X11_LIBS="$X11_LIBS -lXfixes"
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES xfixes"
|
|
AC_MSG_RESULT([found])
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for XDAMAGE extension])
|
|
PKG_CHECK_EXISTS([xdamage], [have_xdamage=yes], [have_xdamage=no])
|
|
if test "x$have_xdamage" = "xyes"; then
|
|
AC_DEFINE(HAVE_XDAMAGE, 1, [Define to 1 if we have the XDAMAGE X extension])
|
|
X11_LIBS="$X11_LIBS -lXdamage"
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES xdamage"
|
|
AC_MSG_RESULT([found])
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for XCOMPOSITE extension >= 0.4])
|
|
PKG_CHECK_EXISTS([xcomposite >= 0.4], [have_xcomposite=yes], [have_xcomposite=no])
|
|
if test "x$have_xcomposite" = "xyes"; then
|
|
AC_DEFINE(HAVE_XCOMPOSITE, 1, [Define to 1 if we have the XCOMPOSITE X extension])
|
|
X11_LIBS="$X11_LIBS -lXcomposite"
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES xcomposite"
|
|
AC_MSG_RESULT([found])
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
|
|
x11_tests=no
|
|
|
|
# Currently require all extentions, may not for actual release.
|
|
if test "x$clutterbackend" = "xglx" || test "x$clutterbackend" = "xeglx"
|
|
then
|
|
if test "x$have_xdamage" = "xno" || test "x$have_xfixes" = "xno" || test "x$have_xcomposite" = "xno"; then
|
|
AC_MSG_ERROR([Required backend X11 Libraries not found.])
|
|
fi
|
|
|
|
if test "x$have_xcomposite" = "xyes"; then
|
|
x11_tests=yes
|
|
fi
|
|
fi
|
|
|
|
AM_CONDITIONAL(X11_TESTS, test "x$x11_tests" != "xno")
|
|
|
|
xinput=no
|
|
AC_ARG_ENABLE(xinput,
|
|
AS_HELP_STRING([--enable-xinput],
|
|
["Use the XINPUT X extension"]),[
|
|
if test "x$enableval" = "xyes" ; then
|
|
PKG_CHECK_MODULES(XINPUT,[xi],
|
|
xinput=yes,
|
|
xinput=no)
|
|
fi],
|
|
[xinput=yes])
|
|
|
|
if test "x$xinput" = "xyes"; then
|
|
AC_DEFINE(USE_XINPUT, 1, Use the XINPUT X extension)
|
|
X11_LIBS="$X11_LIBS -lXi"
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES xi"
|
|
fi
|
|
|
|
dnl This is only used to decide whether to build
|
|
dnl tests/tools/disable-npots.la
|
|
AC_CHECK_LIB(dl, dlopen, HAVE_LIBDL=yes, HAVE_LIBDL=no)
|
|
AM_CONDITIONAL(HAVE_LIBDL, test "x$HAVE_LIBDL" != "xno")
|
|
|
|
clutter_gl_header=""
|
|
use_gles2_wrapper="no"
|
|
|
|
if test "x$clutterbackend" = "xeglnative" || test "x$clutterbackend" = "xeglx" || test "x$clutterbackend" = "xfruity"
|
|
then
|
|
case $glesversion in
|
|
|
|
1*)
|
|
clutter_gl_header="GLES/gl.h"
|
|
CLUTTER_COGL="gles"
|
|
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GL/ES for rendering])
|
|
|
|
AC_CHECK_HEADERS([GLES/egl.h],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
|
|
|
|
# check for upper/lower case libgles_em
|
|
# The powervr sdk uses lower case.
|
|
AC_CHECK_LIB(GLES_CM, eglInitialize, HAVE_LIBGLES=yes, HAVE_LIBGLES=no)
|
|
if test "x$HAVE_LIBGLES" = "xno"; then
|
|
|
|
AC_CHECK_LIB(GLESv1_CM, eglInitialize, HAVE_LIBGLES=yes, HAVE_LIBGLES=no)
|
|
if test "x$HAVE_LIBGLES" = "xno"; then
|
|
|
|
AC_CHECK_LIB(gles_cm, eglInitialize, HAVE_LIBGLES=yes, HAVE_LIBGLES=no)
|
|
if test "x$HAVE_LIBGLES" = "xno"; then
|
|
AC_MSG_ERROR([GLES library not found and egl backend requested.]);
|
|
else
|
|
GLES_LIBS="-lgles_cm"
|
|
fi
|
|
else
|
|
GLES_LIBS="-lGLESv1_CM"
|
|
fi
|
|
|
|
else
|
|
GLES_LIBS="-lGLES_CM"
|
|
fi
|
|
;;
|
|
2*)
|
|
clutter_gl_header="GLES2/gl2.h"
|
|
CLUTTER_COGL="gles"
|
|
AC_DEFINE([HAVE_COGL_GLES2], 1, [Have GL/ES for rendering])
|
|
|
|
AC_CHECK_HEADERS([EGL/egl.h],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
|
|
GLES_LIBS="-lGLESv2 -lEGL"
|
|
|
|
use_gles2_wrapper=yes
|
|
;;
|
|
fruity)
|
|
CLUTTER_COGL="gles"
|
|
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GL/ES for rendering])
|
|
|
|
clutter_gl_header="GLES/gl.h"
|
|
CLUTTER_COGL="gles"
|
|
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GL/ES for rendering])
|
|
|
|
AC_CHECK_HEADERS([GLES/egl.h],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GLES headers])])
|
|
;;
|
|
|
|
*) AC_MSG_ERROR([Invalid GL ES Version '$glesversion' specified])
|
|
;;
|
|
|
|
esac
|
|
fi
|
|
|
|
AM_CONDITIONAL(USE_GLES2_WRAPPER, test "x$use_gles2_wrapper" != "xno")
|
|
|
|
case $clutterbackend in
|
|
|
|
sdl)
|
|
|
|
clutter_gl_header="GL/gl.h"
|
|
CLUTTER_FLAVOUR="sdl"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_SDL"
|
|
AC_DEFINE([HAVE_CLUTTER_SDL], 1, [Have the SDL backend])
|
|
|
|
CLUTTER_COGL="gl"
|
|
AC_DEFINE([HAVE_COGL_GL], 1, [Have GL for rendering])
|
|
|
|
AC_PATH_PROG(SDL_CONFIG, sdl-config)
|
|
if test "x$SDL_CONFIG" = "x"; then
|
|
AC_MSG_ERROR([[No sdl-config binary found in path and SDL flavour requested.]])
|
|
else
|
|
SDL_CFLAGS=`$SDL_CONFIG --cflags`
|
|
SDL_LIBS=`$SDL_CONFIG --libs`
|
|
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GL headers])])
|
|
|
|
dnl Use -lopengl32 under Windows instead of -lGL
|
|
case "$host" in
|
|
*mingw32*)
|
|
SDL_LIBS="$SDL_LIBS -lopengl32"
|
|
CLUTTER_LT_LDFLAGS="$CLUTTER_LT_LDFLAGS -no-undefined"
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(GL, glEnable, HAVE_LIBGL=yes, HAVE_LIBGL=no)
|
|
if test "x$HAVE_LIBGL" = "xno"; then
|
|
AC_MSG_ERROR([libGL not found]);
|
|
fi
|
|
SDL_LIBS="$SDL_LIBS -lGL"
|
|
;;
|
|
esac
|
|
fi
|
|
;;
|
|
|
|
glx)
|
|
|
|
clutter_gl_header="GL/gl.h"
|
|
CLUTTER_FLAVOUR="glx"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_GLX"
|
|
AC_DEFINE([HAVE_CLUTTER_GLX], 1, [Have the GLX backend])
|
|
|
|
PKG_CHECK_EXISTS([gl], [have_gl_pc=yes], [have_gl_pc=no])
|
|
|
|
CLUTTER_COGL="gl"
|
|
AC_DEFINE([HAVE_COGL_GL], 1, [Have GL for rendering])
|
|
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GL headers])])
|
|
AC_CHECK_HEADERS([GL/glx.h],,
|
|
[AC_MSG_ERROR([Unable to locate required GLX headers])])
|
|
|
|
AC_CHECK_LIB(GL, glXCreateContext, HAVE_LIBGLX=yes, HAVE_LIBGLX=no)
|
|
|
|
if test "x$HAVE_LIBGLX" = "xno"; then
|
|
AC_MSG_ERROR([GLX not found and GLX backend requested]);
|
|
fi
|
|
|
|
GLX_LIBS="$X11_LIBS -lGL"
|
|
GLX_CFLAGS="$X11_CFLAGS"
|
|
backendextra=x11
|
|
backendextralib="x11/libclutter-x11.la"
|
|
|
|
# Mesa 7.3 added a GL pkg-config file, finally
|
|
if test "x$have_gl_pc" = "xyes"; then
|
|
BACKEND_PC_FILES="$BACKEND_PC_FILES gl"
|
|
fi
|
|
;;
|
|
|
|
eglx)
|
|
|
|
CLUTTER_FLAVOUR="eglx"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_EGL"
|
|
AC_DEFINE([HAVE_CLUTTER_EGL], 1, [Have the EGL backend])
|
|
|
|
EGL_LIBS="$GLES_LIBS $X11_LIBS"
|
|
EGL_CFLAGS="$GLES_CFLAGS $X11_CFLAGS"
|
|
backendextra=x11
|
|
backendextralib="x11/libclutter-x11.la"
|
|
;;
|
|
|
|
eglnative)
|
|
|
|
CLUTTER_FLAVOUR="eglnative"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_EGLNATIVE"
|
|
AC_DEFINE([HAVE_CLUTTER_EGL], 1, [Have the EGL backend])
|
|
|
|
PKG_CHECK_MODULES(TSLIB, tslib-1.0, [have_tslib=yes], [have_tslib=no])
|
|
if test x$have_tslib = xyes; then
|
|
AC_DEFINE([HAVE_TSLIB], 1, [Have tslib for touchscreen handling])
|
|
fi
|
|
|
|
EGL_LIBS="$GLES_LIBS $TSLIB_LIBS"
|
|
EGL_CFLAGS="$TSLIB_CFLAGS"
|
|
;;
|
|
|
|
fruity)
|
|
|
|
CLUTTER_FLAVOUR="fruity"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_FRUITY"
|
|
AC_DEFINE([HAVE_CLUTTER_FRUITY], 1, [We're building a fruity version of the eglnative backend])
|
|
|
|
EGL_LIBS="-ObjC -framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreSurface -framework GraphicsServices -framework OpenGLES -framework LayerKit -framework UIKit"
|
|
EGL_CFLAGS=""
|
|
;;
|
|
|
|
osx)
|
|
|
|
clutter_gl_header="OpenGL/gl.h"
|
|
CLUTTER_FLAVOUR="osx"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_OSX"
|
|
AC_DEFINE([HAVE_CLUTTER_OSX], [1], [Have the OSX backend])
|
|
|
|
CLUTTER_COGL="gl"
|
|
AC_DEFINE([HAVE_COGL_GL], [1], [Have GL for rendering])
|
|
|
|
OSX_LIBS="-framework Cocoa -framework OpenGL"
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GL headers])])
|
|
;;
|
|
|
|
win32)
|
|
|
|
clutter_gl_header="GL/gl.h"
|
|
CLUTTER_FLAVOUR="win32"
|
|
CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_WIN32"
|
|
AC_DEFINE([HAVE_CLUTTER_WIN32], 1, [Have the Win32 backend])
|
|
|
|
CLUTTER_COGL="gl"
|
|
AC_DEFINE([HAVE_COGL_GL], 1, [Have GL for rendering])
|
|
|
|
AC_CHECK_HEADERS([$clutter_gl_header],,
|
|
[AC_MSG_ERROR([Unable to locate required GL headers])])
|
|
|
|
WIN32_CFLAGS="-D_WIN32_WINNT=0x0500"
|
|
WIN32_LIBS="-lopengl32 -lgdi32 -lwinmm"
|
|
CLUTTER_LT_LDFLAGS="$CLUTTER_LT_LDFLAGS -no-undefined"
|
|
;;
|
|
|
|
*) AC_MSG_ERROR([Invalid backend for Clutter: use glx,sdl,osx,win32,eglx, eglnative or fruity])
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
CLUTTER_GL_HEADER=$clutter_gl_header
|
|
|
|
AC_SUBST([clutterbackend])
|
|
AC_SUBST([imagebackend])
|
|
AC_SUBST([backendextra])
|
|
AC_SUBST([backendextralib])
|
|
AC_SUBST(CLUTTER_FLAVOUR)
|
|
AC_SUBST(CLUTTER_COGL)
|
|
AC_SUBST(CLUTTER_GL_HEADER)
|
|
AC_SUBST(CLUTTER_STAGE_TYPE)
|
|
|
|
clutterbackendlib=libclutter$CLUTTER_REAL-$clutterbackend-$CLUTTER_MAJORMINOR.la
|
|
AC_SUBST([clutterbackendlib])
|
|
|
|
dnl ========================================================================
|
|
|
|
# allow building clutter with an external dependency on json-glib
|
|
# using the --with-json=check argument, but keep the default to
|
|
# the internal version
|
|
AC_ARG_WITH([json],
|
|
AC_HELP_STRING([--with-json=@<:@internal/check@:>@],
|
|
[Select the JSON-GLib copy to use @<:@default=internal@:>@]),
|
|
[],
|
|
[with_json=internal])
|
|
|
|
case $with_json in
|
|
internal|check) ;;
|
|
*) AC_MSG_ERROR([Invalid value for the JSON library: use internal or check]) ;;
|
|
esac
|
|
|
|
if test "x$with_json" = "xinternal"; then
|
|
JSON_PREFIX=json
|
|
have_json=no
|
|
else
|
|
# if the user asked for it and if we have json-glib installed,
|
|
# prefer the system library instead of the internal copy
|
|
AC_MSG_CHECKING([for installed JSON-GLib])
|
|
PKG_CHECK_EXISTS(json-glib-1.0, [have_json=yes], [have_json=no])
|
|
if test "x$have_json" = "xyes"; then
|
|
JSON_PREFIX=json-glib
|
|
JSON_GLIB_PC=json-glib-1.0
|
|
AC_DEFINE(HAVE_JSON_GLIB, 1, [Have the JSON-GLib library installed])
|
|
AC_MSG_RESULT([found])
|
|
else
|
|
JSON_PREFIX=json
|
|
AC_MSG_RESULT([not found, using internal copy])
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(JSON_PREFIX)
|
|
AM_CONDITIONAL(LOCAL_JSON_GLIB, test "x$have_json" = "xno")
|
|
|
|
CLUTTER_REQUIRES="cairo >= 1.4 pangocairo >= 1.18 gobject-2.0 >= 2.16 gthread-2.0 gmodule-no-export-2.0 $BACKEND_PC_FILES $JSON_GLIB_PC"
|
|
|
|
if test "x$imagebackend" = "xgdk-pixbuf"; then
|
|
CLUTTER_REQUIRES="$CLUTTER_REQUIRES gdk-pixbuf-2.0"
|
|
fi
|
|
|
|
PKG_CHECK_MODULES(CLUTTER_DEPS, [$CLUTTER_REQUIRES])
|
|
|
|
AC_SUBST(CLUTTER_REQUIRES)
|
|
|
|
# prefixes for fixing gtk-doc references
|
|
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
|
|
PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
|
|
AC_SUBST(GLIB_PREFIX)
|
|
AC_SUBST(PANGO_PREFIX)
|
|
|
|
dnl ========================================================================
|
|
|
|
if test "x$GCC" = "xyes"; then
|
|
GCC_FLAGS="-g -Wall"
|
|
fi
|
|
|
|
dnl = Enable debug level ===================================================
|
|
|
|
m4_define([debug_default],
|
|
m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum]))
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
|
|
[turn on debugging. yes; All glib asserts, checks and runtime clutter verbose messages. minimum; Just glib cast checks and runtime clutter verbose messagaes. no; No glib asserts or checks and no runtime clutter verbose messages. @<:@default=debug_default@:>@]),
|
|
,
|
|
enable_debug=debug_default)
|
|
|
|
if test "x$enable_debug" = "xyes"; then
|
|
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
|
|
CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DCOGL_ENABLE_DEBUG"
|
|
else
|
|
if test "x$enable_debug" = "xno"; then
|
|
CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
|
|
else # minimum
|
|
CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DCOGL_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(CLUTTER_DEBUG_CFLAGS)
|
|
|
|
dnl = Enable strict compiler flags =========================================
|
|
|
|
# use strict compiler flags only on development releases
|
|
#m4_define([maintainer_flags_default],
|
|
# m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [no]))
|
|
m4_define([maintainer_flags_default], [no])
|
|
AC_ARG_ENABLE([maintainer-flags],
|
|
AC_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@],
|
|
[Use strict compiler flags @<:@default=maintainer_flags_default@:>@]),,
|
|
enable_maintainer_flags=maintainer_flags_default)
|
|
|
|
if test "x$enable_maintainer_flags" = "xyes"; then
|
|
MAINTAINER_CFLAGS="-Werror -Wall -Wshadow -Wcast-align -Wno-strict-aliasing -Wno-uninitialized -Wempty-body -Wformat-security -Winit-self"
|
|
fi
|
|
AC_SUBST(MAINTAINER_CFLAGS)
|
|
|
|
dnl = GObject-Introspection check ==========================================
|
|
|
|
GOBJECT_INTROSPECTION_CHECK([0.6.3])
|
|
|
|
dnl = GTK Doc check ========================================================
|
|
|
|
GTK_DOC_CHECK([1.11])
|
|
|
|
# we don't want to build the documentation from a SVN checkout unless we
|
|
# explicitly tell configure to do so; this allows avoiding to recurse into
|
|
# the documentation directory when building Clutter inside Poky for a
|
|
# target device that doesn't have gtk-doc installed. for reference
|
|
# see: http://bugzilla.openedhand.com/show_bug.cgi?id=1047
|
|
#
|
|
# we use autogen.sh as it exists only inside the SVN checkouts, and it
|
|
# is not packaged into tarballs.
|
|
AM_CONDITIONAL([BUILD_GTK_DOC],
|
|
[test "x$enable_gtk_doc" = "xyes" || test ! -f "autogen.sh"])
|
|
|
|
dnl = Manual ===============================================================
|
|
|
|
AC_ARG_ENABLE(manual,
|
|
AC_HELP_STRING([--enable-manual=@<:@no/yes@:>@],
|
|
[Build application developers manual. Requires jw and xmlto binaries.]),
|
|
enable_manual=$enableval, enable_manual=no)
|
|
|
|
if test "x$enable_manual" = "xyes"; then
|
|
AC_PATH_PROG(JW, jw, no)
|
|
if test "x$JW" = "xno"; then
|
|
AC_MSG_ERROR(['jw' program needed by the manual not found in path])
|
|
fi
|
|
|
|
AC_PATH_PROG(XMLTO, xmlto, no)
|
|
if test "x$XMLTO" = "xno"; then
|
|
AC_MSG_ERROR(['xmlto' program needed by the manual not found in path])
|
|
fi
|
|
fi
|
|
|
|
AM_CONDITIONAL(ENABLE_MANUAL, test "x$enable_manual" != "xno")
|
|
|
|
dnl ========================================================================
|
|
|
|
AC_SUBST(GCC_FLAGS)
|
|
|
|
CLUTTER_CFLAGS="$SDL_CFLAGS $EGL_CFLAGS $GLX_CFLAGS $OSX_CFLAGS $WIN32_CFLAGS $CLUTTER_DEPS_CFLAGS"
|
|
CLUTTER_LIBS="$SDL_LIBS $EGL_LIBS $GLX_LIBS $OSX_LIBS $WIN32_LIBS $CLUTTER_DEPS_LIBS"
|
|
|
|
AC_SUBST(CLUTTER_CFLAGS)
|
|
AC_SUBST(CLUTTER_LIBS)
|
|
|
|
GETTEXT_PACKAGE="clutter-$CLUTTER_API_VERSION"
|
|
AC_SUBST(GETTEXT_PACKAGE)
|
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
|
[The prefix for our gettext translation domains.])
|
|
|
|
ALL_LINGUAS=""
|
|
AM_GLIB_GNU_GETTEXT
|
|
GLIB_DEFINE_LOCALEDIR(LOCALEDIR)
|
|
|
|
SHAVE_INIT([build/autotools])
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
build/Makefile
|
|
build/autotools/Makefile
|
|
build/autotools/shave
|
|
build/autotools/shave-libtool
|
|
clutter/Makefile
|
|
clutter/clutter-version.h
|
|
clutter/clutter-json.h
|
|
clutter/x11/Makefile
|
|
clutter/x11/clutter-x11.pc
|
|
clutter/glx/Makefile
|
|
clutter/eglx/Makefile
|
|
clutter/eglnative/Makefile
|
|
clutter/fruity/Makefile
|
|
clutter/osx/Makefile
|
|
clutter/win32/Makefile
|
|
clutter/win32/clutter-win32.pc
|
|
clutter/sdl/Makefile
|
|
clutter/cogl/Makefile
|
|
clutter/cogl/common/Makefile
|
|
clutter/cogl/cogl.h
|
|
clutter/cogl/cogl-defines-gl.h:clutter/cogl/gl/cogl-defines.h.in
|
|
clutter/cogl/cogl-defines-gles.h:clutter/cogl/gles/cogl-defines.h.in
|
|
clutter/cogl/gl/Makefile
|
|
clutter/cogl/gles/Makefile
|
|
clutter/json/Makefile
|
|
clutter/pango/Makefile
|
|
tests/Makefile
|
|
tests/conform/Makefile
|
|
tests/data/Makefile
|
|
tests/interactive/Makefile
|
|
tests/micro-bench/Makefile
|
|
tests/tools/Makefile
|
|
doc/Makefile
|
|
doc/reference/Makefile
|
|
doc/reference/clutter/Makefile
|
|
doc/reference/clutter/version.xml
|
|
doc/reference/cogl/Makefile
|
|
doc/reference/cogl/version.xml
|
|
doc/manual/clutter-manual.xml
|
|
doc/manual/Makefile
|
|
po/Makefile.in
|
|
clutter.pc
|
|
])
|
|
|
|
AC_OUTPUT
|
|
|
|
dnl ========================================================================
|
|
|
|
echo ""
|
|
echo " Clutter $VERSION"
|
|
echo " ===================="
|
|
echo ""
|
|
echo " prefix: ${prefix}"
|
|
echo ""
|
|
echo " Flavour: ${clutterbackend}/${CLUTTER_COGL}"
|
|
if test "x$clutterbackend" = "xeglx" || test "x$clutterbackend" = "xglx"; then
|
|
echo " XInput: ${xinput}"
|
|
fi
|
|
echo " GL Headers: ${CLUTTER_GL_HEADER}"
|
|
echo " Image backend: ${imagebackend}"
|
|
echo " Target library: ${clutterbackendlib}"
|
|
echo " Debug level: ${enable_debug}"
|
|
echo " Compiler flags: ${CPPFLAGS} ${MAINTAINER_CFLAGS}"
|
|
echo " Build API Documentation: ${enable_gtk_doc}"
|
|
echo " Build Manual Documentation: ${enable_manual}"
|
|
echo " Build Introspection data: ${enable_introspection}"
|
|
echo ""
|
|
|
|
|
|
# you can add more configuration options or flags that will bring up the
|
|
# the experimental/unstable warning summary.
|
|
|
|
if test "x$imagebackend" = "xinternal"; then
|
|
experimental_stuff="$experimental_stuff imagebackend: $imagebackend\n"
|
|
fi
|
|
if test "x$clutterbackend" = "xfruity"; then
|
|
experimental_stuff="$experimental_stuff clutterbackend: $clutterbackend\n"
|
|
fi
|
|
|
|
|
|
if test "x$experimental_stuff" != "x"; then
|
|
echo ""
|
|
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
|
|
echo " *WARNING*"
|
|
echo ""
|
|
echo " Experimental features configured, stability of your build either uses"
|
|
echo " experimental backends or experimental and unsupported features:"
|
|
echo ""
|
|
echo -e "$experimental_stuff"
|
|
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
|
|
echo ""
|
|
fi
|
|
|
|
|