--- 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
--- 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
--- 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;