Mercurial > sdl-ios-xcode
annotate sdl.m4 @ 1118:65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
From: Matt L <prometheus.uw@gmail.com>
To: "Ryan C. Gordon" <icculus@clutteredmind.org>
Subject: SDL Patch
Hio,
I saw your last call on the mailing list. Here's a patch which I
submitted about two weeks ago which hasn't made it in.
In the current sdl.m4, there's a bug where if your configure.ac, you
have AC_LANG(C++) specified, it won't properly compile and link the SDL
test program when you run the configure script. This is because only the
default CFLAGS is overriden in sdl.m4, and in the patch below, I've
fixed it so it overrides CXXFLAGS as well, allowing it to work with g++.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 18 Aug 2005 06:06:02 +0000 |
parents | a5defa3b93e1 |
children | 31c2b8e4885e |
rev | line source |
---|---|
0 | 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 | |
794
a5defa3b93e1
Updated for the latest version of automake
Sam Lantinga <slouken@libsdl.org>
parents:
489
diff
changeset
|
11 AC_DEFUN([AM_PATH_SDL], |
0 | 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 | |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
168
diff
changeset
|
35 AC_REQUIRE([AC_CANONICAL_TARGET]) |
489
d90349051cab
Fixed path problem with sdl.m4 macro file
Sam Lantinga <slouken@libsdl.org>
parents:
452
diff
changeset
|
36 PATH="$prefix/bin:$prefix/usr/bin:$PATH" |
d90349051cab
Fixed path problem with sdl.m4 macro file
Sam Lantinga <slouken@libsdl.org>
parents:
452
diff
changeset
|
37 AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) |
0 | 38 min_sdl_version=ifelse([$1], ,0.11.0,$1) |
39 AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) | |
40 no_sdl="" | |
41 if test "$SDL_CONFIG" = "no" ; then | |
42 no_sdl=yes | |
43 else | |
44 SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` | |
45 SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` | |
46 | |
47 sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ | |
48 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` | |
49 sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ | |
50 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` | |
51 sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ | |
52 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` | |
53 if test "x$enable_sdltest" = "xyes" ; then | |
54 ac_save_CFLAGS="$CFLAGS" | |
1118
65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
Ryan C. Gordon <icculus@icculus.org>
parents:
794
diff
changeset
|
55 ac_save_CXXFLAGS="$CXXFLAGS" |
0 | 56 ac_save_LIBS="$LIBS" |
57 CFLAGS="$CFLAGS $SDL_CFLAGS" | |
1118
65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
Ryan C. Gordon <icculus@icculus.org>
parents:
794
diff
changeset
|
58 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" |
0 | 59 LIBS="$LIBS $SDL_LIBS" |
60 dnl | |
61 dnl Now check if the installed SDL is sufficiently new. (Also sanity | |
62 dnl checks the results of sdl-config to some extent | |
63 dnl | |
64 rm -f conf.sdltest | |
65 AC_TRY_RUN([ | |
66 #include <stdio.h> | |
67 #include <stdlib.h> | |
68 #include <string.h> | |
69 #include "SDL.h" | |
70 | |
71 char* | |
72 my_strdup (char *str) | |
73 { | |
74 char *new_str; | |
75 | |
76 if (str) | |
77 { | |
78 new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); | |
79 strcpy (new_str, str); | |
80 } | |
81 else | |
82 new_str = NULL; | |
83 | |
84 return new_str; | |
85 } | |
86 | |
87 int main (int argc, char *argv[]) | |
88 { | |
89 int major, minor, micro; | |
90 char *tmp_version; | |
91 | |
92 /* This hangs on some systems (?) | |
93 system ("touch conf.sdltest"); | |
94 */ | |
95 { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } | |
96 | |
97 /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
98 tmp_version = my_strdup("$min_sdl_version"); | |
99 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
100 printf("%s, bad version string\n", "$min_sdl_version"); | |
101 exit(1); | |
102 } | |
103 | |
104 if (($sdl_major_version > major) || | |
105 (($sdl_major_version == major) && ($sdl_minor_version > minor)) || | |
106 (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) | |
107 { | |
108 return 0; | |
109 } | |
110 else | |
111 { | |
112 printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); | |
113 printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); | |
114 printf("*** best to upgrade to the required version.\n"); | |
115 printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); | |
116 printf("*** to point to the correct copy of sdl-config, and remove the file\n"); | |
117 printf("*** config.cache before re-running configure\n"); | |
118 return 1; | |
119 } | |
120 } | |
121 | |
122 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) | |
123 CFLAGS="$ac_save_CFLAGS" | |
124 LIBS="$ac_save_LIBS" | |
125 fi | |
126 fi | |
127 if test "x$no_sdl" = x ; then | |
128 AC_MSG_RESULT(yes) | |
129 ifelse([$2], , :, [$2]) | |
130 else | |
131 AC_MSG_RESULT(no) | |
132 if test "$SDL_CONFIG" = "no" ; then | |
133 echo "*** The sdl-config script installed by SDL could not be found" | |
134 echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" | |
135 echo "*** your path, or set the SDL_CONFIG environment variable to the" | |
136 echo "*** full path to sdl-config." | |
137 else | |
138 if test -f conf.sdltest ; then | |
139 : | |
140 else | |
141 echo "*** Could not run SDL test program, checking why..." | |
142 CFLAGS="$CFLAGS $SDL_CFLAGS" | |
1118
65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
Ryan C. Gordon <icculus@icculus.org>
parents:
794
diff
changeset
|
143 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" |
0 | 144 LIBS="$LIBS $SDL_LIBS" |
145 AC_TRY_LINK([ | |
146 #include <stdio.h> | |
147 #include "SDL.h" | |
1
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
148 |
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
149 int main(int argc, char *argv[]) |
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
150 { return 0; } |
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
151 #undef main |
cf2af46e9e2a
Changes since SDL 1.2.0 release
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
152 #define main K_and_R_C_main |
0 | 153 ], [ return 0; ], |
154 [ echo "*** The test program compiled, but did not run. This usually means" | |
155 echo "*** that the run-time linker is not finding SDL or finding the wrong" | |
156 echo "*** version of SDL. If it is not finding SDL, you'll need to set your" | |
157 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" | |
158 echo "*** to the installed location Also, make sure you have run ldconfig if that" | |
159 echo "*** is required on your system" | |
160 echo "***" | |
161 echo "*** If you have an old version installed, it is best to remove it, although" | |
162 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], | |
163 [ echo "*** The test program failed to compile or link. See the file config.log for the" | |
164 echo "*** exact error that occured. This usually means SDL was incorrectly installed" | |
165 echo "*** or that you have moved SDL since it was installed. In the latter case, you" | |
166 echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) | |
167 CFLAGS="$ac_save_CFLAGS" | |
1118
65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
Ryan C. Gordon <icculus@icculus.org>
parents:
794
diff
changeset
|
168 CXXFLAGS="$ac_save_CXXFLAGS" |
0 | 169 LIBS="$ac_save_LIBS" |
170 fi | |
171 fi | |
172 SDL_CFLAGS="" | |
1118
65f4b2dd46b7
Date: Wed, 17 Aug 2005 11:23:40 -0400
Ryan C. Gordon <icculus@icculus.org>
parents:
794
diff
changeset
|
173 SDL_CXXFLAGS="" |
0 | 174 SDL_LIBS="" |
175 ifelse([$3], , :, [$3]) | |
176 fi | |
177 AC_SUBST(SDL_CFLAGS) | |
178 AC_SUBST(SDL_LIBS) | |
179 rm -f conf.sdltest | |
180 ]) |