Mercurial > sdl-ios-xcode
annotate sdl.m4 @ 1550:31c2b8e4885e
Fixed bug #166
From the autoconf obsolete macros documentation:
Macro: AC_CANONICAL_SYSTEM
Determine the system type and set output variables to the names of the canonical system types. See section Getting the Canonical System Type, for details about the variables this macro sets.
The user is encouraged to use either AC_CANONICAL_BUILD, or AC_CANONICAL_HOST, or AC_CANONICAL_TARGET, depending on the needs. Using AC_CANONICAL_TARGET is enough to run the two other macros.
From the documentation for the canonical environments:
case $target in
i386-*-mach* | i386-*-gnu*)
obj_format=aout emulation=mach bfd_gas=yes ;;
i960-*-bout) obj_format=bout ;;
esac
Note that the above example uses $target because it's taken from a tool which can be built on some architecture ($build), run on another ($host), but yet handle data for a third architecture ($target). Such tools are usually part of a compiler suite, they generate code for a specific $target.
However $target should be meaningless for most packages. If you want to base a decision on the system where your program will be run, make sure you use the $host variable.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 19 Mar 2006 05:27:22 +0000 |
parents | 65f4b2dd46b7 |
children | 14717b52abc0 |
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 | |
489
d90349051cab
Fixed path problem with sdl.m4 macro file
Sam Lantinga <slouken@libsdl.org>
parents:
452
diff
changeset
|
35 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
|
36 AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) |
0 | 37 min_sdl_version=ifelse([$1], ,0.11.0,$1) |
38 AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) | |
39 no_sdl="" | |
40 if test "$SDL_CONFIG" = "no" ; then | |
41 no_sdl=yes | |
42 else | |
43 SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` | |
44 SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` | |
45 | |
46 sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ | |
47 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` | |
48 sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ | |
49 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` | |
50 sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ | |
51 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` | |
52 if test "x$enable_sdltest" = "xyes" ; then | |
53 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
|
54 ac_save_CXXFLAGS="$CXXFLAGS" |
0 | 55 ac_save_LIBS="$LIBS" |
56 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
|
57 CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" |
0 | 58 LIBS="$LIBS $SDL_LIBS" |
59 dnl | |
60 dnl Now check if the installed SDL is sufficiently new. (Also sanity | |
61 dnl checks the results of sdl-config to some extent | |
62 dnl | |
63 rm -f conf.sdltest | |
64 AC_TRY_RUN([ | |
65 #include <stdio.h> | |
66 #include <stdlib.h> | |
67 #include <string.h> | |
68 #include "SDL.h" | |
69 | |
70 char* | |
71 my_strdup (char *str) | |
72 { | |
73 char *new_str; | |
74 | |
75 if (str) | |
76 { | |
77 new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); | |
78 strcpy (new_str, str); | |
79 } | |
80 else | |
81 new_str = NULL; | |
82 | |
83 return new_str; | |
84 } | |
85 | |
86 int main (int argc, char *argv[]) | |
87 { | |
88 int major, minor, micro; | |
89 char *tmp_version; | |
90 | |
91 /* This hangs on some systems (?) | |
92 system ("touch conf.sdltest"); | |
93 */ | |
94 { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } | |
95 | |
96 /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
97 tmp_version = my_strdup("$min_sdl_version"); | |
98 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
99 printf("%s, bad version string\n", "$min_sdl_version"); | |
100 exit(1); | |
101 } | |
102 | |
103 if (($sdl_major_version > major) || | |
104 (($sdl_major_version == major) && ($sdl_minor_version > minor)) || | |
105 (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) | |
106 { | |
107 return 0; | |
108 } | |
109 else | |
110 { | |
111 printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); | |
112 printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); | |
113 printf("*** best to upgrade to the required version.\n"); | |
114 printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); | |
115 printf("*** to point to the correct copy of sdl-config, and remove the file\n"); | |
116 printf("*** config.cache before re-running configure\n"); | |
117 return 1; | |
118 } | |
119 } | |
120 | |
121 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) | |
122 CFLAGS="$ac_save_CFLAGS" | |
1550 | 123 CXXFLAGS="$ac_save_CXXFLAGS" |
0 | 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="" | |
173 SDL_LIBS="" | |
174 ifelse([$3], , :, [$3]) | |
175 fi | |
176 AC_SUBST(SDL_CFLAGS) | |
177 AC_SUBST(SDL_LIBS) | |
178 rm -f conf.sdltest | |
179 ]) |