I raised an issue with the libSDL project that their provided automake 
macro is incapable of detecting and configuring their provided runtime 
framework.  Sam Lantinga responded with: "I typically build and install SDL on 
Mac OS X using the unix style configure/install which works fine.  Can you 
submit a patch for sdl.m4 which does the right thing for you?  I'm attaching 
the file for you."  I don't speak M4 and have only rudimentary understanding of 
frameworks.  However, it does seem like the macro is searching for a file 
called 'sdl-config' and i don't see such a file inside the SDL framework.  At 
this point i'm not sure if:

1) 'sdl-config' is in the framework but hidden.
2) The framework needs to be built differently to include 'sdl-config'.
3) The macro needs to test for some other file inside the framework.

        Here is the M4 file:

> # Configure paths for SDL
> # Sam Lantinga 9/21/99
> # stolen from Manish Singh
> # stolen back from Frank Belew
> # stolen from Manish Singh
> # Shamelessly stolen from Owen Taylor
> 
> # serial 1
> 
> dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
> dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
> dnl
> AC_DEFUN([AM_PATH_SDL2],
> [dnl 
> dnl Get the cflags and libraries from the sdl2-config script
> dnl
> AC_ARG_WITH(sdl-prefix,[  --with-sdl-prefix=PFX   Prefix where SDL is 
> installed (optional)],
>             sdl_prefix="$withval", sdl_prefix="")
> AC_ARG_WITH(sdl-exec-prefix,[  --with-sdl-exec-prefix=PFX Exec prefix where 
> SDL is installed (optional)],
>             sdl_exec_prefix="$withval", sdl_exec_prefix="")
> AC_ARG_ENABLE(sdltest, [  --disable-sdltest       Do not try to compile and 
> run a test SDL program],
>                   , enable_sdltest=yes)
> 
>   min_sdl_version=ifelse([$1], ,0.9.0,$1)
> 
>   if test "x$sdl_prefix$sdl_exec_prefix" = x ; then
>     PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version],
>            [sdl_pc=yes],
>            [sdl_pc=no])
>   else
>     sdl_pc=no
>     if test x$sdl_exec_prefix != x ; then
>       sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
>       if test x${SDL_CONFIG+set} != xset ; then
>         SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config
>       fi
>     fi
>     if test x$sdl_prefix != x ; then
>       sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
>       if test x${SDL_CONFIG+set} != xset ; then
>         SDL_CONFIG=$sdl_prefix/bin/sdl2-config
>       fi
>     fi
>   fi
> 
>   if test "x$sdl_pc" = xyes ; then
>     no_sdl=""
>     SDL_CONFIG="pkg-config sdl2"
>   else
>     as_save_PATH="$PATH"
>     if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then
>       PATH="$prefix/bin:$prefix/usr/bin:$PATH"
>     fi
>     AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH])
>     PATH="$as_save_PATH"
>     AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
>     no_sdl=""
> 
>     if test "$SDL_CONFIG" = "no" ; then
>       no_sdl=yes
>     else
>       SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
>       SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
> 
>       sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
>              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
>       sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
>              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
>       sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
>              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
>       if test "x$enable_sdltest" = "xyes" ; then
>         ac_save_CFLAGS="$CFLAGS"
>         ac_save_CXXFLAGS="$CXXFLAGS"
>         ac_save_LIBS="$LIBS"
>         CFLAGS="$CFLAGS $SDL_CFLAGS"
>         CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
>         LIBS="$LIBS $SDL_LIBS"
> dnl
> dnl Now check if the installed SDL is sufficiently new. (Also sanity
> dnl checks the results of sdl2-config to some extent
> dnl
>       rm -f conf.sdltest
>       AC_TRY_RUN([
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include "SDL.h"
> 
> char*
> my_strdup (char *str)
> {
>   char *new_str;
>   
>   if (str)
>     {
>       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
>       strcpy (new_str, str);
>     }
>   else
>     new_str = NULL;
>   
>   return new_str;
> }
> 
> int main (int argc, char *argv[])
> {
>   int major, minor, micro;
>   char *tmp_version;
> 
>   /* This hangs on some systems (?)
>   system ("touch conf.sdltest");
>   */
>   { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
> 
>   /* HP/UX 9 (%@#!) writes to sscanf strings */
>   tmp_version = my_strdup("$min_sdl_version");
>   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
>      printf("%s, bad version string\n", "$min_sdl_version");
>      exit(1);
>    }
> 
>    if (($sdl_major_version > major) ||
>       (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
>       (($sdl_major_version == major) && ($sdl_minor_version == minor) && 
> ($sdl_micro_version >= micro)))
>     {
>       return 0;
>     }
>   else
>     {
>       printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the 
> minimum version\n", $sdl_major_version, $sdl_minor_version, 
> $sdl_micro_version);
>       printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, 
> then it is\n", major, minor, micro);
>       printf("*** best to upgrade to the required version.\n");
>       printf("*** If sdl2-config was wrong, set the environment variable 
> SDL_CONFIG\n");
>       printf("*** to point to the correct copy of sdl2-config, and remove the 
> file\n");
>       printf("*** config.cache before re-running configure\n");
>       return 1;
>     }
> }
> 
> ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
>         CFLAGS="$ac_save_CFLAGS"
>         CXXFLAGS="$ac_save_CXXFLAGS"
>         LIBS="$ac_save_LIBS"
>       fi
>     fi
>     if test "x$no_sdl" = x ; then
>       AC_MSG_RESULT(yes)
>     else
>       AC_MSG_RESULT(no)
>     fi
>   fi
>   if test "x$no_sdl" = x ; then
>      ifelse([$2], , :, [$2])
>   else
>      if test "$SDL_CONFIG" = "no" ; then
>        echo "*** The sdl2-config script installed by SDL could not be found"
>        echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
>        echo "*** your path, or set the SDL_CONFIG environment variable to the"
>        echo "*** full path to sdl2-config."
>      else
>        if test -f conf.sdltest ; then
>         :
>        else
>           echo "*** Could not run SDL test program, checking why..."
>           CFLAGS="$CFLAGS $SDL_CFLAGS"
>           CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
>           LIBS="$LIBS $SDL_LIBS"
>           AC_TRY_LINK([
> #include <stdio.h>
> #include "SDL.h"
> 
> int main(int argc, char *argv[])
> { return 0; }
> #undef  main
> #define main K_and_R_C_main
> ],      [ return 0; ],
>         [ echo "*** The test program compiled, but did not run. This usually 
> means"
>           echo "*** that the run-time linker is not finding SDL or finding 
> the wrong"
>           echo "*** version of SDL. If it is not finding SDL, you'll need to 
> set your"
>           echo "*** LD_LIBRARY_PATH environment variable, or edit 
> /etc/ld.so.conf to point"
>           echo "*** to the installed location  Also, make sure you have run 
> ldconfig if that"
>           echo "*** is required on your system"
>         echo "***"
>           echo "*** If you have an old version installed, it is best to 
> remove it, although"
>           echo "*** you may also be able to get things to work by modifying 
> LD_LIBRARY_PATH"],
>         [ echo "*** The test program failed to compile or link. See the file 
> config.log for the"
>           echo "*** exact error that occured. This usually means SDL was 
> incorrectly installed"
>           echo "*** or that you have moved SDL since it was installed. In the 
> latter case, you"
>           echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" ])
>           CFLAGS="$ac_save_CFLAGS"
>           CXXFLAGS="$ac_save_CXXFLAGS"
>           LIBS="$ac_save_LIBS"
>        fi
>      fi
>      SDL_CFLAGS=""
>      SDL_LIBS=""
>      ifelse([$3], , :, [$3])
>   fi
>   AC_SUBST(SDL_CFLAGS)
>   AC_SUBST(SDL_LIBS)
>   rm -f conf.sdltest
> ])

        All pointers and assistance gratefully accepted.

sent from Lion

Mal: "Next time you want to stab me in the back, have the guts to do it to my 
face."
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to