diff --git a/ChangeLog b/ChangeLog index 1341b15ca..d2f158e88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-04-28 Matthew Allum + + * autogen.sh: + Dont display 'make' if configure fails. + * configure.ac: + Add new --with-gles version option for eventual GLES2 support + Also minor tidyups. + 2008-04-28 Neil Roberts * tests/test-cogl-tex-polygon.c: Added buttons to toggle whether diff --git a/autogen.sh b/autogen.sh index 386762d71..468d64096 100755 --- a/autogen.sh +++ b/autogen.sh @@ -23,6 +23,4 @@ fi # back in the stupidity of autoreconf autoreconf -v --install || exit $? -./configure "$@" - -echo "Now type 'make' to compile $PROJECT." +./configure "$@" && echo "Now type 'make' to compile $PROJECT." diff --git a/configure.ac b/configure.ac index 9611f3c1e..14bd6a655 100644 --- a/configure.ac +++ b/configure.ac @@ -103,12 +103,19 @@ dnl ======================================================================== backendextra= backendextralib= +glesversion=1.1 clutterbackend=glx AC_ARG_WITH([flavour], AC_HELP_STRING([--with-flavour=@<:@glx/eglx/eglnative/sdl/osx@:>@], [Select the Clutter backend]), clutterbackend=$with_flavour) + +AC_ARG_WITH([gles], + AC_HELP_STRING([--with-gles=@1.1/2.0@:>@], + [Select Clutter GLES version (for EGL backends)]), + glesversion=$with_gles) + BACKEND_PC_FILES="" # Check for X though could be redundant if backend does not need it. @@ -165,6 +172,56 @@ AM_CONDITIONAL(X11_TESTS, test "x$x11_tests" != "xno") clutter_gl_header="" +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(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 + GLES_LIBS="-lgles_cm" + + else + GLES_LIBS="-lGLES_CM" + fi + ;; + 2*) + clutter_gl_header="GLES2/gl2.h" + CLUTTER_COGL="gl" + 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" + ;; + + *) AC_MSG_ERROR([Invalid GL ES Version '$glesversion' specified]) + ;; + +esac +fi + case $clutterbackend in sdl) @@ -243,105 +300,42 @@ case $clutterbackend in eglx) - clutter_gl_header="GLES/gl.h" CLUTTER_FLAVOUR="eglx" CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_EGL" 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 $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(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="gles_cm" - - else - EGL_LIBS="GLES_CM" - fi - - # glColor4ub needed for more precise picking, seems presence is a - # bit random in egl 1.1 (in SDK header, but not lib) - AC_CHECK_LIB($EGL_LIBS, glColor4ub, COLOR4UB=1, COLOR4UB=0) - AC_DEFINE_UNQUOTED([HAVE_GLES_COLOR4UB], $COLOR4UB, [Have GL/ES glColor4ub]) - - EGL_LIBS="-l$EGL_LIBS $X11_LIBS" - EGL_CFLAGS="$EGL_CFLAGS $X11_CFLAGS" + EGL_LIBS="$GLES_LIBS $X11_LIBS" + EGL_CFLAGS="$GLES_CFLAGS $X11_CFLAGS" backendextra=x11 backendextralib="x11/libclutter-x11.la" ;; eglnative) - clutter_gl_header="GLES/gl.h" CLUTTER_FLAVOUR="eglnative" CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_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([$clutter_gl_header],, - [AC_MSG_ERROR([Unable to locate require GL header])]) - AC_CHECK_HEADERS([GLES/egl.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 - - AC_CHECK_LIB(GLES_CM, glColor4ub, COLOR4UB=1, COLOR4UB=0) - AC_DEFINE([HAVE_GLES_COLOR4UB], COLOR4UB, [Have GL/ES glColor4ub]) - 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_LIBS="$GLES_LIBS $TSLIB_LIBS" EGL_CFLAGS="$TSLIB_CFLAGS" ;; fruity) - - clutter_gl_header="GLES/gl.h" - - 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]) - # We currently assume having egl means also having gles.. - CLUTTER_COGL="gles" + if test "x$glesversion" != "x1.1"; then + AC_MSG_ERROR([Fruity backend only supports GL ES 1.1.]); + fi - 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([$clutter_gl_header],, - [AC_MSG_ERROR([Unable to locate require GL header])]) - AC_CHECK_HEADERS([GLES/egl.h],, - [AC_MSG_ERROR([Unable to locate required GLES headers])]) - - backendextra= - - EGL_LIBS="-ObjC -framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreSurface -framework GraphicsServices -framework OpenGLES -framework LayerKit -framework UIKit" - EGL_CFLAGS="" + EGL_LIBS="-ObjC -framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreSurface -framework GraphicsServices -framework OpenGLES -framework LayerKit -framework UIKit" + EGL_CFLAGS="" ;; osx) @@ -388,6 +382,9 @@ case $clutterbackend in esac + + + CLUTTER_GL_HEADER=$clutter_gl_header AC_SUBST([clutterbackend]) @@ -598,23 +595,23 @@ echo "" # the experimental/unstable warning summary. if test "x$imagebackend" = "xinternal"; then - experimental_stuff="$experimental_stuff\n imagebackend=$imagebackend" + experimental_stuff="$experimental_stuff imagebackend=$imagebackend\n" fi if test "x$clutterbackend" = "xfruity"; then - experimental_stuff="$experimental_stuff\n clutterbackend=$clutterbackend" + experimental_stuff="$experimental_stuff clutterbackend=$clutterbackend\n" fi if test "x$experimental_stuff" != "x"; then -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "" -echo "Experimental features configured, stability of your build either uses" -echo "experimental backends or experimental and unsupported features:" -echo -e "$experimental_stuff" +echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" +echo " *WARNING*" +echo "" +echo " Experimental features configured, stability of your build either uses" +echo " experimental backends or experimental and unsupported features:" +echo -e " $experimental_stuff" +echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠" echo "" -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" fi