Mercurial > sdl-ios-xcode
annotate test/missing @ 942:41a59de7f2ed
Here are patches for SDL12 and SDL_mixer for 4 or 6 channel
surround sound on Linux using the Alsa driver. To use them, naturally
you need a sound card that will do 4 or 6 channels and probably also a
recent version of the Alsa drivers and library. Since the only SDL
output driver that knows about surround sound is the Alsa driver,
you���ll want to choose it, using:
export SDL_AUDIODRIVER=alsa
There are no syntactic changes to the programming API. No new
library calls, no differences in arguments.
There are two semantic changes:
(1) For library calls with number of channels as an argument, formerly
you could use only 1 or 2 for the number of channels. Now you
can also use 4 or 6.
(2) The two "left" and "right" arguments to Mix_SetPanning, for the
case of 4 or 6 channels, no longer simply control the volumes of
the left and right channels. Now the "left" argument is converted
to an angle and Mix_SetPosition is called, and the "right" argu-
ment is ignored.
With two exceptions, so far as I know, the modified SDL12 and
SDL_mixer work the same way as the original versions, when opened for
1 or 2 channel output. The two exceptions are bugs which I fixed.
Well, the first, anyway, is a bug for sure. When rate conversions up
or down by a factor of two are applied (in src/audio/SDL_audiocvt.c),
streams with different numbers of channels (that is, mono and stereo)
are treated the same way: either each sample is copied or every other
sample is omitted. This is ok for mono, but for stereo, it is frames
that should be copied or omitted, where by "frame" I mean a portion of
the stream containing one sample for each channel. (In the SDL source,
confusingly, sometimes frames are called "samples".) So for these
rate conversions, stereo streams have to be treated differently, and
they are, in my modified version.
The other problem that might be characterized as a bug arises
when SDL_mixer is passed a multichannel chunk which does not have an
integral number of frames. Due to the way the effect_position code
loops over frames, when the chunk ends with a partial frame, memory
outside the chunk buffer will be accessed. In the case of stereo,
it���s possible that because malloc may give more memory than requested,
this potential problem never actually causes a segment fault. I don���t
know. For 6 channel chunks, I do know, and it does cause segment
faults.
If SDL_mixer is passed defective chunks and this causes a segment
fault, arguably, that���s not a bug in SDL_mixer. Still, whether or not
it counts as a bug, it���s easy to protect against, so why not? I added
code in mixer.c to discard any partial frame at the end of a chunk.
Then what about when SDL or SDL_mixer is opened for 4 or 6 chan-
nel output? What happens with the parts of the current library
designed for stereo? I don���t know whether I���ve covered all the bases,
but I���ve tried:
(1) For playing 2 channel waves, or other cases where SDL knows it has
to match up a 2 channel source with a 4 or 6 channel output, I���ve
added code in SDL_audiocvt.c to make the necessary conversions.
(2) For playing midis using timidity, I���ve converted timidity to do 4
or 6 channel output, upon request.
(3) For playing mods using mikmod, I put ad hoc code in music.c to
convert the stereo output that mikmod produces to 4 or 6 chan-
nels. Obviously it would be better to change the mikmod code to
mix down into 4 or 6 channels, but I have a hard time following
the code in mikmod, so I didn���t do that.
(4) For playing mp3s, I put ad hoc code in smpeg to copy channels in
the case when 4 or 6 channel output is needed.
(5) There seems to be no problem with .ogg files - stereo .oggs can be
up converted as .wavs are.
(6) The effect_position code in SDL_mixer is now generalized to in-
clude the cases of 4 and 6 channel streams.
I���ve done a very limited amount of compatibility testing for some
of the games using SDL I happen to have. For details, see the file
TESTS.
I���ve put into a separate archive, Surround-SDL-testfiles.tgz, a
couple of 6 channel wave files for testing and a 6 channel ogg file.
If you have the right hardware and version of Alsa, you should be able
to play the wave files with the Alsa utility aplay (and hear all
channels, except maybe lfe, for chan-id.wav, since it���s rather faint).
Don���t expect aplay to give good sound, though. There���s something
wrong with the current version of aplay.
The canyon.ogg file is to test loading of 6 channel oggs. After
patching and compiling, you can play it with playmus. (My version of
ogg123 will not play it, and I had to patch mplayer to get it to play
6 channel oggs.)
Greg Lee <greg@ling.lll.hawaii.edu>
Thus, July 1, 2004
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 21 Aug 2004 12:27:02 +0000 |
parents | dac996d69abb |
children |
rev | line source |
---|---|
0 | 1 #! /bin/sh |
2 # Common stub for a few missing GNU programs while installing. | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
3 # Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
4 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
0 | 5 |
6 # This program is free software; you can redistribute it and/or modify | |
7 # it under the terms of the GNU General Public License as published by | |
8 # the Free Software Foundation; either version 2, or (at your option) | |
9 # any later version. | |
10 | |
11 # This program is distributed in the hope that it will be useful, | |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 # GNU General Public License for more details. | |
15 | |
16 # You should have received a copy of the GNU General Public License | |
17 # along with this program; if not, write to the Free Software | |
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
19 # 02111-1307, USA. | |
20 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
21 # As a special exception to the GNU General Public License, if you |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
22 # distribute this file as part of a program that contains a |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
23 # configuration script generated by Autoconf, you may include it under |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
24 # the same distribution terms that you use for the rest of that program. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
25 |
0 | 26 if test $# -eq 0; then |
27 echo 1>&2 "Try \`$0 --help' for more information" | |
28 exit 1 | |
29 fi | |
30 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
31 run=: |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
32 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
33 # In the cases where this matters, `missing' is being run in the |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
34 # srcdir already. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
35 if test -f configure.ac; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
36 configure_ac=configure.ac |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
37 else |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
38 configure_ac=configure.in |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
39 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
40 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
41 case "$1" in |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
42 --run) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
43 # Try to run requested program, and just exit if it succeeds. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
44 run= |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
45 shift |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
46 "$@" && exit 0 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
47 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
48 esac |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
49 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
50 # If it does not exist, or fails to run (possibly an outdated version), |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
51 # try to emulate it. |
0 | 52 case "$1" in |
53 | |
54 -h|--h|--he|--hel|--help) | |
55 echo "\ | |
56 $0 [OPTION]... PROGRAM [ARGUMENT]... | |
57 | |
58 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an | |
59 error status if there is no known handling for PROGRAM. | |
60 | |
61 Options: | |
62 -h, --help display this help and exit | |
63 -v, --version output version information and exit | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
64 --run try to run the given command, and emulate it if it fails |
0 | 65 |
66 Supported PROGRAM values: | |
67 aclocal touch file \`aclocal.m4' | |
68 autoconf touch file \`configure' | |
69 autoheader touch file \`config.h.in' | |
70 automake touch all \`Makefile.in' files | |
71 bison create \`y.tab.[ch]', if possible, from existing .[ch] | |
72 flex create \`lex.yy.c', if possible, from existing .c | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
73 help2man touch the output file |
0 | 74 lex create \`lex.yy.c', if possible, from existing .c |
75 makeinfo touch the output file | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
76 tar try tar, gnutar, gtar, then tar without non-portable flags |
0 | 77 yacc create \`y.tab.[ch]', if possible, from existing .[ch]" |
78 ;; | |
79 | |
80 -v|--v|--ve|--ver|--vers|--versi|--versio|--version) | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
81 echo "missing 0.4 - GNU automake" |
0 | 82 ;; |
83 | |
84 -*) | |
85 echo 1>&2 "$0: Unknown \`$1' option" | |
86 echo 1>&2 "Try \`$0 --help' for more information" | |
87 exit 1 | |
88 ;; | |
89 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
90 aclocal*) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
91 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
92 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
93 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
94 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
95 |
0 | 96 echo 1>&2 "\ |
97 WARNING: \`$1' is missing on your system. You should only need it if | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
98 you modified \`acinclude.m4' or \`${configure_ac}'. You might want |
0 | 99 to install the \`Automake' and \`Perl' packages. Grab them from |
100 any GNU archive site." | |
101 touch aclocal.m4 | |
102 ;; | |
103 | |
104 autoconf) | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
105 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
106 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
107 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
108 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
109 |
0 | 110 echo 1>&2 "\ |
111 WARNING: \`$1' is missing on your system. You should only need it if | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
112 you modified \`${configure_ac}'. You might want to install the |
0 | 113 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU |
114 archive site." | |
115 touch configure | |
116 ;; | |
117 | |
118 autoheader) | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
119 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
120 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
121 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
122 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
123 |
0 | 124 echo 1>&2 "\ |
125 WARNING: \`$1' is missing on your system. You should only need it if | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
126 you modified \`acconfig.h' or \`${configure_ac}'. You might want |
0 | 127 to install the \`Autoconf' and \`GNU m4' packages. Grab them |
128 from any GNU archive site." | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
129 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` |
0 | 130 test -z "$files" && files="config.h" |
131 touch_files= | |
132 for f in $files; do | |
133 case "$f" in | |
134 *:*) touch_files="$touch_files "`echo "$f" | | |
135 sed -e 's/^[^:]*://' -e 's/:.*//'`;; | |
136 *) touch_files="$touch_files $f.in";; | |
137 esac | |
138 done | |
139 touch $touch_files | |
140 ;; | |
141 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
142 automake*) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
143 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
144 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
145 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
146 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
147 |
0 | 148 echo 1>&2 "\ |
149 WARNING: \`$1' is missing on your system. You should only need it if | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
150 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. |
0 | 151 You might want to install the \`Automake' and \`Perl' packages. |
152 Grab them from any GNU archive site." | |
153 find . -type f -name Makefile.am -print | | |
154 sed 's/\.am$/.in/' | | |
155 while read f; do touch "$f"; done | |
156 ;; | |
157 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
158 autom4te) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
159 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
160 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
161 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
162 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
163 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
164 echo 1>&2 "\ |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
165 WARNING: \`$1' is needed, and you do not seem to have it handy on your |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
166 system. You might have modified some files without having the |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
167 proper tools for further handling them. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
168 You can get \`$1Help2man' as part of \`Autoconf' from any GNU |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
169 archive site." |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
170 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
171 file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
172 test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
173 if test -f "$file"; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
174 touch $file |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
175 else |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
176 test -z "$file" || exec >$file |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
177 echo "#! /bin/sh" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
178 echo "# Created by GNU Automake missing as a replacement of" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
179 echo "# $ $@" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
180 echo "exit 0" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
181 chmod +x $file |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
182 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
183 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
184 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
185 |
0 | 186 bison|yacc) |
187 echo 1>&2 "\ | |
188 WARNING: \`$1' is missing on your system. You should only need it if | |
189 you modified a \`.y' file. You may need the \`Bison' package | |
190 in order for those modifications to take effect. You can get | |
191 \`Bison' from any GNU archive site." | |
192 rm -f y.tab.c y.tab.h | |
193 if [ $# -ne 1 ]; then | |
194 eval LASTARG="\${$#}" | |
195 case "$LASTARG" in | |
196 *.y) | |
197 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` | |
198 if [ -f "$SRCFILE" ]; then | |
199 cp "$SRCFILE" y.tab.c | |
200 fi | |
201 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` | |
202 if [ -f "$SRCFILE" ]; then | |
203 cp "$SRCFILE" y.tab.h | |
204 fi | |
205 ;; | |
206 esac | |
207 fi | |
208 if [ ! -f y.tab.h ]; then | |
209 echo >y.tab.h | |
210 fi | |
211 if [ ! -f y.tab.c ]; then | |
212 echo 'main() { return 0; }' >y.tab.c | |
213 fi | |
214 ;; | |
215 | |
216 lex|flex) | |
217 echo 1>&2 "\ | |
218 WARNING: \`$1' is missing on your system. You should only need it if | |
219 you modified a \`.l' file. You may need the \`Flex' package | |
220 in order for those modifications to take effect. You can get | |
221 \`Flex' from any GNU archive site." | |
222 rm -f lex.yy.c | |
223 if [ $# -ne 1 ]; then | |
224 eval LASTARG="\${$#}" | |
225 case "$LASTARG" in | |
226 *.l) | |
227 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` | |
228 if [ -f "$SRCFILE" ]; then | |
229 cp "$SRCFILE" lex.yy.c | |
230 fi | |
231 ;; | |
232 esac | |
233 fi | |
234 if [ ! -f lex.yy.c ]; then | |
235 echo 'main() { return 0; }' >lex.yy.c | |
236 fi | |
237 ;; | |
238 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
239 help2man) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
240 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
241 # We have it, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
242 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
243 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
244 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
245 echo 1>&2 "\ |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
246 WARNING: \`$1' is missing on your system. You should only need it if |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
247 you modified a dependency of a manual page. You may need the |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
248 \`Help2man' package in order for those modifications to take |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
249 effect. You can get \`Help2man' from any GNU archive site." |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
250 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
251 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
252 if test -z "$file"; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
253 file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
254 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
255 if [ -f "$file" ]; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
256 touch $file |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
257 else |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
258 test -z "$file" || exec >$file |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
259 echo ".ab help2man is required to generate this page" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
260 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
261 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
262 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
263 |
0 | 264 makeinfo) |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
265 if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
266 # We have makeinfo, but it failed. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
267 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
268 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
269 |
0 | 270 echo 1>&2 "\ |
271 WARNING: \`$1' is missing on your system. You should only need it if | |
272 you modified a \`.texi' or \`.texinfo' file, or any other file | |
273 indirectly affecting the aspect of the manual. The spurious | |
274 call might also be the consequence of using a buggy \`make' (AIX, | |
275 DU, IRIX). You might want to install the \`Texinfo' package or | |
276 the \`GNU make' package. Grab either from any GNU archive site." | |
277 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` | |
278 if test -z "$file"; then | |
279 file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` | |
280 file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` | |
281 fi | |
282 touch $file | |
283 ;; | |
284 | |
729
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
285 tar) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
286 shift |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
287 if test -n "$run"; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
288 echo 1>&2 "ERROR: \`tar' requires --run" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
289 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
290 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
291 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
292 # We have already tried tar in the generic part. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
293 # Look for gnutar/gtar before invocation to avoid ugly error |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
294 # messages. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
295 if (gnutar --version > /dev/null 2>&1); then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
296 gnutar "$@" && exit 0 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
297 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
298 if (gtar --version > /dev/null 2>&1); then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
299 gtar "$@" && exit 0 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
300 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
301 firstarg="$1" |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
302 if shift; then |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
303 case "$firstarg" in |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
304 *o*) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
305 firstarg=`echo "$firstarg" | sed s/o//` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
306 tar "$firstarg" "$@" && exit 0 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
307 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
308 esac |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
309 case "$firstarg" in |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
310 *h*) |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
311 firstarg=`echo "$firstarg" | sed s/h//` |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
312 tar "$firstarg" "$@" && exit 0 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
313 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
314 esac |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
315 fi |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
316 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
317 echo 1>&2 "\ |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
318 WARNING: I can't seem to be able to run \`tar' with the given arguments. |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
319 You may want to install GNU tar or Free paxutils, or check the |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
320 command line arguments." |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
321 exit 1 |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
322 ;; |
dac996d69abb
Updated libtool support so Mingw32 builds work.
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
323 |
0 | 324 *) |
325 echo 1>&2 "\ | |
326 WARNING: \`$1' is needed, and you do not seem to have it handy on your | |
327 system. You might have modified some files without having the | |
328 proper tools for further handling them. Check the \`README' file, | |
329 it often tells you about the needed prerequirements for installing | |
330 this package. You may also peek at any GNU archive site, in case | |
331 some other package would contain this missing \`$1' program." | |
332 exit 1 | |
333 ;; | |
334 esac | |
335 | |
336 exit 0 |