From c23a01e2600ec77f857bcfb3459a9138baea8aff Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 3 Jan 2010 11:33:33 +0000 Subject: Fixup SDL configure check: - Make it work without sdl-config which adds at least useless or even hurtful cflags and also does not work for cross-compiling - If using sdl-config, make it use the CFLAGS we actually use for compiling instead of something else. Thus #undef main is needed in the test program. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30178 b3059339-0415-0410-9bf9-f77b7e298cf2 --- configure | 45 +++++++++++++++++++++++++++++++++------------ libao2/ao_sdl.c | 4 ++++ libvo/vo_sdl.c | 4 ++++ mplayer.c | 4 ++++ 4 files changed, 45 insertions(+), 12 deletions(-) diff --git a/configure b/configure index 46e5776ff0..af59c8013d 100755 --- a/configure +++ b/configure @@ -5192,6 +5192,9 @@ echores "$_vesa" echocheck "SDL" +_inc_tmp="" +_ld_tmp="" +def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H" if test -z "$_sdlconfig" ; then if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then _sdlconfig="sdl-config" @@ -5203,15 +5206,40 @@ if test -z "$_sdlconfig" ; then fi if test "$_sdl" = auto || test "$_sdl" = yes ; then cat > $TMPC << EOF +#ifdef CONFIG_SDL_SDL_H +#include +#else #include +#endif +#ifndef __APPLE__ +// we allow SDL hacking our main() only on OSX +#undef main +#endif int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE); return 0; } EOF _sdl=no - if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then - if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then + for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" ; do + if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then + _sdl=yes + def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1" + break + fi + done + if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then + if cygwin ; then + _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)" + _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)" + elif mingw32 ; then + _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//) + _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//) + else + _inc_tmp="$($_sdlconfig --cflags)" + _ld_tmp="$($_sdlconfig --libs)" + fi + if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g') if test "$_sdlversion" -gt 116 ; then if test "$_sdlversion" -lt 121 ; then @@ -5226,16 +5254,8 @@ EOF fi if test "$_sdl" = yes ; then def_sdl='#define CONFIG_SDL 1' - if cygwin ; then - libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)" - extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)" - elif mingw32 ; then - libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)" - extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)" - else - libs_mplayer="$libs_mplayer $($_sdlconfig --libs)" - extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)" - fi + extra_cflags="$extra_cflags $_inc_tmp" + libs_mplayer="$libs_mplayer $_ld_tmp" _vomodules="sdl $_vomodules" _aomodules="sdl $_aomodules" _res_comment="using $_sdlconfig" @@ -8874,6 +8894,7 @@ $def_pnm $def_quartz $def_s3fb $def_sdl +$def_sdl_sdl_h $def_sdlbuggy $def_svga $def_tdfxfb diff --git a/libao2/ao_sdl.c b/libao2/ao_sdl.c index 329486b272..8df8c0ccf2 100644 --- a/libao2/ao_sdl.c +++ b/libao2/ao_sdl.c @@ -31,7 +31,11 @@ #include "audio_out.h" #include "audio_out_internal.h" #include "libaf/af_format.h" +#ifdef CONFIG_SDL_SDL_H +#include +#else #include +#endif #include "osdep/timer.h" #include "libavutil/fifo.h" diff --git a/libvo/vo_sdl.c b/libvo/vo_sdl.c index 1b9a985d83..17ab0239b1 100644 --- a/libvo/vo_sdl.c +++ b/libvo/vo_sdl.c @@ -90,7 +90,11 @@ static const vo_info_t info = const LIBVO_EXTERN(sdl) +#ifdef CONFIG_SDL_SDL_H +#include +#else #include +#endif //#include diff --git a/mplayer.c b/mplayer.c index ef11a39e4e..ca0bc02f34 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1163,8 +1163,12 @@ void init_vo_spudec(void) { * will be done automatically by replacing our main() if we include SDL.h. */ #if defined(__APPLE__) && defined(CONFIG_SDL) +#ifdef CONFIG_SDL_SDL_H +#include +#else #include #endif +#endif /** * \brief append a formatted string -- cgit v1.2.3