sdl.m4
author Sam Lantinga <slouken@libsdl.org>
Tue, 09 May 2006 07:26:58 +0000
changeset 1790 828a17e05192
parent 1755 91063c450171
child 2288 e9bcf004c324
permissions -rw-r--r--
Date: Mon, 8 May 2006 14:19:30 -0700
From: Bob Ippolito
Subject: SDL trunk (r2346) and Mac OS X

The current state of the trunk doesn't quite compile on Mac OS X,
I've attached a series of patches that gets it to compile and kills a
few warnings.

sdl-trunk-r2346-dlcompat-warnings.diff:
The dlcompat thing is just loaded with incorrect type signatures ..
some of them have changed since 10.2 and others are just flat wrong.
This puts it in sync with the latest headers. People on 10.2 will get
the warnings instead of people with new kits.
     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_args="$sdl_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_args="$sdl_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   if test "x$prefix" != xNONE; then
    36     PATH="$prefix/bin:$prefix/usr/bin:$PATH"
    37   fi
    38   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
    39   min_sdl_version=ifelse([$1], ,0.11.0,$1)
    40   AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
    41   no_sdl=""
    42   if test "$SDL_CONFIG" = "no" ; then
    43     no_sdl=yes
    44   else
    45     SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
    46     SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
    47 
    48     sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
    49            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
    50     sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
    51            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
    52     sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
    53            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
    54     if test "x$enable_sdltest" = "xyes" ; then
    55       ac_save_CFLAGS="$CFLAGS"
    56       ac_save_CXXFLAGS="$CXXFLAGS"
    57       ac_save_LIBS="$LIBS"
    58       CFLAGS="$CFLAGS $SDL_CFLAGS"
    59       CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
    60       LIBS="$LIBS $SDL_LIBS"
    61 dnl
    62 dnl Now check if the installed SDL is sufficiently new. (Also sanity
    63 dnl checks the results of sdl-config to some extent
    64 dnl
    65       rm -f conf.sdltest
    66       AC_TRY_RUN([
    67 #include <stdio.h>
    68 #include <stdlib.h>
    69 #include <string.h>
    70 #include "SDL.h"
    71 
    72 char*
    73 my_strdup (char *str)
    74 {
    75   char *new_str;
    76   
    77   if (str)
    78     {
    79       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
    80       strcpy (new_str, str);
    81     }
    82   else
    83     new_str = NULL;
    84   
    85   return new_str;
    86 }
    87 
    88 int main (int argc, char *argv[])
    89 {
    90   int major, minor, micro;
    91   char *tmp_version;
    92 
    93   /* This hangs on some systems (?)
    94   system ("touch conf.sdltest");
    95   */
    96   { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
    97 
    98   /* HP/UX 9 (%@#!) writes to sscanf strings */
    99   tmp_version = my_strdup("$min_sdl_version");
   100   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
   101      printf("%s, bad version string\n", "$min_sdl_version");
   102      exit(1);
   103    }
   104 
   105    if (($sdl_major_version > major) ||
   106       (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
   107       (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
   108     {
   109       return 0;
   110     }
   111   else
   112     {
   113       printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
   114       printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
   115       printf("*** best to upgrade to the required version.\n");
   116       printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
   117       printf("*** to point to the correct copy of sdl-config, and remove the file\n");
   118       printf("*** config.cache before re-running configure\n");
   119       return 1;
   120     }
   121 }
   122 
   123 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
   124        CFLAGS="$ac_save_CFLAGS"
   125        CXXFLAGS="$ac_save_CXXFLAGS"
   126        LIBS="$ac_save_LIBS"
   127      fi
   128   fi
   129   if test "x$no_sdl" = x ; then
   130      AC_MSG_RESULT(yes)
   131      ifelse([$2], , :, [$2])     
   132   else
   133      AC_MSG_RESULT(no)
   134      if test "$SDL_CONFIG" = "no" ; then
   135        echo "*** The sdl-config script installed by SDL could not be found"
   136        echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
   137        echo "*** your path, or set the SDL_CONFIG environment variable to the"
   138        echo "*** full path to sdl-config."
   139      else
   140        if test -f conf.sdltest ; then
   141         :
   142        else
   143           echo "*** Could not run SDL test program, checking why..."
   144           CFLAGS="$CFLAGS $SDL_CFLAGS"
   145           CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
   146           LIBS="$LIBS $SDL_LIBS"
   147           AC_TRY_LINK([
   148 #include <stdio.h>
   149 #include "SDL.h"
   150 
   151 int main(int argc, char *argv[])
   152 { return 0; }
   153 #undef  main
   154 #define main K_and_R_C_main
   155 ],      [ return 0; ],
   156         [ echo "*** The test program compiled, but did not run. This usually means"
   157           echo "*** that the run-time linker is not finding SDL or finding the wrong"
   158           echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
   159           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
   160           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
   161           echo "*** is required on your system"
   162 	  echo "***"
   163           echo "*** If you have an old version installed, it is best to remove it, although"
   164           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
   165         [ echo "*** The test program failed to compile or link. See the file config.log for the"
   166           echo "*** exact error that occured. This usually means SDL was incorrectly installed"
   167           echo "*** or that you have moved SDL since it was installed. In the latter case, you"
   168           echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
   169           CFLAGS="$ac_save_CFLAGS"
   170           CXXFLAGS="$ac_save_CXXFLAGS"
   171           LIBS="$ac_save_LIBS"
   172        fi
   173      fi
   174      SDL_CFLAGS=""
   175      SDL_LIBS=""
   176      ifelse([$3], , :, [$3])
   177   fi
   178   AC_SUBST(SDL_CFLAGS)
   179   AC_SUBST(SDL_LIBS)
   180   rm -f conf.sdltest
   181 ])