2006-05-29 08:59:36 +00:00
# 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.
2006-11-20 12:02:24 +00:00
m4_define([clutter_major_version], [0])
2007-01-18 14:13:56 +00:00
m4_define([clutter_minor_version], [3])
2007-07-06 15:19:26 +00:00
m4_define([clutter_micro_version], [1])
2006-11-20 12:02:24 +00:00
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 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)
2006-05-29 08:59:36 +00:00
AC_INIT([clutter],
2006-11-20 12:02:24 +00:00
[clutter_version],
2006-06-22 15:01:22 +00:00
[http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter])
2006-05-29 08:59:36 +00:00
AC_CONFIG_SRCDIR([clutter/clutter.h])
2005-04-13 19:49:56 +00:00
AM_CONFIG_HEADER([config.h])
2006-05-29 08:59:36 +00:00
AM_INIT_AUTOMAKE([1.7])
2006-11-20 12:02:24 +00:00
CLUTTER_MAJOR_VERSION=clutter_major_version
CLUTTER_MINOR_VERSION=clutter_minor_version
CLUTTER_MICRO_VERSION=clutter_micro_version
CLUTTER_VERSION=clutter_version
2007-03-23 15:20:35 +00:00
CLUTTER_API_VERSION=clutter_api_version
2006-11-20 12:02:24 +00:00
CLUTTER_MAJORMINOR=clutter_api_version
AC_SUBST(CLUTTER_MAJOR_VERSION)
AC_SUBST(CLUTTER_MINOR_VERSION)
AC_SUBST(CLUTTER_MICRO_VERSION)
AC_SUBST(CLUTTER_VERSION)
2007-03-23 15:20:35 +00:00
AC_SUBST(CLUTTER_API_VERSION)
2006-05-29 08:59:36 +00:00
AC_SUBST(CLUTTER_MAJORMINOR)
2006-11-20 12:02:24 +00:00
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
2006-05-29 08:59:36 +00:00
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 ========================================================================
2005-04-13 19:49:56 +00:00
# Checks for programs.
AC_PROG_CC
2006-06-23 09:20:04 +00:00
AC_DISABLE_STATIC
2005-04-13 19:49:56 +00:00
AC_PROG_LIBTOOL
# 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])
2006-05-29 08:59:36 +00:00
dnl ========================================================================
2007-05-18 07:30:06 +00:00
CLUTTER_NO_FPU="0"
AC_ARG_WITH(fpu,
AS_HELP_STRING([--without-fpu],
[Assume target hardware has no fpu]),
[with_fpu=$withval],
[with_fpu=yes])
if test "x$with_fpu" != "xyes" ; then
CLUTTER_NO_FPU="1"
fi
AC_SUBST(CLUTTER_NO_FPU)
2006-06-06 20:40:40 +00:00
2007-03-22 18:21:59 +00:00
clutterbackend=glx
AC_ARG_WITH([flavour],
2007-07-06 13:56:01 +00:00
AC_HELP_STRING([--with-flavour=@<:@glx/eglx/eglnative/sdl@:>@],
2007-03-22 18:21:59 +00:00
[Select the Clutter backend]),
clutterbackend=$with_flavour)
2007-06-19 14:10:25 +00:00
BACKEND_PC_FILES=""
2007-07-06 13:56:01 +00:00
# Check for X though could be redundant if backend does not need it.
PKG_CHECK_MODULES(X11, 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
fi
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
fi
PKG_CHECK_MODULES(XFIXES, xfixes >= 4, [have_xfixes=yes], [have_xfixes=no])
if test x$have_xfixes = xyes; then
AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
X11_LIBS="$X11_LIBS -lXfixes"
fi
2007-03-22 18:21:59 +00:00
case $clutterbackend in
2007-03-27 21:09:11 +00:00
2007-05-02 20:05:29 +00:00
sdl)
CLUTTER_FLAVOUR="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([GL/gl.h],,[AC_MSG_ERROR([Unable to locate required GL headers])])
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"
fi
;;
sdles)
#
# Temp Hack for building with dgles (runs atop SDL)
#
clutterbackend=sdl
CLUTTER_FLAVOUR="sdl"
AC_DEFINE([HAVE_CLUTTER_SDL], 1, [Have the SDL backend])
CLUTTER_COGL="gles"
AC_DEFINE([HAVE_COGL_GLES], 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`
fi
# FIXME: Obviously we need some real detection here
SDL_CFLAGS="-I/usr/local/include $SDL_CFLAGS"
SDL_LIBS="-L/usr/local/lib -lGLES_CM $SDL_LIBS"
AC_MSG_WARN([])
AC_MSG_WARN([The SDL/Open GL ES Backend is purely for experimental])
AC_MSG_WARN([and devlopment purposes. Do not use in production code!!])
AC_MSG_WARN([])
;;
2007-03-22 18:21:59 +00:00
glx)
2007-03-27 21:09:11 +00:00
2007-03-22 18:21:59 +00:00
CLUTTER_FLAVOUR="glx"
AC_DEFINE([HAVE_CLUTTER_GLX], 1, [Have the GLX backend])
2007-03-27 21:09:11 +00:00
2007-04-27 21:13:06 +00:00
CLUTTER_COGL="gl"
AC_DEFINE([HAVE_COGL_GL], 1, [Have GL for rendering])
2007-03-27 21:09:11 +00:00
AC_CHECK_HEADERS([GL/gl.h GL/glx.h],,
[AC_MSG_ERROR([Unable to locate required GL headers])])
2007-05-02 20:05:29 +00:00
AC_CHECK_LIB(GL, glXCreateContext, HAVE_LIBGLX=yes, HAVE_LIBGLX=no)
2007-03-27 21:09:11 +00:00
2007-05-02 20:05:29 +00:00
if test "x$HAVE_LIBGLX" = "xno"; then
2007-03-27 21:09:11 +00:00
AC_MSG_ERROR([GLX not found and GLX backend requested]);
fi
2007-06-19 14:10:25 +00:00
# xlib pixbuf needed for exporting the stage
BACKEND_PC_FILES="gdk-pixbuf-xlib-2.0"
2007-03-27 21:09:11 +00:00
GLX_LIBS="$X11_LIBS -lGL"
GLX_CFLAGS="$X11_CFLAGS"
2007-03-22 18:21:59 +00:00
;;
2007-03-27 21:09:11 +00:00
2007-07-06 11:40:59 +00:00
eglx)
2007-03-27 21:09:11 +00:00
2007-07-06 11:40:59 +00:00
CLUTTER_FLAVOUR="eglx"
2007-03-22 18:21:59 +00:00
AC_DEFINE([HAVE_CLUTTER_EGL], 1, [Have the EGL backend])
2007-03-27 21:09:11 +00:00
2007-04-27 21:13:06 +00:00
# We currently assume having egl means also having gles..
2007-04-28 00:37:11 +00:00
CLUTTER_COGL="gles"
2007-04-27 21:13:06 +00:00
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GL/ES for rendering])
2007-07-06 13:56:01 +00:00
# try for libvincent first
2007-03-27 21:09:11 +00:00
PKG_CHECK_MODULES(EGL, libvincent, HAVE_OGLES=yes, HAVE_OGLES=no)
if test "x$HAVE_OGLES" = "xno"; then
2007-07-06 13:56:01 +00:00
AC_CHECK_HEADERS([GLES/egl.h GLES/gl.h],,
[AC_MSG_ERROR([Unable to locate required GLES headers])])
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.]);
fi
EGL_LIBS="-lGLES_CM"
2007-03-27 21:09:11 +00:00
fi
2007-06-19 14:10:25 +00:00
2007-03-27 21:09:11 +00:00
EGL_LIBS="$EGL_LIBS $X11_LIBS"
EGL_CFLAGS="$EGL_CFLAGS $X11_CFLAGS"
2007-03-22 18:21:59 +00:00
;;
2007-03-27 21:09:11 +00:00
2007-07-06 13:56:01 +00:00
eglnative)
CLUTTER_FLAVOUR="eglnative"
AC_DEFINE([HAVE_CLUTTER_EGL], 1, [Have the EGL backend])
# We currently assume having egl means also having gles..
CLUTTER_COGL="gles"
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GL/ES for rendering])
AC_CHECK_HEADERS([GLES/egl.h GLES/gl.h],,
[AC_MSG_ERROR([Unable to locate required GLES headers])])
AC_CHECK_LIB(GLES_CM, eglInitialize, HAVE_LIBGLES=yes, HAVE_LIBGLES=no)
if test "x$HAVE_LIBGLES" = "xno"; then
AC_MSG_ERROR([libGLES_CM not found and egl backend requested.]);
fi
2007-07-09 22:25:26 +00:00
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="-lGLES_CM $TSLIB_LIBS"
EGL_CFLAGS="$TSLIB_CFLAGS"
2007-07-06 13:56:01 +00:00
;;
*) AC_MSG_ERROR([Invalid backend for Clutter: use glx,sdl, eglx or eglnative])
2007-03-22 18:21:59 +00:00
;;
2007-03-27 21:09:11 +00:00
2007-03-22 18:21:59 +00:00
esac
2007-05-02 20:05:29 +00:00
AC_SUBST([clutterbackend])
2007-01-23 20:29:11 +00:00
AC_SUBST(CLUTTER_FLAVOUR)
2007-03-26 23:18:39 +00:00
AC_SUBST(CLUTTER_COGL)
2007-03-22 18:21:59 +00:00
2007-05-18 07:30:06 +00:00
clutterbackendlib=libclutter$CLUTTER_REAL-$clutterbackend-$CLUTTER_MAJORMINOR.la
2007-03-22 18:21:59 +00:00
AC_SUBST([clutterbackendlib])
2007-01-23 20:29:11 +00:00
2006-05-29 08:59:36 +00:00
dnl ========================================================================
2005-04-13 19:49:56 +00:00
2007-06-19 14:10:25 +00:00
pkg_modules="pangoft2 glib-2.0 >= 2.10 gobject-2.0 gthread-2.0 gdk-pixbuf-2.0 $BACKEND_PC_FILES"
2006-06-06 20:40:40 +00:00
PKG_CHECK_MODULES(CLUTTER_DEPS, [$pkg_modules])
2005-04-13 19:49:56 +00:00
2006-05-29 08:59:36 +00:00
dnl ========================================================================
2005-04-13 19:49:56 +00:00
2006-05-29 08:59:36 +00:00
if test "x$GCC" = "xyes"; then
GCC_FLAGS="-g -Wall"
2005-04-13 19:49:56 +00:00
fi
2006-11-20 12:02:24 +00:00
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@:>@],
2006-11-22 20:52:27 +00:00
[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@:>@]),
2006-11-20 12:02:24 +00:00
,
enable_debug=debug_default)
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
2006-11-21 09:18:40 +00:00
CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
2006-11-20 12:02:24 +00:00
else
if test "x$enable_debug" = "xno"; then
2006-11-22 20:52:27 +00:00
CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
2006-11-21 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Enable debug messages also when
--enable-debug is set to "minimum".
* clutter/Makefile.am:
* clutter/clutter-debug.h: Move all debugging macros inside
this private header; make all debug macros depend on the
CLUTTER_ENABLE_DEBUG compile time define, controlled by
the --enable-debug configure switch; add G_LOG_DOMAIN define.
* clutter/clutter-main.c: Clean up the debug stuff; add
command line argument parsing using GOption; the debug
messages now are triggered like this:
CLUTTER_DEBUG=section:section:... clutter-app
or like this:
clutter-app --clutter-debug=section:section:...
where "section" is one of the sections listed in clutter-main.c,
or "all", for all sections; each section is bound to a flag,
which can be used to define a domain when adding a debug note
using the CLUTTER_NOTE() macro; the old CLUTTER_DBG() macro is
just a wrapper around that, under the CLUTTER_DEBUG_MISC domain;
CLUTTER_NOTE() is used like this:
CLUTTER_NOTE (DOMAIN, log-function);
where log function is g_printerr(), g_message(), g_warning(),
g_critical() or directly g_log() - for instance:
CLUTTER_NOTE (PANGO, g_warning ("Cache miss: %d", glyph));
will print the warning only if the "pango" flag has been
set to the CLUTTER_DEBUG envvar or passed to the --clutter-debug
command line argument.
similar to CLUTTER_SHOW_FPS, there's also the --clutter-show-fps
command line switch; also, the --display and --screen command
line switches have been added: the first overrides the DISPLAY
envvar and the second controls the X screen used by Clutter to
get the root window on the display.
* clutter/clutter-main.h:
* clutter/clutter-main.c: Add extended support for GOption
in Clutter; use clutter_init_with_args() to let Clutter
parse your own command line arguments; use instead
clutter_get_option_group() to get the GOptionGroup used by
Clutter if you want to do the parsing yourself with
g_option_context_parse(). The init sequence has been verified,
updated and moved into common functions where possible.
* clutter/pango/pangoclutter-render.c:
* clutter/*.c: Include "clutter-debug.h" where needed; use
CLUTTER_NOTE() instead of CLUTTER_DBG().
* examples/super-oh.c: Use the new clutter_init_with_args()
function, and add a --num-hands command line switch to
the SuperOH example code controlling the number of hands at
runtime.
2006-11-21 21:27:53 +00:00
else # minimum
2006-11-22 20:52:27 +00:00
CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
2006-11-20 12:02:24 +00:00
fi
fi
AC_SUBST(CLUTTER_DEBUG_CFLAGS)
2007-07-25 18:17:13 +00:00
dnl = Disable fast floating point conversions ==============================
AC_ARG_ENABLE(fast-fp-conversions,
AC_HELP_STRING([--disable-fast-fp-conversions=@<:@no/yes@:>@],
[Turn off fast conversion from floating point to int. no: fast floating point conversion are enabled. yes: fast floating point conversions are disabled. @<:@default=no@:>@]),
,
enable_fast_fp_conversions=yes)
if test "x$enable_fast_fp_conversions" = "xno"; then
FIXED_POINT_CFLAGS="$FIXED_POINT_CFLAGS -DCFX_NO_FAST_CONVERSIONS"
else
FIXED_POINT_CFLAGS="$FIXED_POINT_CFLAGS -UCFX_NO_FAST_CONVERSIONS"
fi
AC_SUBST(FIXED_POINT_CFLAGS)
2007-07-26 10:00:09 +00:00
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
CPPFLAGS="$CPPFLAGS -Werror -Wall -Wshadow -Wcast-align -Wno-uninitialized"
fi
2006-11-20 12:02:24 +00:00
dnl = GTK Doc check ========================================================
2007-07-04 14:00:41 +00:00
GTK_DOC_CHECK([1.6])
2006-05-29 08:59:36 +00:00
2007-05-30 23:16:58 +00:00
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)
2007-06-16 09:06:03 +00:00
if test "x$enable_manual" = "xyes"; then
AC_PATH_PROG(JW, jw, no)
if test "x$JW" = "xno"; then
2007-06-16 20:58:00 +00:00
AC_MSG_ERROR(['jw' program needed by the manual not found in path])
2007-06-15 23:15:34 +00:00
fi
2007-06-16 09:06:03 +00:00
AC_PATH_PROG(XMLTO, xmlto, no)
if test "x$XMLTO" = "xno"; then
2007-06-16 20:58:00 +00:00
AC_MSG_ERROR(['xmlto' program needed by the manual not found in path])
2007-06-15 23:15:34 +00:00
fi
2007-06-14 11:56:35 +00:00
fi
2007-06-16 09:06:03 +00:00
AM_CONDITIONAL(ENABLE_MANUAL, test "x$enable_manual" != "xno")
2007-05-30 23:16:58 +00:00
2006-05-29 08:59:36 +00:00
dnl ========================================================================
2005-04-13 19:49:56 +00:00
AC_SUBST(GCC_FLAGS)
2007-07-25 18:17:13 +00:00
CLUTTER_CFLAGS="$SDL_CFLAGS $EGL_CFLAGS $GLX_CFLAGS $CLUTTER_DEPS_CFLAGS \
$FIXED_POINT_CFLAGS"
2007-05-02 20:05:29 +00:00
CLUTTER_LIBS="$SDL_LIBS $EGL_LIBS $GLX_LIBS $CLUTTER_DEPS_LIBS"
2005-04-13 19:49:56 +00:00
2006-05-29 08:59:36 +00:00
AC_SUBST(CLUTTER_CFLAGS)
AC_SUBST(CLUTTER_LIBS)
2005-04-13 19:49:56 +00:00
2006-11-20 12:02:24 +00:00
AC_CONFIG_FILES([
Makefile
clutter/pango/Makefile
clutter/Makefile
clutter/clutter-version.h
2007-03-22 18:21:59 +00:00
clutter/glx/Makefile
2007-07-06 13:56:01 +00:00
clutter/eglx/Makefile
clutter/eglnative/Makefile
2007-05-02 20:05:29 +00:00
clutter/sdl/Makefile
2007-03-26 23:18:39 +00:00
clutter/cogl/Makefile
clutter/cogl/gl/Makefile
2007-03-27 21:09:11 +00:00
clutter/cogl/gles/Makefile
2007-05-04 23:53:49 +00:00
tests/Makefile
2006-11-20 12:02:24 +00:00
doc/Makefile
doc/reference/Makefile
doc/reference/version.xml
2007-05-30 23:16:58 +00:00
doc/manual/clutter-manual.xml
doc/manual/Makefile
2006-11-20 12:02:24 +00:00
clutter.pc
2005-04-13 19:49:56 +00:00
])
2006-06-06 20:40:40 +00:00
2006-11-20 12:02:24 +00:00
AC_OUTPUT
2006-06-06 20:40:40 +00:00
dnl ========================================================================
echo ""
echo " Clutter $VERSION"
echo " ==================="
echo ""
echo " prefix: ${prefix}"
echo ""
2007-07-26 10:00:09 +00:00
echo " Flavour: ${clutterbackend}/${CLUTTER_COGL}"
2007-03-23 15:20:35 +00:00
echo " Target library: ${clutterbackendlib}"
2006-11-20 12:02:24 +00:00
echo " Debug level: ${enable_debug}"
2007-07-25 18:17:13 +00:00
echo " Fast FP conversions: ${enable_fast_fp_conversions}"
2007-07-26 10:00:09 +00:00
echo " Compiler flags: ${CPPFLAGS}"
2007-05-30 23:16:58 +00:00
echo " API Documentation: ${enable_gtk_doc}"
echo " Manual Documentation: ${enable_manual}"
2007-07-26 10:00:09 +00:00
echo " FPU Support: ${with_fpu}"
2006-06-08 22:19:32 +00:00
echo ""