cannam@86: dnl Process this file with autoconf to produce a configure script cannam@86: cannam@86: dnl ------------------------------------------------ cannam@86: dnl Initialization and Versioning cannam@86: dnl ------------------------------------------------ cannam@86: cannam@86: cannam@86: AC_INIT([libvorbis],[1.3.3],[vorbis-dev@xiph.org]) cannam@86: cannam@86: AC_CONFIG_SRCDIR([lib/mdct.c]) cannam@86: cannam@86: AC_CANONICAL_TARGET([]) cannam@86: cannam@86: AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION) cannam@86: AM_MAINTAINER_MODE cannam@86: AM_CONFIG_HEADER([config.h]) cannam@86: cannam@86: dnl Add parameters for aclocal cannam@86: AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") cannam@86: cannam@86: dnl Library versioning cannam@86: dnl - library source changed -> increment REVISION cannam@86: dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 cannam@86: dnl - interfaces added -> increment AGE cannam@86: dnl - interfaces removed -> AGE = 0 cannam@86: cannam@86: V_LIB_CURRENT=4 cannam@86: V_LIB_REVISION=6 cannam@86: V_LIB_AGE=4 cannam@86: cannam@86: VF_LIB_CURRENT=6 cannam@86: VF_LIB_REVISION=5 cannam@86: VF_LIB_AGE=3 cannam@86: cannam@86: VE_LIB_CURRENT=2 cannam@86: VE_LIB_REVISION=9 cannam@86: VE_LIB_AGE=0 cannam@86: cannam@86: AC_SUBST(V_LIB_CURRENT) cannam@86: AC_SUBST(V_LIB_REVISION) cannam@86: AC_SUBST(V_LIB_AGE) cannam@86: AC_SUBST(VF_LIB_CURRENT) cannam@86: AC_SUBST(VF_LIB_REVISION) cannam@86: AC_SUBST(VF_LIB_AGE) cannam@86: AC_SUBST(VE_LIB_CURRENT) cannam@86: AC_SUBST(VE_LIB_REVISION) cannam@86: AC_SUBST(VE_LIB_AGE) cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Check for programs cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2" cannam@86: dnl if $CFLAGS is blank cannam@86: cflags_save="$CFLAGS" cannam@86: AC_PROG_CC cannam@86: AC_PROG_CPP cannam@86: CFLAGS="$cflags_save" cannam@86: cannam@86: AC_C_INLINE cannam@86: cannam@86: AC_LIBTOOL_WIN32_DLL cannam@86: AC_PROG_LIBTOOL cannam@86: AM_PROG_CC_C_O cannam@86: cannam@86: dnl Check for doxygen cannam@86: if test "x$enable_docs" = xyes; then cannam@86: AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false) cannam@86: if test $HAVE_DOXYGEN = "false"; then cannam@86: AC_MSG_WARN([*** doxygen not found, API documentation will not be built]) cannam@86: fi cannam@86: else cannam@86: HAVE_DOXYGEN=false cannam@86: fi cannam@86: AM_CONDITIONAL(HAVE_DOXYGEN,$HAVE_DOXYGEN) cannam@86: cannam@86: dnl latex tools for the specification document cannam@86: AC_ARG_ENABLE(docs, cannam@86: AC_HELP_STRING([--enable-docs], [build the documentation])) cannam@86: cannam@86: if test "x$enable_docs" = xyes; then cannam@86: AC_CHECK_PROGS([PDFLATEX], pdflatex, [/bin/false]) cannam@86: AC_CHECK_PROGS([HTLATEX], htlatex, [/bin/false]) cannam@86: if test "x$PDFLATEX" = x/bin/false || test "x$HTLATEX" = x/bin/false; then cannam@86: enable_docs=no cannam@86: AC_MSG_WARN([Documentation will not be built!]) cannam@86: fi cannam@86: fi cannam@86: cannam@86: AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_docs" = xyes]) cannam@86: cannam@86: AC_ARG_ENABLE(examples, cannam@86: AS_HELP_STRING([--enable-examples], [build the examples])) cannam@86: cannam@86: AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes]) cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Set build flags based on environment cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: dnl Set some target options cannam@86: cannam@86: cflags_save="$CFLAGS" cannam@86: if test -z "$GCC"; then cannam@86: case $host in cannam@86: *-*-irix*) cannam@86: dnl If we're on IRIX, we wanna use cc even if gcc cannam@86: dnl is there (unless the user has overriden us)... cannam@86: if test -z "$CC"; then cannam@86: CC=cc cannam@86: fi cannam@86: DEBUG="-g -signed" cannam@86: CFLAGS="-O2 -w -signed" cannam@86: PROFILE="-p -g3 -O2 -signed" ;; cannam@86: sparc-sun-solaris*) cannam@86: DEBUG="-v -g" cannam@86: CFLAGS="-xO4 -fast -w -fsimple -native -xcg92" cannam@86: PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;; cannam@86: *) cannam@86: DEBUG="-g" cannam@86: CFLAGS="-O" cannam@86: PROFILE="-g -p" ;; cannam@86: esac cannam@86: else cannam@86: cannam@86: AC_MSG_CHECKING([GCC version]) cannam@86: GCC_VERSION=`$CC -dumpversion` cannam@86: AC_MSG_RESULT([$GCC_VERSION]) cannam@86: case $host in cannam@86: *86-*-linux*) cannam@86: DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" cannam@86: CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" cannam@86: # PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" cannam@86: PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" cannam@86: cannam@86: # glibc < 2.1.3 has a serious FP bug in the math inline header cannam@86: # that will cripple Vorbis. Look to see if the magic FP stack cannam@86: # clobber is missing in the mathinline header, thus indicating cannam@86: # the buggy version cannam@86: cannam@86: AC_EGREP_CPP(log10.*fldlg2.*fxch,[ cannam@86: #define __LIBC_INTERNAL_MATH_INLINES 1 cannam@86: #define __OPTIMIZE__ cannam@86: #include cannam@86: ],bad=maybe,bad=no) cannam@86: if test ${bad} = "maybe" ;then cannam@86: AC_EGREP_CPP(log10.*fldlg2.*fxch.*st\([[0123456789]]*\), cannam@86: [ cannam@86: #define __LIBC_INTERNAL_MATH_INLINES 1 cannam@86: #define __OPTIMIZE__ cannam@86: #include cannam@86: ],bad=no,bad=yes) cannam@86: fi cannam@86: if test ${bad} = "yes" ;then cannam@86: AC_MSG_WARN([ ]) cannam@86: AC_MSG_WARN([********************************************************]) cannam@86: AC_MSG_WARN([* The glibc headers on this machine have a serious bug *]) cannam@86: AC_MSG_WARN([* in /usr/include/bits/mathinline.h This bug affects *]) cannam@86: AC_MSG_WARN([* all floating point code, not just Ogg, built on this *]) cannam@86: AC_MSG_WARN([* machine. Upgrading to glibc 2.1.3 is strongly urged *]) cannam@86: AC_MSG_WARN([* to correct the problem. Note that upgrading glibc *]) cannam@86: AC_MSG_WARN([* will not fix any previously built programs; this is *]) cannam@86: AC_MSG_WARN([* a compile-time time bug. *]) cannam@86: AC_MSG_WARN([* To work around the problem for this build of Ogg, *]) cannam@86: AC_MSG_WARN([* autoconf is disabling all math inlining. This will *]) cannam@86: AC_MSG_WARN([* hurt Ogg performace but is necessary for an Ogg that *]) cannam@86: AC_MSG_WARN([* will actually work. Once glibc is upgraded, rerun *]) cannam@86: AC_MSG_WARN([* configure and make to build with inlining. *]) cannam@86: AC_MSG_WARN([********************************************************]) cannam@86: AC_MSG_WARN([ ]) cannam@86: cannam@86: CFLAGS=${OPT}" -D__NO_MATH_INLINES" cannam@86: PROFILE=${PROFILE}" -D__NO_MATH_INLINES" cannam@86: fi;; cannam@86: powerpc-*-linux*spe) cannam@86: DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" cannam@86: CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT" cannam@86: PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";; cannam@86: powerpc-*-linux*) cannam@86: DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" cannam@86: CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT" cannam@86: PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";; cannam@86: *-*-linux*) cannam@86: DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" cannam@86: CFLAGS="-O20 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char" cannam@86: PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; cannam@86: sparc-sun-*) cannam@86: sparc_cpu="" cannam@86: AC_MSG_CHECKING([if gcc supports -mv8]) cannam@86: old_cflags="$CFLAGS" cannam@86: CFLAGS="$CFLAGS -mv8" cannam@86: AC_TRY_COMPILE(, [return 0;], [ cannam@86: AC_MSG_RESULT([yes]) cannam@86: sparc_cpu="-mv8" cannam@86: ]) cannam@86: CFLAGS="$old_cflags" cannam@86: DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" cannam@86: CFLAGS="-O20 -Wall -Wextra -ffast-math -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" cannam@86: PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" ;; cannam@86: *-*-darwin*) cannam@86: DEBUG="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O0 -fsigned-char" cannam@86: CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O4 -ffast-math -fsigned-char" cannam@86: PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O4 -ffast-math -fsigned-char";; cannam@86: *-*-os2*) cannam@86: # Use -W instead of -Wextra because gcc on OS/2 is an old version. cannam@86: DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" cannam@86: CFLAGS="-O20 -Wall -W -ffast-math -D_REENTRANT -fsigned-char" cannam@86: PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; cannam@86: *) cannam@86: DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" cannam@86: CFLAGS="-O20 -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" cannam@86: PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; cannam@86: esac cannam@86: cannam@86: AC_ADD_CFLAGS([-Wdeclaration-after-statement]) cannam@86: fi cannam@86: CFLAGS="$CFLAGS $cflags_save" cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Check for headers cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:) cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Check for typedefs, structures, etc cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: dnl none cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Check for libraries cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: AC_CHECK_LIB(m, cos, VORBIS_LIBS="-lm", VORBIS_LIBS="") cannam@86: AC_CHECK_LIB(pthread, pthread_create, pthread_lib="-lpthread", :) cannam@86: cannam@86: PKG_PROG_PKG_CONFIG cannam@86: cannam@86: HAVE_OGG=no cannam@86: if test "x$PKG_CONFIG" != "x" cannam@86: then cannam@86: PKG_CHECK_MODULES(OGG, ogg >= 1.0, HAVE_OGG=yes, HAVE_OGG=no) cannam@86: fi cannam@86: if test "x$HAVE_OGG" = "xno" cannam@86: then cannam@86: dnl fall back to the old school test cannam@86: XIPH_PATH_OGG(, AC_MSG_ERROR(must have Ogg installed!)) cannam@86: libs_save=$LIBS cannam@86: LIBS="$OGG_LIBS $VORBIS_LIBS" cannam@86: AC_CHECK_FUNC(oggpack_writealign, , AC_MSG_ERROR(Ogg >= 1.0 required !)) cannam@86: LIBS=$libs_save cannam@86: fi cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Check for library functions cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: AC_FUNC_ALLOCA cannam@86: AC_FUNC_MEMCMP cannam@86: cannam@86: dnl -------------------------------------------------- cannam@86: dnl Do substitutions cannam@86: dnl -------------------------------------------------- cannam@86: cannam@86: AC_SUBST(VORBIS_LIBS) cannam@86: AC_SUBST(DEBUG) cannam@86: AC_SUBST(PROFILE) cannam@86: AC_SUBST(pthread_lib) cannam@86: cannam@86: dnl The following line causes the libtool distributed with the source cannam@86: dnl to be replaced if the build system has a more recent version. cannam@86: AC_SUBST(LIBTOOL_DEPS) cannam@86: cannam@86: AC_OUTPUT([ cannam@86: Makefile cannam@86: m4/Makefile cannam@86: lib/Makefile cannam@86: lib/modes/Makefile cannam@86: lib/books/Makefile cannam@86: lib/books/coupled/Makefile cannam@86: lib/books/uncoupled/Makefile cannam@86: lib/books/floor/Makefile cannam@86: doc/Makefile doc/vorbisfile/Makefile doc/vorbisenc/Makefile doc/libvorbis/Makefile cannam@86: doc/Doxyfile cannam@86: include/Makefile include/vorbis/Makefile cannam@86: examples/Makefile cannam@86: test/Makefile cannam@86: vq/Makefile cannam@86: libvorbis.spec cannam@86: vorbis.pc cannam@86: vorbisenc.pc cannam@86: vorbisfile.pc cannam@86: vorbis-uninstalled.pc cannam@86: vorbisenc-uninstalled.pc cannam@86: vorbisfile-uninstalled.pc cannam@86: ])