Mercurial > sdl-ios-xcode
annotate test/acinclude.m4 @ 1555:780fd5b61df1
Fixed bug #89
Date: Sun, 23 Oct 2005 16:39:03 +0200
From: "A. Schmid" <sahib@phreaker.net>
Subject: [SDL] no software surfaces with svgalib driver?
Hi,
I noticed that the SDL (1.2.9) svgalib driver only makes use of linear
addressable (framebuffer) video modes. On older systems (like one of
mine), linear addressable modes are often not available.
Especially for cards with VESA VBE < 2.0 the svgalib vesa driver is
unusable, since VESA only supports framebuffering for VBE 2.0 and later.
The changes necessary to add support for software surfaces seem to be
relatively small. I only had to hack src/video/svga/SDL_svgavideo.c (see
attached patch). The code worked fine for me, but it is no more than a
proof of concept and should be reviewed (probably has a memory leak when
switching modes). It also uses the vgagl library (included in the
svgalib package) and needs to be linked against it.
-Alex
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 19 Mar 2006 12:05:16 +0000 |
parents | 31c2b8e4885e |
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:
224
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:
224
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" | |
1380
d94b080ff6ce
Completely removed dependency on automake
Sam Lantinga <slouken@libsdl.org>
parents:
794
diff
changeset
|
54 ac_save_CXXFLAGS="$CXXFLAGS" |
0 | 55 ac_save_LIBS="$LIBS" |
56 CFLAGS="$CFLAGS $SDL_CFLAGS" | |
1380
d94b080ff6ce
Completely removed dependency on automake
Sam Lantinga <slouken@libsdl.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" | |
1380
d94b080ff6ce
Completely removed dependency on automake
Sam Lantinga <slouken@libsdl.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" | |
1380
d94b080ff6ce
Completely removed dependency on automake
Sam Lantinga <slouken@libsdl.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 ]) |