annotate src/libmad-0.15.1b/configure.ac @ 11:4d14605afe75

Fixes, ranlibs
author Chris Cannam
date Wed, 20 Mar 2013 15:56:36 +0000
parents c7265573341e
children
rev   line source
Chris@0 1 dnl -*- m4 -*-
Chris@0 2 dnl
Chris@0 3 dnl libmad - MPEG audio decoder library
Chris@0 4 dnl Copyright (C) 2000-2004 Underbit Technologies, Inc.
Chris@0 5 dnl
Chris@0 6 dnl This program is free software; you can redistribute it and/or modify
Chris@0 7 dnl it under the terms of the GNU General Public License as published by
Chris@0 8 dnl the Free Software Foundation; either version 2 of the License, or
Chris@0 9 dnl (at your option) any later version.
Chris@0 10 dnl
Chris@0 11 dnl This program is distributed in the hope that it will be useful,
Chris@0 12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 14 dnl GNU General Public License for more details.
Chris@0 15 dnl
Chris@0 16 dnl You should have received a copy of the GNU General Public License
Chris@0 17 dnl along with this program; if not, write to the Free Software
Chris@0 18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Chris@0 19 dnl
Chris@0 20 AC_REVISION([$Id: configure.ac,v 1.9 2004/01/23 09:41:32 rob Exp $])dnl
Chris@0 21
Chris@0 22 dnl Process this file with autoconf to produce a configure script.
Chris@0 23
Chris@0 24 AC_INIT([MPEG Audio Decoder], [0.15.1b], [support@underbit.com], [libmad])
Chris@0 25 AC_PREREQ(2.53)
Chris@0 26
Chris@0 27 AC_CONFIG_SRCDIR([decoder.h])
Chris@0 28
Chris@0 29 AM_INIT_AUTOMAKE
Chris@0 30
Chris@0 31 AM_CONFIG_HEADER([config.h])
Chris@0 32
Chris@0 33 dnl System type.
Chris@0 34
Chris@0 35 AC_CANONICAL_HOST
Chris@0 36
Chris@0 37 dnl Checks for programs.
Chris@0 38
Chris@0 39 AC_PROG_CC
Chris@0 40 AM_PROG_AS
Chris@0 41
Chris@0 42 if test "$GCC" = yes
Chris@0 43 then
Chris@0 44 case "$host" in
Chris@0 45 *-*-mingw*)
Chris@0 46 case "$build" in
Chris@0 47 *-*-cygwin*)
Chris@0 48 CPPFLAGS="$CPPFLAGS -mno-cygwin"
Chris@0 49 LDFLAGS="$LDFLAGS -mno-cygwin"
Chris@0 50 ;;
Chris@0 51 esac
Chris@0 52 esac
Chris@0 53
Chris@0 54 dnl case "$host" in
Chris@0 55 dnl *-*-cygwin* | *-*-mingw*)
Chris@0 56 dnl LDFLAGS="$LDFLAGS -no-undefined -mdll"
Chris@0 57 dnl ;;
Chris@0 58 dnl esac
Chris@0 59 fi
Chris@0 60
Chris@0 61 dnl Support for libtool.
Chris@0 62
Chris@0 63 dnl AC_DISABLE_SHARED
Chris@0 64 dnl AC_LIBTOOL_WIN32_DLL
Chris@0 65 AC_PROG_LIBTOOL
Chris@0 66
Chris@0 67 AC_SUBST(LIBTOOL_DEPS)
Chris@0 68
Chris@0 69 dnl Compiler options.
Chris@0 70
Chris@0 71 arch=""
Chris@0 72 debug=""
Chris@0 73 optimize=""
Chris@0 74 profile=""
Chris@0 75
Chris@0 76 set -- $CFLAGS
Chris@0 77 CFLAGS=""
Chris@0 78
Chris@0 79 if test "$GCC" = yes
Chris@0 80 then
Chris@0 81 CFLAGS="-Wall"
Chris@0 82 fi
Chris@0 83
Chris@0 84 while test $# -gt 0
Chris@0 85 do
Chris@0 86 case "$1" in
Chris@0 87 -Wall)
Chris@0 88 if test "$GCC" = yes
Chris@0 89 then
Chris@0 90 :
Chris@0 91 else
Chris@0 92 CFLAGS="$CFLAGS $1"
Chris@0 93 fi
Chris@0 94 shift
Chris@0 95 ;;
Chris@0 96 -g)
Chris@0 97 debug="-g"
Chris@0 98 shift
Chris@0 99 ;;
Chris@0 100 -mno-cygwin)
Chris@0 101 shift
Chris@0 102 ;;
Chris@0 103 -m*)
Chris@0 104 arch="$arch $1"
Chris@0 105 shift
Chris@0 106 ;;
Chris@0 107 -O2)
Chris@0 108 optimize="-O"
Chris@0 109 shift
Chris@0 110 ;;
Chris@0 111 -fomit-frame-pointer)
Chris@0 112 shift
Chris@0 113 ;;
Chris@0 114 -O*|-f*)
Chris@0 115 optimize="$optimize $1"
Chris@0 116 shift
Chris@0 117 ;;
Chris@0 118 *)
Chris@0 119 CFLAGS="$CFLAGS $1"
Chris@0 120 shift
Chris@0 121 ;;
Chris@0 122 esac
Chris@0 123 done
Chris@0 124
Chris@0 125 if test "$GCC" = yes
Chris@0 126 then
Chris@0 127 if test -z "$arch"
Chris@0 128 then
Chris@0 129 case "$host" in
Chris@0 130 i386-*) ;;
Chris@0 131 i?86-*) arch="-march=i486" ;;
Chris@0 132 arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
Chris@0 133 armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
Chris@0 134 powerpc-*) ;;
Chris@0 135 mips*-agenda-*) arch="-mcpu=vr4100" ;;
Chris@0 136 mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
Chris@0 137 esac
Chris@0 138 fi
Chris@0 139
Chris@0 140 case "$optimize" in
Chris@0 141 -O|"-O "*)
Chris@0 142 optimize="-O"
Chris@0 143 optimize="$optimize -fforce-mem"
Chris@0 144 optimize="$optimize -fforce-addr"
Chris@0 145 : #x optimize="$optimize -finline-functions"
Chris@0 146 : #- optimize="$optimize -fstrength-reduce"
Chris@0 147 optimize="$optimize -fthread-jumps"
Chris@0 148 optimize="$optimize -fcse-follow-jumps"
Chris@0 149 optimize="$optimize -fcse-skip-blocks"
Chris@0 150 : #x optimize="$optimize -frerun-cse-after-loop"
Chris@0 151 : #x optimize="$optimize -frerun-loop-opt"
Chris@0 152 : #x optimize="$optimize -fgcse"
Chris@0 153 optimize="$optimize -fexpensive-optimizations"
Chris@0 154 optimize="$optimize -fregmove"
Chris@0 155 : #* optimize="$optimize -fdelayed-branch"
Chris@0 156 : #x optimize="$optimize -fschedule-insns"
Chris@0 157 optimize="$optimize -fschedule-insns2"
Chris@0 158 : #? optimize="$optimize -ffunction-sections"
Chris@0 159 : #? optimize="$optimize -fcaller-saves"
Chris@0 160 : #> optimize="$optimize -funroll-loops"
Chris@0 161 : #> optimize="$optimize -funroll-all-loops"
Chris@0 162 : #x optimize="$optimize -fmove-all-movables"
Chris@0 163 : #x optimize="$optimize -freduce-all-givs"
Chris@0 164 : #? optimize="$optimize -fstrict-aliasing"
Chris@0 165 : #* optimize="$optimize -fstructure-noalias"
Chris@0 166
Chris@0 167 case "$host" in
Chris@0 168 arm*-*)
Chris@0 169 optimize="$optimize -fstrength-reduce"
Chris@0 170 ;;
Chris@0 171 mips*-*)
Chris@0 172 optimize="$optimize -fstrength-reduce"
Chris@0 173 optimize="$optimize -finline-functions"
Chris@0 174 ;;
Chris@0 175 i?86-*)
Chris@0 176 optimize="$optimize -fstrength-reduce"
Chris@0 177 ;;
Chris@0 178 powerpc-apple-*)
Chris@0 179 # this triggers an internal compiler error with gcc2
Chris@0 180 : #optimize="$optimize -fstrength-reduce"
Chris@0 181
Chris@0 182 # this is really only beneficial with gcc3
Chris@0 183 : #optimize="$optimize -finline-functions"
Chris@0 184 ;;
Chris@0 185 *)
Chris@0 186 # this sometimes provokes bugs in gcc 2.95.2
Chris@0 187 : #optimize="$optimize -fstrength-reduce"
Chris@0 188 ;;
Chris@0 189 esac
Chris@0 190 ;;
Chris@0 191 esac
Chris@0 192 fi
Chris@0 193
Chris@0 194 case "$host" in
Chris@0 195 mips*-agenda-*)
Chris@0 196 AC_DEFINE(HAVE_MADD16_ASM, 1,
Chris@0 197 [Define if your MIPS CPU supports a 2-operand MADD16 instruction.])
Chris@0 198 ;;
Chris@0 199 mips*-luxsonor-*)
Chris@0 200 AC_DEFINE(HAVE_MADD_ASM, 1,
Chris@0 201 [Define if your MIPS CPU supports a 2-operand MADD instruction.])
Chris@0 202 ;;
Chris@0 203 esac
Chris@0 204
Chris@0 205 dnl Checks for header files.
Chris@0 206
Chris@0 207 AC_HEADER_STDC
Chris@0 208 AC_HEADER_SYS_WAIT
Chris@0 209 AC_CHECK_HEADERS(assert.h limits.h unistd.h sys/types.h fcntl.h errno.h)
Chris@0 210
Chris@0 211 dnl Checks for typedefs, structures, and compiler characteristics.
Chris@0 212
Chris@0 213 AC_C_CONST
Chris@0 214 AC_C_INLINE
Chris@0 215 AC_C_BIGENDIAN
Chris@0 216 AC_TYPE_PID_T
Chris@0 217
Chris@0 218 AC_CHECK_SIZEOF(int, 2)
Chris@0 219 AC_CHECK_SIZEOF(long, 4)
Chris@0 220 AC_CHECK_SIZEOF(long long, 8)
Chris@0 221
Chris@0 222 dnl Checks for library functions.
Chris@0 223
Chris@0 224 AC_CHECK_FUNCS(waitpid fcntl pipe fork)
Chris@0 225
Chris@0 226 dnl Other options.
Chris@0 227
Chris@0 228 AC_SUBST(FPM)
Chris@0 229 AC_SUBST(ASO)
Chris@0 230 AC_SUBST(ASO_OBJS)
Chris@0 231
Chris@0 232 dnl handle --enable and --disable options
Chris@0 233
Chris@0 234 AC_CACHE_SAVE
Chris@0 235
Chris@0 236 AC_MSG_CHECKING(whether to optimize for speed or for accuracy)
Chris@0 237
Chris@0 238 AC_ARG_ENABLE(speed, AC_HELP_STRING([--enable-speed],
Chris@0 239 [optimize for speed over accuracy]),
Chris@0 240 [
Chris@0 241 case "$enableval" in
Chris@0 242 yes)
Chris@0 243 optimize_for="speed"
Chris@0 244 AC_DEFINE(OPT_SPEED, 1,
Chris@0 245 [Define to optimize for speed over accuracy.])
Chris@0 246 ;;
Chris@0 247 esac
Chris@0 248 ])
Chris@0 249
Chris@0 250 AC_ARG_ENABLE(accuracy, AC_HELP_STRING([--enable-accuracy],
Chris@0 251 [optimize for accuracy over speed]),
Chris@0 252 [
Chris@0 253 case "$enableval" in
Chris@0 254 yes)
Chris@0 255 if test "$optimize_for" = "speed"
Chris@0 256 then
Chris@0 257 optimize_for="both"
Chris@0 258 else
Chris@0 259 optimize_for="accuracy"
Chris@0 260 fi
Chris@0 261 AC_DEFINE(OPT_ACCURACY, 1,
Chris@0 262 [Define to optimize for accuracy over speed.])
Chris@0 263 ;;
Chris@0 264 esac
Chris@0 265 ])
Chris@0 266
Chris@0 267 AC_MSG_RESULT(${optimize_for-default})
Chris@0 268
Chris@0 269 if test "$optimize_for" = "both"
Chris@0 270 then
Chris@0 271 AC_MSG_ERROR(cannot optimize for both speed and accuracy)
Chris@0 272 fi
Chris@0 273
Chris@0 274 AC_MSG_CHECKING(for architecture-specific fixed-point math routines)
Chris@0 275 AC_ARG_ENABLE(fpm, AC_HELP_STRING([--enable-fpm=ARCH],
Chris@0 276 [use ARCH-specific fixed-point math routines
Chris@0 277 (one of: intel, arm, mips, sparc, ppc, 64bit, default)]),
Chris@0 278 [
Chris@0 279 case "$enableval" in
Chris@0 280 yes) ;;
Chris@0 281 no|default|approx) FPM="DEFAULT" ;;
Chris@0 282 intel|i?86) FPM="INTEL" ;;
Chris@0 283 arm) FPM="ARM" ;;
Chris@0 284 mips) FPM="MIPS" ;;
Chris@0 285 sparc) FPM="SPARC" ;;
Chris@0 286 ppc|powerpc) FPM="PPC" ;;
Chris@0 287 64bit) FPM="64BIT" ;;
Chris@0 288 float) FPM="FLOAT" ;;
Chris@0 289 *)
Chris@0 290 AC_MSG_RESULT(failed)
Chris@0 291 AC_MSG_ERROR([bad --enable-fpm option])
Chris@0 292 ;;
Chris@0 293 esac
Chris@0 294 ])
Chris@0 295
Chris@0 296 if test -z "$FPM" && test "$GCC" = yes
Chris@0 297 then
Chris@0 298 case "$host" in
Chris@0 299 i?86-*) FPM="INTEL" ;;
Chris@0 300 arm*-*) FPM="ARM" ;;
Chris@0 301 mips*-*) FPM="MIPS" ;;
Chris@0 302 sparc*-*) FPM="SPARC" ;;
Chris@0 303 powerpc*-*) FPM="PPC" ;;
Chris@0 304 # FIXME: need to test for 64-bit long long...
Chris@0 305 esac
Chris@0 306 fi
Chris@0 307
Chris@0 308 AC_MSG_RESULT(${FPM=DEFAULT})
Chris@0 309
Chris@0 310 if test "$FPM" = "DEFAULT"
Chris@0 311 then
Chris@0 312 AC_MSG_WARN([default fixed-point math will yield limited accuracy])
Chris@0 313 fi
Chris@0 314
Chris@0 315 FPM="-DFPM_$FPM"
Chris@0 316
Chris@0 317 AC_ARG_ENABLE(sso, AC_HELP_STRING([--enable-sso],
Chris@0 318 [use subband synthesis optimization]),
Chris@0 319 [
Chris@0 320 case "$enableval" in
Chris@0 321 yes)
Chris@0 322 AC_DEFINE(OPT_SSO, 1,
Chris@0 323 [Define to enable a fast subband synthesis approximation optimization.])
Chris@0 324 ;;
Chris@0 325 esac
Chris@0 326 ])
Chris@0 327
Chris@0 328 AC_ARG_ENABLE(aso, AC_HELP_STRING([--disable-aso],
Chris@0 329 [disable architecture-specific optimizations]),
Chris@0 330 [], [enable_aso=yes])
Chris@0 331
Chris@0 332 if test "$enable_aso" = yes
Chris@0 333 then
Chris@0 334 case "$host" in
Chris@0 335 i?86-*)
Chris@0 336 : #ASO="$ASO -DASO_INTERLEAVE1"
Chris@0 337 ASO="$ASO -DASO_ZEROCHECK"
Chris@0 338 : #not yet #ASO="$ASO -DASO_SYNTH"
Chris@0 339 : #not yet #ASO_OBJS="synth_mmx.lo"
Chris@0 340 ;;
Chris@0 341 arm*-*)
Chris@0 342 ASO="$ASO -DASO_INTERLEAVE1"
Chris@0 343 ASO="$ASO -DASO_IMDCT"
Chris@0 344 ASO_OBJS="imdct_l_arm.lo"
Chris@0 345 ;;
Chris@0 346 mips*-*)
Chris@0 347 ASO="$ASO -DASO_INTERLEAVE2"
Chris@0 348 ASO="$ASO -DASO_ZEROCHECK"
Chris@0 349 ;;
Chris@0 350 esac
Chris@0 351 fi
Chris@0 352
Chris@0 353 AC_MSG_CHECKING(for ISO/IEC interpretation)
Chris@0 354 AC_ARG_ENABLE(strict-iso, AC_HELP_STRING([--enable-strict-iso],
Chris@0 355 [use strict ISO/IEC interpretations]),
Chris@0 356 [
Chris@0 357 case "$enableval" in
Chris@0 358 yes)
Chris@0 359 AC_DEFINE(OPT_STRICT, 1,
Chris@0 360 [Define to influence a strict interpretation of the ISO/IEC standards,
Chris@0 361 even if this is in opposition with best accepted practices.])
Chris@0 362 interpretation="strict"
Chris@0 363 ;;
Chris@0 364 esac
Chris@0 365 ])
Chris@0 366 AC_MSG_RESULT(${interpretation-best accepted practices})
Chris@0 367
Chris@0 368 AC_MSG_CHECKING(whether to enable profiling)
Chris@0 369 AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling],
Chris@0 370 [generate profiling code]),
Chris@0 371 [
Chris@0 372 case "$enableval" in
Chris@0 373 yes) profile="-pg" ;;
Chris@0 374 esac
Chris@0 375 ])
Chris@0 376 AC_MSG_RESULT(${enable_profiling-no})
Chris@0 377
Chris@0 378 AC_MSG_CHECKING(whether to enable debugging)
Chris@0 379 AC_ARG_ENABLE(debugging, AC_HELP_STRING([--enable-debugging],
Chris@0 380 [enable diagnostic debugging support])
Chris@0 381 AC_HELP_STRING([--disable-debugging],
Chris@0 382 [do not enable debugging and use more optimization]),
Chris@0 383 [
Chris@0 384 case "$enableval" in
Chris@0 385 yes)
Chris@0 386 AC_DEFINE(DEBUG, 1,
Chris@0 387 [Define to enable diagnostic debugging support.])
Chris@0 388 optimize=""
Chris@0 389 ;;
Chris@0 390 no)
Chris@0 391 if test -n "$profile"
Chris@0 392 then
Chris@0 393 AC_MSG_ERROR(--enable-profiling and --disable-debugging are incompatible)
Chris@0 394 fi
Chris@0 395
Chris@0 396 AC_DEFINE(NDEBUG, 1,
Chris@0 397 [Define to disable debugging assertions.])
Chris@0 398 debug=""
Chris@0 399 if test "$GCC" = yes
Chris@0 400 then
Chris@0 401 optimize="$optimize -fomit-frame-pointer"
Chris@0 402 fi
Chris@0 403 ;;
Chris@0 404 esac
Chris@0 405 ])
Chris@0 406 AC_MSG_RESULT(${enable_debugging-default})
Chris@0 407
Chris@0 408 AC_MSG_CHECKING(whether to enable experimental code)
Chris@0 409 AC_ARG_ENABLE(experimental, AC_HELP_STRING([--enable-experimental],
Chris@0 410 [enable experimental code]),
Chris@0 411 [
Chris@0 412 case "$enableval" in
Chris@0 413 yes)
Chris@0 414 AC_DEFINE(EXPERIMENTAL, 1,
Chris@0 415 [Define to enable experimental code.])
Chris@0 416 ;;
Chris@0 417 esac
Chris@0 418 ])
Chris@0 419 AC_MSG_RESULT(${enable_experimental-no})
Chris@0 420
Chris@0 421 dnl Create output files.
Chris@0 422
Chris@0 423 test -n "$arch" && CFLAGS="$CFLAGS $arch"
Chris@0 424 test -n "$debug" && CFLAGS="$CFLAGS $debug"
Chris@0 425 test -n "$optimize" && CFLAGS="$CFLAGS $optimize"
Chris@0 426 test -n "$profile" && CFLAGS="$CFLAGS $profile" LDFLAGS="$LDFLAGS $profile"
Chris@0 427
Chris@0 428 dnl LTLIBOBJS=`echo "$LIBOBJS" | sed -e 's/\.o/.lo/g'`
Chris@0 429 dnl AC_SUBST(LTLIBOBJS)
Chris@0 430
Chris@0 431 AC_CONFIG_FILES([Makefile msvc++/Makefile \
Chris@0 432 libmad.list])
Chris@0 433 AC_OUTPUT