Improved DirectFB install detection

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401593
This commit is contained in:
Sam Lantinga 2006-03-22 09:18:10 +00:00
parent cb61dcc206
commit 164d170fcd
3 changed files with 37 additions and 22 deletions

View File

@ -36,9 +36,9 @@ to develop SDL applications.
%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

View File

@ -1012,31 +1012,46 @@ dnl Find DirectFB
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
if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
AC_MSG_ERROR([*** pkg-config too old; version 0.7 or better required.])
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-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 @@ dnl Find the SVGAlib includes and libraries
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 @@ dnl Find the VGL includes and libraries
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

View File

@ -1082,7 +1082,7 @@ void DirectFB_VideoQuit(_THIS)
{
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;