| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 1 | dnl Process this file with autoconf to produce a configure script. -*-m4-*- |
| 2 | |
| Jean-Marc Valin | 842b445 | 2007-11-29 17:19:47 +1100 | [diff] [blame] | 3 | AC_INIT(libcelt/arch.h) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 4 | |
| 5 | AM_CONFIG_HEADER([config.h]) |
| 6 | |
| 7 | CELT_MAJOR_VERSION=0 |
| Jean-Marc Valin | f080a15 | 2010-04-14 17:45:27 -0400 | [diff] [blame^] | 8 | CELT_MINOR_VERSION=8 |
| 9 | CELT_MICRO_VERSION=0 |
| 10 | CELT_EXTRA_VERSION=-git |
| Jean-Marc Valin | 842b445 | 2007-11-29 17:19:47 +1100 | [diff] [blame] | 11 | CELT_VERSION=$CELT_MAJOR_VERSION.$CELT_MINOR_VERSION.$CELT_MICRO_VERSION$CELT_EXTRA_VERSION |
| Thorvald Natvig | df72655 | 2010-01-16 08:06:41 -0500 | [diff] [blame] | 12 | LIBCELT_SUFFIX=0 |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 13 | |
| 14 | CELT_LT_CURRENT=0 |
| 15 | CELT_LT_REVISION=0 |
| 16 | CELT_LT_AGE=0 |
| 17 | |
| 18 | AC_SUBST(CELT_LT_CURRENT) |
| 19 | AC_SUBST(CELT_LT_REVISION) |
| 20 | AC_SUBST(CELT_LT_AGE) |
| Thorvald Natvig | df72655 | 2010-01-16 08:06:41 -0500 | [diff] [blame] | 21 | AC_SUBST(LIBCELT_SUFFIX) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 22 | |
| 23 | # For automake. |
| 24 | VERSION=$CELT_VERSION |
| Jean-Marc Valin | 842b445 | 2007-11-29 17:19:47 +1100 | [diff] [blame] | 25 | PACKAGE=celt |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 26 | |
| 27 | AC_SUBST(CELT_VERSION) |
| 28 | |
| 29 | AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) |
| 30 | AM_MAINTAINER_MODE |
| 31 | |
| 32 | AC_CANONICAL_HOST |
| 33 | AM_PROG_LIBTOOL |
| 34 | |
| Jean-Marc Valin | eafbdd5 | 2009-04-27 19:35:09 -0400 | [diff] [blame] | 35 | AC_PROG_CC_C99 |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 36 | AC_C_BIGENDIAN |
| 37 | AC_C_CONST |
| 38 | AC_C_INLINE |
| 39 | AC_C_RESTRICT |
| 40 | |
| Peter Kirk | 19f9dc9 | 2008-06-06 14:38:38 +0200 | [diff] [blame] | 41 | AC_DEFINE([CELT_BUILD], [], [This is a build of CELT]) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 42 | |
| 43 | AC_MSG_CHECKING(for C99 variable-size arrays) |
| 44 | AC_TRY_COMPILE( , [ |
| 45 | int foo=10; |
| 46 | int array[foo]; |
| 47 | ], |
| 48 | [has_var_arrays=yes;AC_DEFINE([VAR_ARRAYS], [], [Use C99 variable-size arrays]) |
| 49 | ], |
| 50 | has_var_arrays=no |
| 51 | ) |
| 52 | AC_MSG_RESULT($has_var_arrays) |
| 53 | |
| Jean-Marc Valin | e623312 | 2008-02-01 16:27:38 +1100 | [diff] [blame] | 54 | AC_CHECK_HEADERS([alloca.h getopt.h]) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 55 | AC_MSG_CHECKING(for alloca) |
| 56 | AC_TRY_COMPILE( [#include <alloca.h>], [ |
| 57 | int foo=10; |
| 58 | int *array = alloca(foo); |
| 59 | ], |
| 60 | [ |
| 61 | has_alloca=yes; |
| 62 | if test x$has_var_arrays = "xno" ; then |
| 63 | AC_DEFINE([USE_ALLOCA], [], [Make use of alloca]) |
| 64 | fi |
| 65 | ], |
| 66 | has_alloca=no |
| 67 | ) |
| 68 | AC_MSG_RESULT($has_alloca) |
| 69 | |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 70 | AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h) |
| 71 | |
| Gregory Maxwell | c8e200b | 2009-03-11 13:13:19 -0400 | [diff] [blame] | 72 | AS_IF([test "x$with_ogg" != xno], |
| 73 | [XIPH_PATH_OGG([tools="tools"], [tools=""])], |
| 74 | [tools=""]) |
| Jean-Marc Valin | e623312 | 2008-02-01 16:27:38 +1100 | [diff] [blame] | 75 | AC_SUBST(tools) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 76 | |
| 77 | AC_CHECK_LIB(m, sin) |
| 78 | |
| 79 | # Check for getopt_long; if not found, use included source. |
| 80 | AC_CHECK_FUNCS([getopt_long],, |
| 81 | [# FreeBSD has a gnugetopt library. |
| 82 | AC_CHECK_LIB([gnugetopt],[getopt_long], |
| 83 | [AC_DEFINE([HAVE_GETOPT_LONG])], |
| 84 | [# Use the GNU replacement. |
| 85 | AC_LIBOBJ(getopt) |
| 86 | AC_LIBOBJ(getopt1)])]) |
| 87 | |
| 88 | AC_CHECK_LIB(winmm, main) |
| 89 | |
| Jean-Marc Valin | 842b445 | 2007-11-29 17:19:47 +1100 | [diff] [blame] | 90 | AC_DEFINE_UNQUOTED(CELT_VERSION, "${CELT_VERSION}", [Complete version string]) |
| 91 | AC_DEFINE_UNQUOTED(CELT_MAJOR_VERSION, ${CELT_MAJOR_VERSION}, [Version major]) |
| 92 | AC_DEFINE_UNQUOTED(CELT_MINOR_VERSION, ${CELT_MINOR_VERSION}, [Version minor]) |
| 93 | AC_DEFINE_UNQUOTED(CELT_MICRO_VERSION, ${CELT_MICRO_VERSION}, [Version micro]) |
| 94 | AC_DEFINE_UNQUOTED(CELT_EXTRA_VERSION, "${CELT_EXTRA_VERSION}", [Version extra]) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 95 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 96 | has_float_approx=no |
| 97 | #case "$host_cpu" in |
| Gregory Maxwell | a80958b | 2009-06-29 12:48:57 -0400 | [diff] [blame] | 98 | #i[[3456]]86 | x86_64 | powerpc64 | powerpc32 | ia64) |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 99 | # has_float_approx=yes |
| 100 | # ;; |
| 101 | #esac |
| 102 | |
| 103 | ac_enable_fixed="no"; |
| 104 | AC_ARG_ENABLE(fixed-point, [ --enable-fixed-point compile as fixed-point], |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 105 | [if test "$enableval" = yes; then |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 106 | ac_enable_fixed="yes"; |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 107 | AC_DEFINE([FIXED_POINT], , [Compile as fixed-point]) |
| 108 | AC_DEFINE([DOUBLE_PRECISION], , [Compile as fixed-point]) |
| Jean-Marc Valin | 980ad38 | 2008-03-12 11:47:19 +1100 | [diff] [blame] | 109 | AC_DEFINE([MIXED_PRECISION], , [Compile as fixed-point]) |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 110 | else |
| 111 | AC_DEFINE([FLOATING_POINT], , [Compile as floating-point]) |
| 112 | fi], |
| 113 | AC_DEFINE([FLOATING_POINT], , [Compile as floating-point])) |
| 114 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 115 | ac_enable_fixed_debug="no" |
| 116 | AC_ARG_ENABLE(fixed-point-debug, [ --enable-fixed-point-debug debug fixed-point implementation], |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 117 | [if test "$enableval" = yes; then |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 118 | ac_enable_fixed_debug="yes" |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 119 | AC_DEFINE([FIXED_DEBUG], , [Debug fixed-point implementation]) |
| 120 | fi]) |
| 121 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 122 | float_approx=$has_float_approx |
| 123 | AC_ARG_ENABLE(float-approx, [ --disable-float-approx do not use fast approximations for floating point], |
| 124 | [ if test "$enableval" = yes; then |
| 125 | AC_WARN([Floating point approximations are not supported on all platforms.]) |
| 126 | float_approx=yes |
| 127 | else |
| 128 | float_approx=no |
| 129 | fi], [ float_approx=$has_float_approx ]) |
| 130 | |
| 131 | if test "x${float_approx}" = "xyes"; then |
| 132 | AC_DEFINE([FLOAT_APPROX], , [Float approximations]) |
| 133 | fi |
| 134 | |
| 135 | ac_enable_static_modes="no" |
| 136 | AC_ARG_ENABLE(static-modes, [ --enable-static-modes use pre-computed codec configurations], |
| Jean-Marc Valin | 980ad38 | 2008-03-12 11:47:19 +1100 | [diff] [blame] | 137 | [if test "$enableval" = yes; then |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 138 | ac_enable_static_modes="yes" |
| Jean-Marc Valin | 980ad38 | 2008-03-12 11:47:19 +1100 | [diff] [blame] | 139 | AC_DEFINE([STATIC_MODES], , [Static modes]) |
| 140 | fi]) |
| 141 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 142 | ac_enable_assertions="no" |
| 143 | AC_ARG_ENABLE(assertions, [ --enable-assertions enable additional software error checking], |
| Jean-Marc Valin | 4ff068e | 2008-03-15 23:34:39 +1100 | [diff] [blame] | 144 | [if test "$enableval" = yes; then |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 145 | ac_enable_assertions="yes" |
| Jean-Marc Valin | 4ff068e | 2008-03-15 23:34:39 +1100 | [diff] [blame] | 146 | AC_DEFINE([ENABLE_ASSERTIONS], , [Assertions]) |
| 147 | fi]) |
| 148 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 149 | ac_enable_new_plc="no" |
| 150 | AC_ARG_ENABLE(new-plc, [ --enable-new-plc enable the new loss concealment code], |
| Jean-Marc Valin | eafbdd5 | 2009-04-27 19:35:09 -0400 | [diff] [blame] | 151 | [if test "$enableval" = yes; then |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 152 | ac_enable_new_plc="yes" |
| Jean-Marc Valin | eafbdd5 | 2009-04-27 19:35:09 -0400 | [diff] [blame] | 153 | AC_DEFINE([NEW_PLC], , [Use new PLC code]) |
| 154 | fi]) |
| 155 | |
| Jean-Marc Valin | 4c9a007 | 2008-12-23 09:53:36 -0500 | [diff] [blame] | 156 | saved_CFLAGS="$CFLAGS" |
| 157 | CFLAGS="$CFLAGS -fvisibility=hidden" |
| 158 | AC_MSG_CHECKING([if ${CXX} supports -fvisibility=hidden]) |
| 159 | AC_COMPILE_IFELSE([char foo;], |
| 160 | [ AC_MSG_RESULT([yes]) |
| 161 | SYMBOL_VISIBILITY="-fvisibility=hidden" ], |
| 162 | AC_MSG_RESULT([no])) |
| 163 | CFLAGS="$saved_CFLAGS $SYMBOL_VISIBILITY" |
| 164 | AC_SUBST(SYMBOL_VISIBILITY) |
| 165 | |
| Jean-Marc Valin | 679f5cc | 2008-03-13 17:39:55 +1100 | [diff] [blame] | 166 | if test $ac_cv_c_compiler_gnu = yes ; then |
| Jean-Marc Valin | 4c9a007 | 2008-12-23 09:53:36 -0500 | [diff] [blame] | 167 | CFLAGS="$CFLAGS -W -Wstrict-prototypes -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wno-parentheses -Wno-unused-parameter -Wno-sign-compare" |
| Jean-Marc Valin | 679f5cc | 2008-03-13 17:39:55 +1100 | [diff] [blame] | 168 | fi |
| Jean-Marc Valin | 49ca99e | 2008-02-25 14:05:10 +1100 | [diff] [blame] | 169 | |
| Jean-Marc Valin | d9b9565 | 2008-08-31 23:34:47 -0400 | [diff] [blame] | 170 | AC_C99_FUNC_LRINTF |
| 171 | AC_C99_FUNC_LRINT |
| 172 | |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 173 | AC_CHECK_SIZEOF(short) |
| 174 | AC_CHECK_SIZEOF(int) |
| 175 | AC_CHECK_SIZEOF(long) |
| 176 | AC_CHECK_SIZEOF(long long) |
| 177 | |
| 178 | if test x$has_char16 = "xyes" ; then |
| 179 | case 1 in |
| 180 | $ac_cv_sizeof_short) SIZE16="short";; |
| 181 | $ac_cv_sizeof_int) SIZE16="int";; |
| 182 | esac |
| 183 | else |
| 184 | case 2 in |
| 185 | $ac_cv_sizeof_short) SIZE16="short";; |
| 186 | $ac_cv_sizeof_int) SIZE16="int";; |
| 187 | esac |
| 188 | fi |
| 189 | |
| 190 | if test x$has_char16 = "xyes" ; then |
| 191 | case 2 in |
| 192 | $ac_cv_sizeof_int) SIZE32="int";; |
| 193 | $ac_cv_sizeof_long) SIZE32="long";; |
| 194 | $ac_cv_sizeof_short) SIZE32="short";; |
| 195 | esac |
| 196 | else |
| 197 | case 4 in |
| 198 | $ac_cv_sizeof_int) SIZE32="int";; |
| 199 | $ac_cv_sizeof_long) SIZE32="long";; |
| 200 | $ac_cv_sizeof_short) SIZE32="short";; |
| 201 | esac |
| 202 | fi |
| 203 | |
| 204 | AC_SUBST(SIZE16) |
| 205 | AC_SUBST(SIZE32) |
| 206 | |
| Christopher Montgomery | 41d819d | 2009-01-13 13:39:53 -0500 | [diff] [blame] | 207 | AC_OUTPUT([Makefile libcelt/Makefile tests/Makefile |
| 208 | celt.pc tools/Makefile libcelt.spec ]) |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 209 | |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 210 | AC_MSG_RESULT([ |
| 211 | ------------------------------------------------------------------------ |
| 212 | $PACKAGE $VERSION: Automatic configuration OK. |
| 213 | |
| 214 | Compiler support: |
| 215 | |
| 216 | C99 var arrays: ................ ${has_var_arrays} |
| 217 | C99 lrintf: .................... ${ac_cv_c99_lrintf} |
| 218 | Alloca: ........................ ${has_alloca} |
| 219 | |
| 220 | General configuration: |
| 221 | |
| 222 | Fast float approximations: ..... ${float_approx} |
| 223 | Fixed point support: ........... ${ac_enable_fixed} |
| 224 | Fixed point debugging: ......... ${ac_enable_fixed_debug} |
| 225 | Static modes: .................. ${ac_enable_static_modes} |
| 226 | Assertion checking: ............ ${ac_enable_assertions} |
| 227 | New PLC: ....................... ${ac_enable_new_plc} |
| 228 | ------------------------------------------------------------------------ |
| 229 | ]) |
| 230 | |
| Jean-Marc Valin | e623312 | 2008-02-01 16:27:38 +1100 | [diff] [blame] | 231 | if test "x$tools" = "x"; then |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 232 | echo "**IMPORTANT**" |
| Gregory Maxwell | c8e200b | 2009-03-11 13:13:19 -0400 | [diff] [blame] | 233 | echo "You don't seem to have the development package for libogg (libogg-devel) available. Only the library will be built (no encoder/decoder executable)" |
| Jean-Marc Valin | 6359089 | 2007-11-29 17:01:16 +1100 | [diff] [blame] | 234 | echo "You can download libogg from http://www.vorbis.com/download.psp" |
| 235 | fi |
| 236 | |
| 237 | echo "Type \"make; make install\" to compile and install"; |
| Gregory Maxwell | 065bc15 | 2009-06-24 16:43:33 -0400 | [diff] [blame] | 238 | echo "Type \"make check\" to run the test suite"; |