# HG changeset patch # User Sam Lantinga # Date 1143019090 0 # Node ID e20dcef5647cc4543df8a0a78a29f8781f254c11 # Parent 7fd9fc1f2be5ed0e2524922057cea23df2b84b92 Improved DirectFB install detection diff -r 7fd9fc1f2be5 -r e20dcef5647c SDL.spec.in --- a/SDL.spec.in Wed Mar 22 09:13:10 2006 +0000 +++ b/SDL.spec.in Wed Mar 22 09:18:10 2006 +0000 @@ -36,9 +36,9 @@ %build %ifos linux -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-svga --disable-video-ggi --disable-video-aalib --disable-debug --enable-dlopen --enable-esd-shared --enable-arts-shared +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-aalib --disable-video-directfb --disable-video-ggi --disable-video-svga %else -%configure --disable-debug --enable-dlopen +%configure %endif make diff -r 7fd9fc1f2be5 -r e20dcef5647c configure.in --- a/configure.in Wed Mar 22 09:13:10 2006 +0000 +++ b/configure.in Wed Mar 22 09:18:10 2006 +0000 @@ -1012,31 +1012,46 @@ CheckDirectFB() { AC_ARG_ENABLE(video-directfb, -AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [default=no]]), - , enable_video_directfb=no) +AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [default=yes]]), + , enable_video_directfb=yes) if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then video_directfb=no - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - if test x$PKG_CONFIG = xno ; then - AC_MSG_WARN([*** pkg-config is required to build the DirectFB video driver.]) - else - AC_MSG_CHECKING(for DirectFB support) + DIRECTFB_REQUIRED_VERSION=0.9.15 + + AC_PATH_PROG(DIRECTFBCONFIG, directfb-config) + if test x$DIRECTFBCONFIG = x -o x$DIRECTFBCONFIG = x'"$DIRECTFBCONFIG"'; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + if test x$PKG_CONFIG != xno ; then + AC_MSG_WARN([*** directfb-config or pkg-config are required to detect the DirectFB video driver.]) + else + AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support) + + if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then + AC_MSG_ERROR([*** pkg-config too old; version 0.7 or better required.]) + fi - if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - AC_MSG_ERROR([*** pkg-config too old; version 0.7 or better required.]) + if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then + DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb` + DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb` + video_directfb=yes + fi + AC_MSG_RESULT($video_directfb) fi - - DIRECTFB_REQUIRED_VERSION=0.9.15 - - if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then - DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb` - DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb` + else + AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support) + set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'` + NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` + set -- `directfb-config --version | sed 's/\./ /g'` + HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` + if test $HAVE_VERSION -ge $NEED_VERSION; then + DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags` + DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs` video_directfb=yes fi + AC_MSG_RESULT($video_directfb) fi - AC_MSG_RESULT($video_directfb) if test x$video_directfb = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB) SOURCES="$SOURCES $srcdir/src/video/directfb/*.c" @@ -1102,7 +1117,7 @@ CheckSVGA() { AC_ARG_ENABLE(video-svga, -AC_HELP_STRING([--enable-video-svga], [use SVGAlib video driver [default=no]]), +AC_HELP_STRING([--enable-video-svga], [use SVGAlib video driver [default=yes]]), , enable_video_svga=yes) if test x$enable_video = xyes -a x$enable_video_svga = xyes; then AC_MSG_CHECKING(for SVGAlib (1.4.0+) support) @@ -1132,8 +1147,8 @@ CheckVGL() { AC_ARG_ENABLE(video-vgl, -AC_HELP_STRING([--enable-video-vgl], [use VGL video driver [default=no]]), - , enable_video_vgl=no) +AC_HELP_STRING([--enable-video-vgl], [use VGL video driver [default=yes]]), + , enable_video_vgl=yes) if test x$enable_video = xyes -a x$enable_video_vgl = xyes; then AC_MSG_CHECKING(for libVGL support) video_vgl=no diff -r 7fd9fc1f2be5 -r e20dcef5647c src/video/directfb/SDL_DirectFB_video.c --- a/src/video/directfb/SDL_DirectFB_video.c Wed Mar 22 09:13:10 2006 +0000 +++ b/src/video/directfb/SDL_DirectFB_video.c Wed Mar 22 09:18:10 2006 +0000 @@ -1082,7 +1082,7 @@ { struct DirectFBEnumRect *rect = enumlist; - if (this->screen->hwdata) + if (this->screen && this->screen->hwdata) { IDirectFBSurface *surface = this->screen->hwdata->surface; IDirectFBPalette *palette = this->screen->hwdata->palette;