📄 configure.ac
字号:
dnl -*- m4 -*-dnldnl libmad - MPEG audio decoder librarydnl Copyright (C) 2000-2004 Underbit Technologies, Inc.dnldnl This program is free software; you can redistribute it and/or modifydnl it under the terms of the GNU General Public License as published bydnl the Free Software Foundation; either version 2 of the License, ordnl (at your option) any later version.dnldnl This program is distributed in the hope that it will be useful,dnl but WITHOUT ANY WARRANTY; without even the implied warranty ofdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See thednl GNU General Public License for more details.dnldnl You should have received a copy of the GNU General Public Licensednl along with this program; if not, write to the Free Softwarednl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAdnlAC_REVISION([$Id: configure.ac,v 1.9 2004/01/23 09:41:32 rob Exp $])dnldnl 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_AUTOMAKEAM_CONFIG_HEADER([config.h])dnl System type.AC_CANONICAL_HOSTdnl Checks for programs.AC_PROG_CCAM_PROG_ASif test "$GCC" = yesthen case "$host" in *-*-mingw*) case "$build" in *-*-cygwin*) CPPFLAGS="$CPPFLAGS -mno-cygwin" LDFLAGS="$LDFLAGS -mno-cygwin" ;; esac esacdnl case "$host" indnl *-*-cygwin* | *-*-mingw*)dnl LDFLAGS="$LDFLAGS -no-undefined -mdll"dnl ;;dnl esacfidnl Support for libtool.dnl AC_DISABLE_SHAREDdnl AC_LIBTOOL_WIN32_DLLAC_PROG_LIBTOOLAC_SUBST(LIBTOOL_DEPS)dnl Compiler options.arch=""debug=""optimize=""profile=""set -- $CFLAGSCFLAGS=""if test "$GCC" = yesthen CFLAGS="-Wall"fiwhile test $# -gt 0do 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 ;; esacdoneif test "$GCC" = yesthen 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" optimize="$optimize -fforce-mem" 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 ;; esacficase "$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.]) ;;esacdnl Checks for header files.AC_HEADER_STDCAC_HEADER_SYS_WAITAC_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_CONSTAC_C_INLINEAC_C_BIGENDIANAC_TYPE_PID_TAC_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 optionsAC_CACHE_SAVEAC_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)fiAC_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" = yesthen 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... esacfiAC_MSG_RESULT(${FPM=DEFAULT})if test "$FPM" = "DEFAULT"then AC_MSG_WARN([default fixed-point math will yield limited accuracy])fiFPM="-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" = yesthen 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" ;; esacfiAC_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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -