mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-31 14:13:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			436 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			436 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| dnl -*- m4 -*-
 | |
| dnl
 | |
| dnl libmad - MPEG audio decoder library
 | |
| dnl Copyright (C) 2000-2004 Underbit Technologies, Inc.
 | |
| dnl
 | |
| dnl This program is free software; you can redistribute it and/or modify
 | |
| dnl it under the terms of the GNU General Public License as published by
 | |
| dnl the Free Software Foundation; either version 2 of the License, or
 | |
| dnl (at your option) any later version.
 | |
| dnl
 | |
| dnl This program is distributed in the hope that it will be useful,
 | |
| dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| dnl GNU General Public License for more details.
 | |
| dnl
 | |
| dnl You should have received a copy of the GNU General Public License
 | |
| dnl along with this program; if not, write to the Free Software
 | |
| dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| dnl
 | |
| AC_REVISION([$Id: configure.ac,v 1.4 2009-01-17 22:01:06 richardash1981 Exp $])dnl
 | |
| 
 | |
| dnl Process this file with autoconf to produce a configure script.
 | |
| 
 | |
| AC_INIT([MPEG Audio Decoder], [0.15.1b], [support@underbit.com], [libmad])
 | |
| AC_PREREQ(2.53)
 | |
| 
 | |
| AC_CONFIG_SRCDIR([decoder.h])
 | |
| 
 | |
| AM_INIT_AUTOMAKE([-Wall foreign])
 | |
| 
 | |
| AM_CONFIG_HEADER([config.h])
 | |
| 
 | |
| AM_MAINTAINER_MODE
 | |
| 
 | |
| dnl System type.
 | |
| 
 | |
| AC_CANONICAL_HOST
 | |
| 
 | |
| dnl Checks for programs.
 | |
| 
 | |
| AC_PROG_CC
 | |
| AM_PROG_AS
 | |
| 
 | |
| if test "$GCC" = yes
 | |
| then
 | |
|     case "$host" in
 | |
| 	*-*-mingw*)
 | |
| 	    case "$build" in
 | |
| 		*-*-cygwin*)
 | |
| 		    CPPFLAGS="$CPPFLAGS -mno-cygwin"
 | |
| 		    LDFLAGS="$LDFLAGS -mno-cygwin"
 | |
| 		    ;;
 | |
| 	    esac
 | |
|     esac
 | |
| 
 | |
| dnl    case "$host" in
 | |
| dnl	*-*-cygwin* | *-*-mingw*)
 | |
| dnl	    LDFLAGS="$LDFLAGS -no-undefined -mdll"
 | |
| dnl	    ;;
 | |
| dnl    esac
 | |
| fi
 | |
| 
 | |
| dnl Support for libtool.
 | |
| 
 | |
| dnl AC_DISABLE_SHARED
 | |
| dnl AC_LIBTOOL_WIN32_DLL
 | |
| AC_PROG_LIBTOOL
 | |
| 
 | |
| AC_SUBST(LIBTOOL_DEPS)
 | |
| 
 | |
| dnl Compiler options.
 | |
| 
 | |
| arch=""
 | |
| debug=""
 | |
| optimize=""
 | |
| profile=""
 | |
| 
 | |
| set -- $CFLAGS
 | |
| CFLAGS=""
 | |
| 
 | |
| if test "$GCC" = yes
 | |
| then
 | |
|     CFLAGS="-Wall"
 | |
| fi
 | |
| 
 | |
| while test $# -gt 0
 | |
| do
 | |
|     case "$1" in
 | |
| 	-Wall)
 | |
| 	    if test "$GCC" = yes
 | |
| 	    then
 | |
| 		:
 | |
| 	    else
 | |
| 		CFLAGS="$CFLAGS $1"
 | |
| 	    fi
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-g)
 | |
| 	    debug="-g"
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-mno-cygwin)
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-m*)
 | |
| 	    arch="$arch $1"
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-O2)
 | |
| 	    optimize="-O"
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-fomit-frame-pointer)
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-O*|-f*)
 | |
| 	    optimize="$optimize $1"
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	*)
 | |
| 	    CFLAGS="$CFLAGS $1"
 | |
| 	    shift
 | |
| 	    ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| if test "$GCC" = yes
 | |
| then
 | |
|     if test -z "$arch"
 | |
|     then
 | |
| 	case "$host" in
 | |
| 	    i386-*)           ;;
 | |
| 	    i?86-*)           arch="-march=i486" ;;
 | |
| 	    arm*-empeg-*)     arch="-march=armv4 -mtune=strongarm1100" ;;
 | |
| 	    armv4*-*)         arch="-march=armv4 -mtune=strongarm" ;;
 | |
| 	    powerpc-*)        ;;
 | |
| 	    mips*-agenda-*)   arch="-mcpu=vr4100" ;;
 | |
| 	    mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
 | |
| 	esac
 | |
|     fi
 | |
| 
 | |
|     case "$optimize" in
 | |
| 	-O|"-O "*)
 | |
| 	    optimize="-O"
 | |
| 	    : #x optimize="$optimize -fforce-mem"
 | |
| 	    : #x optimize="$optimize -fforce-addr"
 | |
| 	    : #x optimize="$optimize -finline-functions"
 | |
| 	    : #- optimize="$optimize -fstrength-reduce"
 | |
| 	    optimize="$optimize -fthread-jumps"
 | |
| 	    optimize="$optimize -fcse-follow-jumps"
 | |
| 	    optimize="$optimize -fcse-skip-blocks"
 | |
| 	    : #x optimize="$optimize -frerun-cse-after-loop"
 | |
| 	    : #x optimize="$optimize -frerun-loop-opt"
 | |
| 	    : #x optimize="$optimize -fgcse"
 | |
| 	    optimize="$optimize -fexpensive-optimizations"
 | |
| 	    optimize="$optimize -fregmove"
 | |
| 	    : #* optimize="$optimize -fdelayed-branch"
 | |
| 	    : #x optimize="$optimize -fschedule-insns"
 | |
| 	    optimize="$optimize -fschedule-insns2"
 | |
| 	    : #? optimize="$optimize -ffunction-sections"
 | |
| 	    : #? optimize="$optimize -fcaller-saves"
 | |
| 	    : #> optimize="$optimize -funroll-loops"
 | |
| 	    : #> optimize="$optimize -funroll-all-loops"
 | |
| 	    : #x optimize="$optimize -fmove-all-movables"
 | |
| 	    : #x optimize="$optimize -freduce-all-givs"
 | |
| 	    : #? optimize="$optimize -fstrict-aliasing"
 | |
| 	    : #* optimize="$optimize -fstructure-noalias"
 | |
| 
 | |
| 	    case "$host" in
 | |
| 		arm*-*)
 | |
| 		    optimize="$optimize -fstrength-reduce"
 | |
| 		    ;;
 | |
| 		mips*-*)
 | |
| 		    optimize="$optimize -fstrength-reduce"
 | |
| 		    optimize="$optimize -finline-functions"
 | |
| 		    ;;
 | |
| 		i?86-*)
 | |
| 		    optimize="$optimize -fstrength-reduce"
 | |
| 		    ;;
 | |
| 		powerpc-apple-*)
 | |
| 		    # this triggers an internal compiler error with gcc2
 | |
| 		    : #optimize="$optimize -fstrength-reduce"
 | |
| 
 | |
| 		    # this is really only beneficial with gcc3
 | |
| 		    : #optimize="$optimize -finline-functions"
 | |
| 		    ;;
 | |
| 		*)
 | |
| 		    # this sometimes provokes bugs in gcc 2.95.2
 | |
| 		    : #optimize="$optimize -fstrength-reduce"
 | |
| 		    ;;
 | |
| 	    esac
 | |
| 	    ;;
 | |
|     esac
 | |
| fi
 | |
| 
 | |
| case "$host" in
 | |
|     mips*-agenda-*)
 | |
| 	AC_DEFINE(HAVE_MADD16_ASM, 1,
 | |
| 	    [Define if your MIPS CPU supports a 2-operand MADD16 instruction.])
 | |
| 	;;
 | |
|     mips*-luxsonor-*)
 | |
| 	AC_DEFINE(HAVE_MADD_ASM, 1,
 | |
| 	    [Define if your MIPS CPU supports a 2-operand MADD instruction.])
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| dnl Checks for header files.
 | |
| 
 | |
| AC_HEADER_STDC
 | |
| AC_HEADER_SYS_WAIT
 | |
| AC_CHECK_HEADERS(assert.h limits.h unistd.h sys/types.h fcntl.h errno.h)
 | |
| 
 | |
| dnl Checks for typedefs, structures, and compiler characteristics.
 | |
| 
 | |
| AC_C_CONST
 | |
| AC_C_INLINE
 | |
| AC_C_BIGENDIAN
 | |
| AC_TYPE_PID_T
 | |
| 
 | |
| AC_CHECK_SIZEOF(int, 2)
 | |
| AC_CHECK_SIZEOF(long, 4)
 | |
| AC_CHECK_SIZEOF(long long, 8)
 | |
| 
 | |
| dnl Checks for library functions.
 | |
| 
 | |
| AC_CHECK_FUNCS(waitpid fcntl pipe fork)
 | |
| 
 | |
| dnl Other options.
 | |
| 
 | |
| AC_SUBST(FPM)
 | |
| AC_SUBST(ASO)
 | |
| AC_SUBST(ASO_OBJS)
 | |
| 
 | |
| dnl handle --enable and --disable options
 | |
| 
 | |
| AC_CACHE_SAVE
 | |
| 
 | |
| AC_MSG_CHECKING(whether to optimize for speed or for accuracy)
 | |
| 
 | |
| AC_ARG_ENABLE(speed, AC_HELP_STRING([--enable-speed],
 | |
| 		     [optimize for speed over accuracy]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    optimize_for="speed"
 | |
| 	    AC_DEFINE(OPT_SPEED, 1,
 | |
| 		[Define to optimize for speed over accuracy.])
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| 
 | |
| AC_ARG_ENABLE(accuracy, AC_HELP_STRING([--enable-accuracy],
 | |
| 			[optimize for accuracy over speed]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    if test "$optimize_for" = "speed"
 | |
| 	    then
 | |
| 		optimize_for="both"
 | |
| 	    else
 | |
| 		optimize_for="accuracy"
 | |
| 	    fi
 | |
| 	    AC_DEFINE(OPT_ACCURACY, 1,
 | |
| 		[Define to optimize for accuracy over speed.])
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| 
 | |
| AC_MSG_RESULT(${optimize_for-default})
 | |
| 
 | |
| if test "$optimize_for" = "both"
 | |
| then
 | |
|     AC_MSG_ERROR(cannot optimize for both speed and accuracy)
 | |
| fi
 | |
| 
 | |
| AC_MSG_CHECKING(for architecture-specific fixed-point math routines)
 | |
| AC_ARG_ENABLE(fpm, AC_HELP_STRING([--enable-fpm=ARCH],
 | |
| 		   [use ARCH-specific fixed-point math routines
 | |
| 		    (one of: intel, arm, mips, sparc, ppc, 64bit, default)]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)                             ;;
 | |
| 	no|default|approx) FPM="DEFAULT" ;;
 | |
| 	intel|i?86)        FPM="INTEL"   ;;
 | |
| 	arm)               FPM="ARM"     ;;
 | |
| 	mips)              FPM="MIPS"    ;;
 | |
| 	sparc)             FPM="SPARC"   ;;
 | |
| 	ppc|powerpc)       FPM="PPC"     ;;
 | |
| 	64bit)             FPM="64BIT"   ;;
 | |
| 	float)             FPM="FLOAT"   ;;
 | |
| 	*)
 | |
| 	    AC_MSG_RESULT(failed)
 | |
| 	    AC_MSG_ERROR([bad --enable-fpm option])
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| 
 | |
| if test -z "$FPM" && test "$GCC" = yes
 | |
| then
 | |
|     case "$host" in
 | |
| 	i?86-*)     FPM="INTEL"  ;;
 | |
| 	arm*-*)     FPM="ARM"    ;;
 | |
| 	mips*-*)    FPM="MIPS"   ;;
 | |
| 	sparc*-*)   FPM="SPARC"  ;;
 | |
| 	powerpc*-*) FPM="PPC"    ;;
 | |
| 	# FIXME: need to test for 64-bit long long...
 | |
|     esac
 | |
| fi
 | |
| 
 | |
| AC_MSG_RESULT(${FPM=DEFAULT})
 | |
| 
 | |
| if test "$FPM" = "DEFAULT"
 | |
| then
 | |
|     AC_MSG_WARN([default fixed-point math will yield limited accuracy])
 | |
| fi
 | |
| 
 | |
| FPM="-DFPM_$FPM"
 | |
| 
 | |
| AC_ARG_ENABLE(sso, AC_HELP_STRING([--enable-sso],
 | |
| 		   [use subband synthesis optimization]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    AC_DEFINE(OPT_SSO, 1,
 | |
|     [Define to enable a fast subband synthesis approximation optimization.])
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| 
 | |
| AC_ARG_ENABLE(aso, AC_HELP_STRING([--disable-aso],
 | |
| 		   [disable architecture-specific optimizations]),
 | |
|     [], [enable_aso=yes])
 | |
| 
 | |
| if test "$enable_aso" = yes
 | |
| then
 | |
|     case "$host" in
 | |
| 	i?86-*)
 | |
| 	    : #ASO="$ASO -DASO_INTERLEAVE1"
 | |
| 	    ASO="$ASO -DASO_ZEROCHECK"
 | |
| 	    : #not yet #ASO="$ASO -DASO_SYNTH"
 | |
| 	    : #not yet #ASO_OBJS="synth_mmx.lo"
 | |
| 	    ;;
 | |
| 	arm*-*)
 | |
| 	    ASO="$ASO -DASO_INTERLEAVE1"
 | |
| 	    ASO="$ASO -DASO_IMDCT"
 | |
| 	    ASO_OBJS="imdct_l_arm.lo"
 | |
| 	    ;;
 | |
| 	mips*-*)
 | |
| 	    ASO="$ASO -DASO_INTERLEAVE2"
 | |
| 	    ASO="$ASO -DASO_ZEROCHECK"
 | |
| 	    ;;
 | |
|     esac
 | |
| fi
 | |
| 
 | |
| AC_MSG_CHECKING(for ISO/IEC interpretation)
 | |
| AC_ARG_ENABLE(strict-iso, AC_HELP_STRING([--enable-strict-iso],
 | |
| 			  [use strict ISO/IEC interpretations]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    AC_DEFINE(OPT_STRICT, 1,
 | |
|     [Define to influence a strict interpretation of the ISO/IEC standards,
 | |
|      even if this is in opposition with best accepted practices.])
 | |
| 	    interpretation="strict"
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| AC_MSG_RESULT(${interpretation-best accepted practices})
 | |
| 
 | |
| AC_MSG_CHECKING(whether to enable profiling)
 | |
| AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling],
 | |
| 			 [generate profiling code]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes) profile="-pg" ;;
 | |
|     esac
 | |
| ])
 | |
| AC_MSG_RESULT(${enable_profiling-no})
 | |
| 
 | |
| AC_MSG_CHECKING(whether to enable debugging)
 | |
| AC_ARG_ENABLE(debugging, AC_HELP_STRING([--enable-debugging],
 | |
| 			 [enable diagnostic debugging support])
 | |
| AC_HELP_STRING([--disable-debugging],
 | |
| 	       [do not enable debugging and use more optimization]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    AC_DEFINE(DEBUG, 1,
 | |
| 		[Define to enable diagnostic debugging support.])
 | |
| 	    optimize=""
 | |
| 	    ;;
 | |
| 	no)
 | |
| 	    if test -n "$profile"
 | |
| 	    then
 | |
|     AC_MSG_ERROR(--enable-profiling and --disable-debugging are incompatible)
 | |
| 	    fi
 | |
| 
 | |
| 	    AC_DEFINE(NDEBUG, 1,
 | |
| 		[Define to disable debugging assertions.])
 | |
| 	    debug=""
 | |
| 	    if test "$GCC" = yes
 | |
| 	    then
 | |
| 		optimize="$optimize -fomit-frame-pointer"
 | |
| 	    fi
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| AC_MSG_RESULT(${enable_debugging-default})
 | |
| 
 | |
| AC_MSG_CHECKING(whether to enable experimental code)
 | |
| AC_ARG_ENABLE(experimental, AC_HELP_STRING([--enable-experimental],
 | |
| 			    [enable experimental code]),
 | |
| [
 | |
|     case "$enableval" in
 | |
| 	yes)
 | |
| 	    AC_DEFINE(EXPERIMENTAL, 1,
 | |
| 		[Define to enable experimental code.])
 | |
| 	    ;;
 | |
|     esac
 | |
| ])
 | |
| AC_MSG_RESULT(${enable_experimental-no})
 | |
| 
 | |
| dnl Create output files.
 | |
| 
 | |
| test -n "$arch"     && CFLAGS="$CFLAGS $arch"
 | |
| test -n "$debug"    && CFLAGS="$CFLAGS $debug"
 | |
| test -n "$optimize" && CFLAGS="$CFLAGS $optimize"
 | |
| test -n "$profile"  && CFLAGS="$CFLAGS $profile" LDFLAGS="$LDFLAGS $profile"
 | |
| 
 | |
| dnl LTLIBOBJS=`echo "$LIBOBJS" | sed -e 's/\.o/.lo/g'`
 | |
| dnl AC_SUBST(LTLIBOBJS)
 | |
| 
 | |
| AC_CONFIG_FILES([Makefile msvc++/Makefile  \
 | |
| 	libmad.list])
 | |
| AC_OUTPUT
 |