configure.ac
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:10k
源码类别:

多媒体编程

开发平台:

Visual C++

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