annotate src/libmad-0.15.1b/configure.ac @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +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