From 53a3c6f551d2509bd2c0d7c18fa4c4a111142b00 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Tue, 1 Sep 2009 15:50:09 +0200 Subject: [PATCH] SDL: simplification of detection and requirement of 1.2.10 --- configure.ac | 106 ++++++++++++------------------------- modules/audio_output/sdl.c | 2 +- modules/codec/sdl_image.c | 3 +- modules/video_output/sdl.c | 9 +--- 4 files changed, 38 insertions(+), 82 deletions(-) diff --git a/configure.ac b/configure.ac index 3e9f2dd5df..52006a6ddd 100644 --- a/configure.ac +++ b/configure.ac @@ -3612,81 +3612,41 @@ then then SDL_PATH="${with_sdl_config_path}:${PATH}" fi ]) - AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH}) - SDL_CONFIG="${SDL12_CONFIG}" - SDL_HEADER="SDL12/SDL.h" - SDL_IMAGE="SDL12/SDL_image.h" - if test "${SDL_CONFIG}" = "no" - then - AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH}) - SDL_CONFIG=${SDL11_CONFIG} - SDL_HEADER="SDL11/SDL.h" - SDL_IMAGE="SDL11/SDL_image.h" - fi - if test "${SDL_CONFIG}" = "no" - then - AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH}) - SDL_HEADER="SDL/SDL.h" - SDL_IMAGE="SDL/SDL_image.h" - fi - # check for cross-compiling - SDL_PREFIX= - AC_ARG_WITH(sdl-prefix, - [ --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling), - e.g use as: - --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[]) - if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}" - then - SDL_PREFIX="--prefix=${with_sdl_prefix}" - fi - if test "${SDL_CONFIG}" != "no" - then - # SDL on Darwin is heavily patched and can only run SDL_image - if test "${SYS}" != "darwin"; then - VLC_ADD_PLUGIN([vout_sdl]) - VLC_ADD_PLUGIN([aout_sdl]) - fi - VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`]) - VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`]) - CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}" - AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE, - <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h), - [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, , - As a last resort we also test for SDL.h presence), - [ AC_MSG_ERROR([The development package for SDL is not installed. -Please install it and try again. Alternatively you can also configure with ---disable-sdl.]) - ])]) - AS_IF([ test "${enable_sdl_image}" != "no"],[ - AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE, - <${SDL_IMAGE}>, Indicate the path of SDL_image.h) - VLC_ADD_PLUGIN([sdl_image]) - AC_CHECK_LIB(png, png_set_rows, - [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz]) - AC_CHECK_LIB(jpeg, jpeg_start_decompress, - [VLC_ADD_LIBS([sdl_image],[-ljpeg])]) - AC_CHECK_LIB(tiff, TIFFClientOpen, - [VLC_ADD_LIBS([sdl_image],[-ltiff])]) - VLC_ADD_LIBS([sdl_image], [-lSDL_image])], - [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, , - As a last resort we also test for SDL_image.h presence), - [ AC_MSG_WARN([The development package for SDL_image is not installed. - You should install it alongside your SDL package.]) - ])]) - ]) - CPPFLAGS="${CPPFLAGS_save}" - if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null - then - AC_MSG_ERROR([The development package for SDL is not installed. -Please install it and try again. Alternatively you can also configure with ---disable-sdl.]) - fi - - elif test "${enable_sdl}" = "yes" - then - AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL + AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH}) + SDL_HEADER="SDL/SDL.h" + SDL_IMAGE="SDL/SDL_image.h" + + if test "${SDL_CONFIG}" != "no"; then + PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [ + # SDL on Darwin is heavily patched and can only run SDL_image + if test "${SYS}" != "darwin"; then + VLC_ADD_PLUGIN([vout_sdl]) + VLC_ADD_PLUGIN([aout_sdl]) + fi + VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`]) + VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`]) + + # SDL_image + AS_IF([ test "${enable_sdl_image}" != "no"],[ + AC_CHECK_HEADERS("SDL/SDL_image.h", [ + VLC_ADD_PLUGIN([sdl_image]) + AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz]) + AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])]) + AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])]) + VLC_ADD_LIBS([sdl_image], [-lSDL_image])], + [ AC_MSG_WARN([The development package for SDL_image is not installed. + You should install it alongside your SDL package.]) + ]) + ]) + ],[ + AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10. + Alternatively you can also configure with --disable-sdl.]) + ]) + else if test "${enable_sdl}" = "yes"; then + AC_MSG_ERROR([I could not find the SDL package. You can download libSDL from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day. ]) + fi fi fi diff --git a/modules/audio_output/sdl.c b/modules/audio_output/sdl.c index f8425fadb9..bd994c2662 100644 --- a/modules/audio_output/sdl.c +++ b/modules/audio_output/sdl.c @@ -37,7 +37,7 @@ #include #include -#include SDL_INCLUDE_FILE +#include #define FRAME_SIZE 2048 diff --git a/modules/codec/sdl_image.c b/modules/codec/sdl_image.c index 6ce6baa940..711d87bf2e 100644 --- a/modules/codec/sdl_image.c +++ b/modules/codec/sdl_image.c @@ -24,6 +24,7 @@ /***************************************************************************** * Preamble *****************************************************************************/ + #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -32,7 +33,7 @@ #include #include -#include SDL_IMAGE_INCLUDE_FILE +#include /***************************************************************************** * decoder_sys_t : sdl decoder descriptor diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c index a886daf2cd..de79932f39 100644 --- a/modules/video_output/sdl.c +++ b/modules/video_output/sdl.c @@ -38,12 +38,7 @@ #include -#include SDL_INCLUDE_FILE - -/* FIXME add a configure check */ -#if !SDL_VERSION_ATLEAST(1,2,10) -# error "Too old SDL" -#endif +#include /***************************************************************************** * Module descriptor @@ -650,7 +645,7 @@ static void Manage(vout_display_t *vd) const int y = (int64_t)(event.motion.y - sys->place.y) * vd->source.i_height / sys->place.height; SDL_ShowCursor(1); - if (x >= 0 && (unsigned)x < vd->source.i_width && + if (x >= 0 && (unsigned)x < vd->source.i_width && y >= 0 && (unsigned)y < vd->source.i_height) vout_display_SendEventMouseMoved(vd, x, y); break; -- 2.39.2