Better detecting of SDL and GL/GLU
[btb/d2x.git] / aclocal.m4
1 dnl aclocal.m4 generated automatically by aclocal 1.4
2
3 dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
4 dnl This file is free software; the Free Software Foundation
5 dnl gives unlimited permission to copy and/or distribute it,
6 dnl with or without modifications, as long as this notice is preserved.
7
8 dnl This program is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
10 dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11 dnl PARTICULAR PURPOSE.
12
13 # Like AC_CONFIG_HEADER, but automatically create stamp file.
14
15 AC_DEFUN(AM_CONFIG_HEADER,
16 [AC_PREREQ([2.12])
17 AC_CONFIG_HEADER([$1])
18 dnl When config.status generates a header, we must update the stamp-h file.
19 dnl This file resides in the same directory as the config header
20 dnl that is generated.  We must strip everything past the first ":",
21 dnl and everything past the last "/".
22 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
23 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
24 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
25 <<am_indx=1
26 for am_file in <<$1>>; do
27   case " <<$>>CONFIG_HEADERS " in
28   *" <<$>>am_file "*<<)>>
29     echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
30     ;;
31   esac
32   am_indx=`expr "<<$>>am_indx" + 1`
33 done<<>>dnl>>)
34 changequote([,]))])
35
36 # Do all the work for Automake.  This macro actually does too much --
37 # some checks are only needed if your package does certain things.
38 # But this isn't really a big deal.
39
40 # serial 1
41
42 dnl Usage:
43 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
44
45 AC_DEFUN(AM_INIT_AUTOMAKE,
46 [AC_REQUIRE([AC_PROG_INSTALL])
47 PACKAGE=[$1]
48 AC_SUBST(PACKAGE)
49 VERSION=[$2]
50 AC_SUBST(VERSION)
51 dnl test to see if srcdir already configured
52 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
53   AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
54 fi
55 ifelse([$3],,
56 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
57 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
58 AC_REQUIRE([AM_SANITY_CHECK])
59 AC_REQUIRE([AC_ARG_PROGRAM])
60 dnl FIXME This is truly gross.
61 missing_dir=`cd $ac_aux_dir && pwd`
62 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
63 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
64 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
65 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
66 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
67 AC_REQUIRE([AC_PROG_MAKE_SET])])
68
69 #
70 # Check to make sure that the build environment is sane.
71 #
72
73 AC_DEFUN(AM_SANITY_CHECK,
74 [AC_MSG_CHECKING([whether build environment is sane])
75 # Just in case
76 sleep 1
77 echo timestamp > conftestfile
78 # Do `set' in a subshell so we don't clobber the current shell's
79 # arguments.  Must try -L first in case configure is actually a
80 # symlink; some systems play weird games with the mod time of symlinks
81 # (eg FreeBSD returns the mod time of the symlink's containing
82 # directory).
83 if (
84    set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
85    if test "[$]*" = "X"; then
86       # -L didn't work.
87       set X `ls -t $srcdir/configure conftestfile`
88    fi
89    if test "[$]*" != "X $srcdir/configure conftestfile" \
90       && test "[$]*" != "X conftestfile $srcdir/configure"; then
91
92       # If neither matched, then we have a broken ls.  This can happen
93       # if, for instance, CONFIG_SHELL is bash and it inherits a
94       # broken ls alias from the environment.  This has actually
95       # happened.  Such a system could not be considered "sane".
96       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
97 alias in your environment])
98    fi
99
100    test "[$]2" = conftestfile
101    )
102 then
103    # Ok.
104    :
105 else
106    AC_MSG_ERROR([newly created file is older than distributed files!
107 Check your system clock])
108 fi
109 rm -f conftest*
110 AC_MSG_RESULT(yes)])
111
112 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
113 dnl The program must properly implement --version.
114 AC_DEFUN(AM_MISSING_PROG,
115 [AC_MSG_CHECKING(for working $2)
116 # Run test in a subshell; some versions of sh will print an error if
117 # an executable is not found, even if stderr is redirected.
118 # Redirect stdin to placate older versions of autoconf.  Sigh.
119 if ($2 --version) < /dev/null > /dev/null 2>&1; then
120    $1=$2
121    AC_MSG_RESULT(found)
122 else
123    $1="$3/missing $2"
124    AC_MSG_RESULT(missing)
125 fi
126 AC_SUBST($1)])
127
128 # Add --enable-maintainer-mode option to configure.
129 # From Jim Meyering
130
131 # serial 1
132
133 AC_DEFUN(AM_MAINTAINER_MODE,
134 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
135   dnl maintainer-mode is disabled by default
136   AC_ARG_ENABLE(maintainer-mode,
137 [  --enable-maintainer-mode enable make rules and dependencies not useful
138                           (and sometimes confusing) to the casual installer],
139       USE_MAINTAINER_MODE=$enableval,
140       USE_MAINTAINER_MODE=no)
141   AC_MSG_RESULT($USE_MAINTAINER_MODE)
142   AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
143   MAINT=$MAINTAINER_MODE_TRUE
144   AC_SUBST(MAINT)dnl
145 ]
146 )
147
148 # Define a conditional.
149
150 AC_DEFUN(AM_CONDITIONAL,
151 [AC_SUBST($1_TRUE)
152 AC_SUBST($1_FALSE)
153 if $2; then
154   $1_TRUE=
155   $1_FALSE='#'
156 else
157   $1_TRUE='#'
158   $1_FALSE=
159 fi])
160
161 # Configure paths for SDL
162 # Sam Lantinga 9/21/99
163 # stolen from Manish Singh
164 # stolen back from Frank Belew
165 # stolen from Manish Singh
166 # Shamelessly stolen from Owen Taylor
167
168 dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
169 dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
170 dnl
171 AC_DEFUN(AM_PATH_SDL,
172 [dnl 
173 dnl Get the cflags and libraries from the sdl-config script
174 dnl
175 AC_ARG_WITH(sdl-prefix,[  --with-sdl-prefix=PFX   Prefix where SDL is installed (optional)],
176             sdl_prefix="$withval", sdl_prefix="")
177 AC_ARG_WITH(sdl-exec-prefix,[  --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
178             sdl_exec_prefix="$withval", sdl_exec_prefix="")
179 AC_ARG_ENABLE(sdltest, [  --disable-sdltest       Do not try to compile and run a test SDL program],
180                     , enable_sdltest=yes)
181
182   if test x$sdl_exec_prefix != x ; then
183      sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
184      if test x${SDL_CONFIG+set} != xset ; then
185         SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
186      fi
187   fi
188   if test x$sdl_prefix != x ; then
189      sdl_args="$sdl_args --prefix=$sdl_prefix"
190      if test x${SDL_CONFIG+set} != xset ; then
191         SDL_CONFIG=$sdl_prefix/bin/sdl-config
192      fi
193   fi
194
195   AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
196   min_sdl_version=ifelse([$1], ,0.11.0,$1)
197   AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
198   no_sdl=""
199   if test "$SDL_CONFIG" = "no" ; then
200     no_sdl=yes
201   else
202     SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
203     SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
204
205     sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
206            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
207     sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
208            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
209     sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
210            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
211     if test "x$enable_sdltest" = "xyes" ; then
212       ac_save_CFLAGS="$CFLAGS"
213       ac_save_LIBS="$LIBS"
214       CFLAGS="$CFLAGS $SDL_CFLAGS"
215       LIBS="$LIBS $SDL_LIBS"
216 dnl
217 dnl Now check if the installed SDL is sufficiently new. (Also sanity
218 dnl checks the results of sdl-config to some extent
219 dnl
220       rm -f conf.sdltest
221       AC_TRY_RUN([
222 #include <stdio.h>
223 #include <stdlib.h>
224 #include <string.h>
225 #include "SDL.h"
226
227 char*
228 my_strdup (char *str)
229 {
230   char *new_str;
231   
232   if (str)
233     {
234       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
235       strcpy (new_str, str);
236     }
237   else
238     new_str = NULL;
239   
240   return new_str;
241 }
242
243 int main (int argc, char *argv[])
244 {
245   int major, minor, micro;
246   char *tmp_version;
247
248   /* This hangs on some systems (?)
249   system ("touch conf.sdltest");
250   */
251   { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
252
253   /* HP/UX 9 (%@#!) writes to sscanf strings */
254   tmp_version = my_strdup("$min_sdl_version");
255   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
256      printf("%s, bad version string\n", "$min_sdl_version");
257      exit(1);
258    }
259
260    if (($sdl_major_version > major) ||
261       (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
262       (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
263     {
264       return 0;
265     }
266   else
267     {
268       printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
269       printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
270       printf("*** best to upgrade to the required version.\n");
271       printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
272       printf("*** to point to the correct copy of sdl-config, and remove the file\n");
273       printf("*** config.cache before re-running configure\n");
274       return 1;
275     }
276 }
277
278 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
279        CFLAGS="$ac_save_CFLAGS"
280        LIBS="$ac_save_LIBS"
281      fi
282   fi
283   if test "x$no_sdl" = x ; then
284      AC_MSG_RESULT(yes)
285      ifelse([$2], , :, [$2])     
286   else
287      AC_MSG_RESULT(no)
288      if test "$SDL_CONFIG" = "no" ; then
289        echo "*** The sdl-config script installed by SDL could not be found"
290        echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
291        echo "*** your path, or set the SDL_CONFIG environment variable to the"
292        echo "*** full path to sdl-config."
293      else
294        if test -f conf.sdltest ; then
295         :
296        else
297           echo "*** Could not run SDL test program, checking why..."
298           CFLAGS="$CFLAGS $SDL_CFLAGS"
299           LIBS="$LIBS $SDL_LIBS"
300           AC_TRY_LINK([
301 #include <stdio.h>
302 #include "SDL.h"
303 ],      [ return 0; ],
304         [ echo "*** The test program compiled, but did not run. This usually means"
305           echo "*** that the run-time linker is not finding SDL or finding the wrong"
306           echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
307           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
308           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
309           echo "*** is required on your system"
310           echo "***"
311           echo "*** If you have an old version installed, it is best to remove it, although"
312           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
313         [ echo "*** The test program failed to compile or link. See the file config.log for the"
314           echo "*** exact error that occured. This usually means SDL was incorrectly installed"
315           echo "*** or that you have moved SDL since it was installed. In the latter case, you"
316           echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
317           CFLAGS="$ac_save_CFLAGS"
318           LIBS="$ac_save_LIBS"
319        fi
320      fi
321      SDL_CFLAGS=""
322      SDL_LIBS=""
323      ifelse([$3], , :, [$3])
324   fi
325   AC_SUBST(SDL_CFLAGS)
326   AC_SUBST(SDL_LIBS)
327   rm -f conf.sdltest
328 ])
329