dnl Process this file with autoconf to produce a configure script dnl ------------------------------------------------ dnl Initialization and Versioning dnl ------------------------------------------------ AC_INIT(lib/mdct.c) AM_INIT_AUTOMAKE(libvorbis,1.0.0) dnl Library versioning V_LIB_CURRENT=0 V_LIB_REVISION=0 V_LIB_AGE=0 VF_LIB_CURRENT=0 VF_LIB_REVISION=0 VF_LIB_AGE=0 AC_SUBST(V_LIB_CURRENT) AC_SUBST(V_LIB_REVISION) AC_SUBST(V_LIB_AGE) AC_SUBST(VF_LIB_CURRENT) AC_SUBST(VF_LIB_REVISION) AC_SUBST(VF_LIB_AGE) dnl -------------------------------------------------- dnl Check for programs dnl -------------------------------------------------- dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2" dnl if $CFLAGS is blank cflags_save="$CFLAGS" AC_PROG_CC CFLAGS="$cflags_save" AM_PROG_LIBTOOL dnl -------------------------------------------------- dnl Additional arguments dnl -------------------------------------------------- AC_ARG_WITH(ogg, [ --with-ogg=DIR Set where the Ogg library is located]) dnl -------------------------------------------------- dnl Set build flags based on environment dnl -------------------------------------------------- AC_CANONICAL_HOST dnl Set some target options if test -z "$GCC"; then case $host in *-*-irix*) dnl If we're on IRIX, we wanna use cc even if gcc dnl is there (unless the user has overriden us)... if test -z "$CC"; then CC=cc fi DEBUG="-g -signed" CFLAGS="-O2 -w -signed" PROFILE="-p -g3 -O2 -signed" ;; sparc-sun-solaris*) DEBUG="-v -g" CFLAGS="-xO4 -fast -w -fsimple -native -xcg92" PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;; *) DEBUG="-g" CFLAGS="-O" PROFILE="-g -p" ;; esac else case $host in *86-*-linux*) DEBUG="-g -Wall -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" # PROFILE="-Wall -W -pg -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" PROFILE="-Wall -W -pg -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline -static" # glibc < 2.1.3 has a serious FP bug in the math inline header # that will cripple Vorbis. Look to see if the magic FP stack # clobber is missing in the mathinline header, thus indicating # the buggy version AC_EGREP_CPP(log10.*fldlg2.*fxch,[ #define __LIBC_INTERNAL_MATH_INLINES 1 #define __OPTIMIZE__ #include ],bad=maybe,bad=no) if test ${bad} = "maybe" ;then AC_EGREP_CPP(log10.*fldlg2.*fxch.*st\([[0123456789]]*\), [ #define __LIBC_INTERNAL_MATH_INLINES 1 #define __OPTIMIZE__ #include ],bad=no,bad=yes) fi if test ${bad} = "yes" ;then AC_MSG_WARN([ ]) AC_MSG_WARN([********************************************************]) AC_MSG_WARN([* The glibc headers on this machine have a serious bug *]) AC_MSG_WARN([* in /usr/include/bits/mathinline.h This bug affects *]) AC_MSG_WARN([* all floating point code, not just Ogg, built on this *]) AC_MSG_WARN([* machine. Upgrading to glibc 2.1.3 is strongly urged *]) AC_MSG_WARN([* to correct the problem. Note that upgrading glibc *]) AC_MSG_WARN([* will not fix any previously built programs; this is *]) AC_MSG_WARN([* a compile-time time bug. *]) AC_MSG_WARN([* To work around the problem for this build of Ogg, *]) AC_MSG_WARN([* autoconf is disabling all math inlining. This will *]) AC_MSG_WARN([* hurt Ogg performace but is necessary for an Ogg that *]) AC_MSG_WARN([* will actually work. Once glibc is upgraded, rerun *]) AC_MSG_WARN([* configure and make to build with inlining. *]) AC_MSG_WARN([********************************************************]) AC_MSG_WARN([ ]) CFLAGS=${OPT}" -D__NO_MATH_INLINES" PROFILE=${PROFILE}" -D__NO_MATH_INLINES" fi;; *-*-linux*) DEBUG="-g -Wall -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -ffast-math -D_REENTRANT -fsigned-char" PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; sparc-sun-*) DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -mv8" CFLAGS="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char -mv8" PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;; *) DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; esac fi AC_HEADER_STDC dnl AC_PATH_X dnl AC_PATH_XTRA #AC_CHECK_LIB(pthread, pthread_create, # pthread_lib="-lpthread"; AC_DEFINE(HAVE_LIBPTHREAD), :) # We no longer use config.h AC_CHECK_LIB(pthread, pthread_create, pthread_lib="-lpthread", :) #dnl Linuxthreads require you to define _REENTRANT in all threaded #dnl code. Bogus, bogus... # #if test -n "$pthread_lib"; then # case $host in # i?86-*-linux*) # AC_DEFINE(_REENTRANT) # ;; # esac #fi # We no longer use config.h #if test -n "$x_libraries"; then # XOGG="yes" # # dnl If we find libgtk installed, great; otherwise assume we have # dnl to build it ourselves. # # AC_CHECK_LIB(gtk, gtk_main, :, LIBGTKDIR="libgtk", $X_LIBS -lglib -lgdk -lX11 -lXext -lm) # # dnl libpthread is required for xogg. # # if test -z "$pthread_lib"; then XOGG=""; fi # # dnl If we don't have libgtk installed, and we don't have a libgtk # dnl subdirectory to build the library ourself, we can't build xogg. # # if test -n "$LIBGTKDIR" -a ! -d "$LIBGTKDIR"; then # XOGG="" # LIBGTKDIR="" # fi #fi dnl This seems to be the only way to make autoconf only *sometimes* configure dnl a subdirectory with AC_CONFIG_SUBDIRS. "__noconf" is assumed to not dnl exist as a directory, so configure won't try to recursively enter it, unless dnl the shell variable $dummy is reset to an existing directory inside the dnl if clause. dummy="__noconf" #if test -d "$LIBGTKDIR"; then # enable_shared="no"; export enable_shared # dummy="libgtk" # AC_CONFIG_SUBDIRS("$dummy") # X_LIBS="-L${srcdir}/libgtk/gtk/.libs -L${srcdir}/libgtk/gdk/.libs -L${srcdir}/libgtk/glib/.libs $X_LIBS" #fi # check macro modified from Jon Shiring's to compensate for autoconf's lagging # behind the times on type madness AC_MSG_CHECKING(for int16_t) AC_CACHE_VAL(has_int16_t, [AC_TRY_RUN([ #ifdef __BEOS__ #include #endif #include int16_t foo; int main() {return 0;} ], has_int16_t=yes, has_int16_t=no, has_int16_t=no )]) AC_MSG_RESULT($has_int16_t) AC_MSG_CHECKING(for int32_t) AC_CACHE_VAL(has_int32_t, [AC_TRY_RUN([ #ifdef __BEOS__ #include #endif #include int32_t foo; int main() {return 0;} ], has_int32_t=yes, has_int32_t=no, has_int32_t=no )]) AC_MSG_RESULT($has_int32_t) AC_MSG_CHECKING(for uint32_t) AC_CACHE_VAL(has_uint32_t, [AC_TRY_RUN([ #ifdef __BEOS__ #include #endif #include uint32_t foo; int main() {return 0;} ], has_uint32_t=yes, has_uint32_t=no, has_uint32_t=no )]) AC_MSG_RESULT($has_uint32_t) AC_MSG_CHECKING(for u_int32_t) AC_CACHE_VAL(has_u_int32_t, [AC_TRY_RUN([ #ifdef __BEOS__ #include #endif #include u_int32_t foo; int main() {return 0;} ], has_u_int32_t=yes, has_u_int32_t=no, has_u_int32_t=no )]) AC_MSG_RESULT($has_u_int32_t) AC_MSG_CHECKING(for int64_t) AC_CACHE_VAL(has_int64_t, [AC_TRY_RUN([ #ifdef __BEOS__ #include #endif #include int64_t foo; int main() {return 0;} ], has_int64_t=yes, has_int64_t=no, has_int64_t=no )]) AC_MSG_RESULT($has_int64_t) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) if test x$has_int16_t = "xyes" ; then SIZE16="int16_t" else case 2 in $ac_cv_sizeof_short) SIZE16="short";; $ac_cv_sizeof_int) SIZE16="int";; esac fi dnl -------------------------------------------------- dnl Check for headers dnl -------------------------------------------------- AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:) dnl -------------------------------------------------- dnl Check for typedefs, structures, etc dnl -------------------------------------------------- dnl none dnl -------------------------------------------------- dnl Check for libraries dnl -------------------------------------------------- AC_CHECK_LIB(m, cos, LIBS="-lm", LIBS="") AC_CHECK_LIB(pthread, pthread_create, pthread_lib="-lpthread", :) dnl Check for libogg if test -n $with_ogg; then CFLAGS="$CFLAGS -I$with_ogg/include -L$with_ogg/lib" fi AC_CHECK_LIB(ogg, oggpack_read, LIBS="$LIBS -logg", AC_MSG_ERROR([You must have libogg to compile vorbis!!!])) dnl -------------------------------------------------- dnl Check for library functions dnl -------------------------------------------------- AC_FUNC_ALLOCA AC_FUNC_MEMCMP dnl -------------------------------------------------- dnl Do substitutions dnl -------------------------------------------------- AC_SUBST(LIBS) AC_SUBST(DEBUG) AC_SUBST(PROFILE) AC_SUBST(CC) AC_SUBST(pthread_lib) AC_OUTPUT(Makefile lib/Makefile doc/Makefile include/Makefile include/vorbis/Makefile include/vorbis/book/Makefile examples/Makefile)