1 # $Id: configure.in,v 1.23 2000/08/31 03:28:43 xiphmont Exp $
4 #AC_CONFIG_HEADER(config.h)
6 cp configure.guess config.guess
7 cp configure.sub config.sub
11 dnl If we're on IRIX, we wanna use cc even if gcc is there (unless the user
12 dnl has overriden us)...
15 if test -z "$CC"; then
18 AC_CHECK_LIB(audio, ALwritesamps)
20 # BeOS does not use -lm
24 # added better check below
30 # because AC_PROG_CC likes to set -g
35 AC_CHECK_PROG(AR,ar,ar)
36 AC_CHECK_PROG(INSTALL,install,install)
38 #not everyone uses libm (eg, BeOS)
39 #AC_CHECK_LIB(m, cos, LIBS="-lm"; AC_DEFINE(HAVE_LIBM), LIBS="")
40 # We no longer use config.h
41 AC_CHECK_LIB(m, cos, LIBS="-lm", LIBS="")
43 dnl Set some target options
44 if test -z "$GCC"; then
49 PROFILE="-p -g3 -O2 -signed" ;;
52 OPT="-xO4 -fast -w -fsimple -native -xcg92"
53 PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;;
63 DEBUG="-g -Wall -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
64 OPT="-O20 -ffast-math -D_REENTRANT -fsigned-char"
65 PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char"
67 # glibc < 2.1.3 has a serious FP bug in the math inline header
68 # that will cripple Vorbis. Look to see if the magic FP stack
69 # clobber is missing in the mathinline header, thus indicating
72 AC_EGREP_CPP(log10.*fldlg2.*fxch,[
73 #define __LIBC_INTERNAL_MATH_INLINES 1
77 if test ${bad} = "maybe" ;then
78 AC_EGREP_CPP(log10.*fldlg2.*fxch.*st\([[0123456789]]*\),
80 #define __LIBC_INTERNAL_MATH_INLINES 1
85 if test ${bad} = "yes" ;then
87 AC_MSG_WARN([********************************************************])
88 AC_MSG_WARN([* The glibc headers on this machine have a serious bug *])
89 AC_MSG_WARN([* in /usr/include/bits/mathinline.h This bug affects *])
90 AC_MSG_WARN([* all floating point code, not just Ogg, built on this *])
91 AC_MSG_WARN([* machine. Upgrading to glibc 2.1.3 is strongly urged *])
92 AC_MSG_WARN([* to correct the problem. Note that upgrading glibc *])
93 AC_MSG_WARN([* will not fix any previously built programs; this is *])
94 AC_MSG_WARN([* a compile-time time bug. *])
95 AC_MSG_WARN([* To work around the problem for this build of Ogg, *])
96 AC_MSG_WARN([* autoconf is disabling all math inlining. This will *])
97 AC_MSG_WARN([* hurt Ogg performace but is necessary for an Ogg that *])
98 AC_MSG_WARN([* will actually work. Once glibc is upgraded, rerun *])
99 AC_MSG_WARN([* configure and make to build with inlining. *])
100 AC_MSG_WARN([********************************************************])
103 OPT=${OPT}" -D__NO_MATH_INLINES"
104 PROFILE=${PROFILE}" -D__NO_MATH_INLINES"
107 DEBUG="-g -Wall -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
108 OPT="-O20 -ffast-math -D_REENTRANT -fsigned-char"
109 PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";;
111 DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -mv8"
112 OPT="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char -mv8"
113 PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;;
115 DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char"
116 OPT="-O20 -D__NO_MATH_INLINES -fsigned-char"
117 PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;;
126 #AC_CHECK_LIB(pthread, pthread_create,
127 # pthread_lib="-lpthread"; AC_DEFINE(HAVE_LIBPTHREAD), :)
128 # We no longer use config.h
129 AC_CHECK_LIB(pthread, pthread_create, pthread_lib="-lpthread", :)
131 #dnl Linuxthreads require you to define _REENTRANT in all threaded
132 #dnl code. Bogus, bogus...
134 #if test -n "$pthread_lib"; then
137 # AC_DEFINE(_REENTRANT)
141 # We no longer use config.h
143 #if test -n "$x_libraries"; then
146 # dnl If we find libgtk installed, great; otherwise assume we have
147 # dnl to build it ourselves.
149 # AC_CHECK_LIB(gtk, gtk_main, :, LIBGTKDIR="libgtk", $X_LIBS -lglib -lgdk -lX11 -lXext -lm)
151 # dnl libpthread is required for xogg.
153 # if test -z "$pthread_lib"; then XOGG=""; fi
155 # dnl If we don't have libgtk installed, and we don't have a libgtk
156 # dnl subdirectory to build the library ourself, we can't build xogg.
158 # if test -n "$LIBGTKDIR" -a ! -d "$LIBGTKDIR"; then
164 dnl This seems to be the only way to make autoconf only *sometimes* configure
165 dnl a subdirectory with AC_CONFIG_SUBDIRS. "__noconf" is assumed to not
166 dnl exist as a directory, so configure won't try to recursively enter it, unless
167 dnl the shell variable $dummy is reset to an existing directory inside the
172 #if test -d "$LIBGTKDIR"; then
173 # enable_shared="no"; export enable_shared
175 # AC_CONFIG_SUBDIRS("$dummy")
176 # X_LIBS="-L${srcdir}/libgtk/gtk/.libs -L${srcdir}/libgtk/gdk/.libs -L${srcdir}/libgtk/glib/.libs $X_LIBS"
179 # check macro modified from Jon Shiring's to compensate for autoconf's lagging
180 # behind the times on type madness
182 AC_MSG_CHECKING(for int16_t)
183 AC_CACHE_VAL(has_int16_t,
186 #include <inttypes.h>
188 #include <sys/types.h>
190 int main() {return 0;}
196 AC_MSG_RESULT($has_int16_t)
198 AC_MSG_CHECKING(for int32_t)
199 AC_CACHE_VAL(has_int32_t,
202 #include <inttypes.h>
204 #include <sys/types.h>
206 int main() {return 0;}
212 AC_MSG_RESULT($has_int32_t)
214 AC_MSG_CHECKING(for uint32_t)
215 AC_CACHE_VAL(has_uint32_t,
218 #include <inttypes.h>
220 #include <sys/types.h>
222 int main() {return 0;}
228 AC_MSG_RESULT($has_uint32_t)
230 AC_MSG_CHECKING(for u_int32_t)
231 AC_CACHE_VAL(has_u_int32_t,
234 #include <inttypes.h>
236 #include <sys/types.h>
238 int main() {return 0;}
244 AC_MSG_RESULT($has_u_int32_t)
246 AC_MSG_CHECKING(for int64_t)
247 AC_CACHE_VAL(has_int64_t,
250 #include <inttypes.h>
252 #include <sys/types.h>
254 int main() {return 0;}
260 AC_MSG_RESULT($has_int64_t)
262 AC_CHECK_SIZEOF(short)
264 AC_CHECK_SIZEOF(long)
265 AC_CHECK_SIZEOF(long long)
268 if test x$has_int16_t = "xyes" ; then
272 $ac_cv_sizeof_short) SIZE16="short";;
273 $ac_cv_sizeof_int) SIZE16="int";;
277 if test x$has_int32_t = "xyes" ; then
281 $ac_cv_sizeof_short) SIZE32="short";;
282 $ac_cv_sizeof_int) SIZE32="int";;
283 $ac_cv_sizeof_long) SIZE32="long";;
287 if test x$has_uint32_t = "xyes" ; then
290 if test x$has_u_int32_t = "xyes" ; then
294 $ac_cv_sizeof_short) USIZE32="unsigned short";;
295 $ac_cv_sizeof_int) USIZE32="unsigned int";;
296 $ac_cv_sizeof_long) USIZE32="unsigned long";;
301 if test x$has_int64_t = "xyes" ; then
305 $ac_cv_sizeof_int) SIZE64="int";;
306 $ac_cv_sizeof_long) SIZE64="long";;
307 $ac_cv_sizeof_long_long) SIZE64="long long";;
311 if test -z "$SIZE16"; then
312 AC_MSG_ERROR(No 16 bit type found on this platform!)
314 if test -z "$SIZE32"; then
315 AC_MSG_ERROR(No 32 bit type found on this platform!)
317 if test -z "$USIZE32"; then
318 AC_MSG_ERROR(No unsigned 32 bit type found on this platform!)
320 if test -z "$SIZE64"; then
321 AC_MSG_WARN(No 64 bit type found on this platform!)
324 #AC_CHECK_HEADER(alloca.h,AC_DEFINE(USE_ALLOCA_H),:)
325 #AC_CHECK_HEADER(memory.h,AC_DEFINE(USE_MEMORY_H),:)
326 # We no longer use config.h
327 AC_CHECK_HEADER(alloca.h,CFLAGS="$CFLAGS -DUSE_ALLOCA_H",:)
328 AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:)
337 AC_CHECK_FUNCS(gettimeofday select strcspn strerror strspn sigaction)
351 AC_SUBST(pthread_lib)
353 AC_CONFIG_SUBDIRS(vorbis-tools/libao)
355 AC_OUTPUT(Makefile lib/Makefile examples/Makefile include/vorbis/os_types.h\
356 vorbis-tools/Makefile\
357 vq/Makefile huff/Makefile cmdline/Makefile xmms/Makefile kmpg/Makefile)