Skip to content
Permalink
Browse files

Improved DirectFB install detection

  • Loading branch information
slouken committed Mar 22, 2006
1 parent 12bf3b9 commit 6ee00c24a53a1be664d81093f586d5805076c4b8
Showing with 36 additions and 21 deletions.
  1. +2 −2 SDL.spec.in
  2. +33 −18 configure.in
  3. +1 −1 src/video/directfb/SDL_DirectFB_video.c
@@ -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

@@ -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.])
fi
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)

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.])
fi

if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then
DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
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
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
@@ -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;

0 comments on commit 6ee00c2

Please sign in to comment.