sdl.m4
author Holmes Futrell <hfutrell@umail.ucsb.edu>
Fri, 18 Jul 2008 17:53:54 +0000
branchgsoc2008_iphone
changeset 2364 e321b52dee8f
parent 2301 ebcebb426771
child 3340 3d75acd08339
child 4440 7bb8f748a14d
permissions -rw-r--r--
These files contain the audio support for iPhone. They are based on the CoreAudio audio driver for Mac OS X. The principle difference is that the iPhone doesn't seem to have a concept of audio devices ... it just has special units for audio in and audio out. Also had to change some functions to versions which seem to only exist on iPhone and will apparently exist in Mac OS X 10.6(!)

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