sdl.m4
上传用户:nini_0081
上传日期:2022-07-21
资源大小:2628k
文件大小:7k
源码类别:

多媒体编程

开发平台:

DOS

  1. # Configure paths for SDL
  2. # Sam Lantinga 9/21/99
  3. # stolen from Manish Singh
  4. # stolen back from Frank Belew
  5. # stolen from Manish Singh
  6. # Shamelessly stolen from Owen Taylor
  7. dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
  8. dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
  9. dnl
  10. AC_DEFUN([AM_PATH_SDL],
  11. [dnl 
  12. dnl Get the cflags and libraries from the sdl-config script
  13. dnl
  14. AC_ARG_WITH(sdl-prefix,[  --with-sdl-prefix=PFX   Prefix where SDL is installed (optional)],
  15.             sdl_prefix="$withval", sdl_prefix="")
  16. AC_ARG_WITH(sdl-exec-prefix,[  --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
  17.             sdl_exec_prefix="$withval", sdl_exec_prefix="")
  18. AC_ARG_ENABLE(sdltest, [  --disable-sdltest       Do not try to compile and run a test SDL program],
  19.     , enable_sdltest=yes)
  20.   min_sdl_version=ifelse([$1], ,1.2.0,$1)
  21.   if test "x$sdl_prefix$sdl_exec_prefix" = x ; then
  22.     PKG_CHECK_MODULES(SDL, [sdl >= $min_sdl_version],
  23.            [sdl_pc=yes],
  24.            [dnl
  25.              AC_MSG_RESULT(no)
  26.              sdl_pc=no
  27.            ])
  28.   else
  29.     sdl_pc=no
  30.     if test x$sdl_exec_prefix != x ; then
  31.       sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
  32.       if test x${SDL_CONFIG+set} != xset ; then
  33.         SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
  34.       fi
  35.     fi
  36.     if test x$sdl_prefix != x ; then
  37.       sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
  38.       if test x${SDL_CONFIG+set} != xset ; then
  39.         SDL_CONFIG=$sdl_prefix/bin/sdl-config
  40.       fi
  41.     fi
  42.   fi
  43.   if test "x$sdl_pc" = xyes ; then
  44.     no_sdl=""
  45.     SDL_CONFIG="pkg-config sdl"
  46.   else
  47.     as_save_PATH="$PATH"
  48.     if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then
  49.       PATH="$prefix/bin:$prefix/usr/bin:$PATH"
  50.     fi
  51.     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
  52.     PATH="$as_save_PATH"
  53.     AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
  54.     no_sdl=""
  55.     if test "$SDL_CONFIG" = "no" ; then
  56.       no_sdl=yes
  57.     else
  58.       SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
  59.       SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
  60.       sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | 
  61.              sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'`
  62.       sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | 
  63.              sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'`
  64.       sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | 
  65.              sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'`
  66.       if test "x$enable_sdltest" = "xyes" ; then
  67.         ac_save_CFLAGS="$CFLAGS"
  68.         ac_save_CXXFLAGS="$CXXFLAGS"
  69.         ac_save_LIBS="$LIBS"
  70.         CFLAGS="$CFLAGS $SDL_CFLAGS"
  71.         CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
  72.         LIBS="$LIBS $SDL_LIBS"
  73. dnl
  74. dnl Now check if the installed SDL is sufficiently new. (Also sanity
  75. dnl checks the results of sdl-config to some extent
  76. dnl
  77.       rm -f conf.sdltest
  78.       AC_TRY_RUN([
  79. #include <stdio.h>
  80. #include <stdlib.h>
  81. #include <string.h>
  82. #include "SDL.h"
  83. char*
  84. my_strdup (char *str)
  85. {
  86.   char *new_str;
  87.   
  88.   if (str)
  89.     {
  90.       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
  91.       strcpy (new_str, str);
  92.     }
  93.   else
  94.     new_str = NULL;
  95.   
  96.   return new_str;
  97. }
  98. int main (int argc, char *argv[])
  99. {
  100.   int major, minor, micro;
  101.   char *tmp_version;
  102.   /* This hangs on some systems (?)
  103.   system ("touch conf.sdltest");
  104.   */
  105.   { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
  106.   /* HP/UX 9 (%@#!) writes to sscanf strings */
  107.   tmp_version = my_strdup("$min_sdl_version");
  108.   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
  109.      printf("%s, bad version stringn", "$min_sdl_version");
  110.      exit(1);
  111.    }
  112.    if (($sdl_major_version > major) ||
  113.       (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
  114.       (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
  115.     {
  116.       return 0;
  117.     }
  118.   else
  119.     {
  120.       printf("n*** 'sdl-config --version' returned %d.%d.%d, but the minimum versionn", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
  121.       printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it isn", major, minor, micro);
  122.       printf("*** best to upgrade to the required version.n");
  123.       printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIGn");
  124.       printf("*** to point to the correct copy of sdl-config, and remove the filen");
  125.       printf("*** config.cache before re-running configuren");
  126.       return 1;
  127.     }
  128. }
  129. ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
  130.         CFLAGS="$ac_save_CFLAGS"
  131.         CXXFLAGS="$ac_save_CXXFLAGS"
  132.         LIBS="$ac_save_LIBS"
  133.       fi
  134.     fi
  135.     if test "x$no_sdl" = x ; then
  136.       AC_MSG_RESULT(yes)
  137.     else
  138.       AC_MSG_RESULT(no)
  139.     fi
  140.   fi
  141.   if test "x$no_sdl" = x ; then
  142.      ifelse([$2], , :, [$2])
  143.   else
  144.      if test "$SDL_CONFIG" = "no" ; then
  145.        echo "*** The sdl-config script installed by SDL could not be found"
  146.        echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
  147.        echo "*** your path, or set the SDL_CONFIG environment variable to the"
  148.        echo "*** full path to sdl-config."
  149.      else
  150.        if test -f conf.sdltest ; then
  151.         :
  152.        else
  153.           echo "*** Could not run SDL test program, checking why..."
  154.           CFLAGS="$CFLAGS $SDL_CFLAGS"
  155.           CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
  156.           LIBS="$LIBS $SDL_LIBS"
  157.           AC_TRY_LINK([
  158. #include <stdio.h>
  159. #include "SDL.h"
  160. int main(int argc, char *argv[])
  161. { return 0; }
  162. #undef  main
  163. #define main K_and_R_C_main
  164. ],      [ return 0; ],
  165.         [ echo "*** The test program compiled, but did not run. This usually means"
  166.           echo "*** that the run-time linker is not finding SDL or finding the wrong"
  167.           echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
  168.           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
  169.           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
  170.           echo "*** is required on your system"
  171.   echo "***"
  172.           echo "*** If you have an old version installed, it is best to remove it, although"
  173.           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
  174.         [ echo "*** The test program failed to compile or link. See the file config.log for the"
  175.           echo "*** exact error that occured. This usually means SDL was incorrectly installed"
  176.           echo "*** or that you have moved SDL since it was installed. In the latter case, you"
  177.           echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
  178.           CFLAGS="$ac_save_CFLAGS"
  179.           CXXFLAGS="$ac_save_CXXFLAGS"
  180.           LIBS="$ac_save_LIBS"
  181.        fi
  182.      fi
  183.      SDL_CFLAGS=""
  184.      SDL_LIBS=""
  185.      ifelse([$3], , :, [$3])
  186.   fi
  187.   AC_SUBST(SDL_CFLAGS)
  188.   AC_SUBST(SDL_LIBS)
  189.   rm -f conf.sdltest
  190. ])