configure.ac 5.92 KB
Newer Older
Gildas Bazin's avatar
Gildas Bazin committed
1 2
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.54)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
3
AC_INIT([libdca],[0.0.5])
4
AC_CONFIG_SRCDIR([src/dcadec.c])
5 6
AC_CONFIG_AUX_DIR(.auto)
AC_CONFIG_FILES([Makefile include/Makefile test/Makefile
7
    src/Makefile libdca/Makefile libao/Makefile vc++/Makefile
8
    libdca/libdca.pc libdca/libdts.pc])
9
AM_INIT_AUTOMAKE([1.5 dist-bzip2 no-dist-gzip check-news -Wall])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
10
AC_CONFIG_HEADERS([config.h])
Gildas Bazin's avatar
Gildas Bazin committed
11 12 13 14 15
AM_MAINTAINER_MODE
AC_CANONICAL_HOST

dnl Checks for compiler
AC_PROG_CC
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
16
AM_PROG_CC_C_O
Gildas Bazin's avatar
Gildas Bazin committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
AC_PROG_GCC_TRADITIONAL

dnl CC-specific flags
AC_SUBST([OPT_CFLAGS])
if test x"$GCC" = x"yes"; then

    dnl GCC-specific flags

    dnl -Wall
    dnl -Werror moved to the end to not disturb the configure script
    TRY_CFLAGS="$OPT_CFLAGS -Wall"
    AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS])

    dnl -O3
    changequote(<<,>>)
    TRY_CFLAGS=`echo "$OPT_CFLAGS $CFLAGS"|sed "s/-O[0-9]*//g"`
    changequote([,])
    TRY_CFLAGS="$TRY_CFLAGS -O3"
    AC_TRY_CFLAGS([$TRY_CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS; CFLAGS=""])

    AC_ARG_ENABLE([debug],
	[  --enable-debug          debug mode configuration])
    if test x"$enable_debug" = x"yes"; then
	AC_DEFINE([DEBUG],,[debug mode configuration])
    else
	dnl -fomit-frame-pointer
	TRY_CFLAGS="$OPT_CFLAGS -fomit-frame-pointer"
	AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS])
    fi

    dnl arch-specific flags
    case "$host" in
    i?86-* | k?-*)
	case "$host" in
51 52 53 54 55
	i386-*) TRY_CFLAGS="$OPT_CFLAGS -mtune=i386";;
	i486-*) TRY_CFLAGS="$OPT_CFLAGS -mtune=i486";;
	i586-*) TRY_CFLAGS="$OPT_CFLAGS -mtune=pentium";;
	i686-*) TRY_CFLAGS="$OPT_CFLAGS -mtune=pentiumpro";;
	k6-*)   TRY_CFLAGS="$OPT_CFLAGS -mtune=k6";;
Gildas Bazin's avatar
Gildas Bazin committed
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
	esac
	AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS]);;
    sparc-* | sparc64-*)
	TRY_CFLAGS="$OPT_CFLAGS -mtune=ultrasparc"
	AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS]);;
    esac
elif test x"$CC" = x"tendracc"; then
    dnl TenDRA portability checking compiler
    TENDRA=yes
    OPT_CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE"
    enable_mlib=no
    enable_oss=no
    enable_solaris_audio=no
elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then
    dnl Intel C++ compiler
    OPT_CFLAGS="-g -O3 -unroll -ip"; CFLAGS=""
else
    dnl non-gcc flags - we probably need exact configuration triplets here.
    case "$host" in
    sparc-sun-solaris*)
	TRY_CFLAGS="$OPT_CFLAGS -xCC -fast -xO5"
	AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS]);;
    esac
fi

81 82 83 84 85 86 87
# dnl Checks for libtool - this must be done after we set cflags
# AC_LIBTOOL_WIN32_DLL
m4_undefine([AC_PROG_CXX])
m4_defun([AC_PROG_CXX],[])
m4_undefine([AC_PROG_F77])
m4_defun([AC_PROG_F77],[])
AC_PROG_LIBTOOL
Gildas Bazin's avatar
Gildas Bazin committed
88 89

dnl Checks for libraries.
Eric Petit's avatar
Eric Petit committed
90 91 92
AC_CHECK_LIB(m,cos,[
    LIBAO_LIBS="-lm"
    AC_SUBST([LIBAO_LIBS])
93 94
    LIBDCA_LIBS="-lm"
    AC_SUBST([LIBDCA_LIBS])
Eric Petit's avatar
Eric Petit committed
95 96 97
    COMPARE_LIBS="-lm"
    AC_SUBST([COMPARE_LIBS])
])
Gildas Bazin's avatar
Gildas Bazin committed
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

dnl Checks for header files.
AC_CHECK_HEADERS([sys/time.h time.h sys/timeb.h io.h])
AC_CHECK_TYPES([struct timeval], [], [],
    [#include <sys/time.h>
    #include <time.h>])
AC_CHECK_GENERATE_INTTYPES([include])

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_ALWAYS_INLINE
AC_C_RESTRICT
AC_C_BUILTIN_EXPECT
AC_TYPE_SIZE_T
AC_C_BIGENDIAN

dnl Checks for library functions.
AC_CHECK_FUNCS([memalign gettimeofday ftime])
AC_TYPE_SIGNAL

118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
AC_SUBST([LIBDCA_CFLAGS])
AC_SUBST([LIBDCA_LIBS])

dnl avoid -fPIC when possible
AS_IF([test "x${with_pic}" = "xno"],
  [AC_LIBTOOL_NON_PIC([LIBDCA_CFLAGS="$LIBDCA_CFLAGS -prefer-non-pic"])
])

AC_ARG_ENABLE([fixed],
    [  --enable-fixed          use fixed-point (integer-based) arithmetic])
AC_ARG_ENABLE([double],
    [  --enable-double         use double-precision samples])

if test x"$enable_fixed" = x"yes"; then
    AC_DEFINE([LIBDCA_FIXED],,[use fixed-point arithmetic])
elif test x"$enable_double" = x"yes"; then
    AC_DEFINE([LIBDCA_DOUBLE],,[a52 sample precision])
fi

AC_SUBST([LIBAO_LIBS])

dnl check for oss
AC_ARG_ENABLE([oss],
    [  --disable-oss           make a version not using oss])
if test x"$enable_oss" != x"no"; then
    case "$host" in
    *-linux*|*-openbsd*|*-freebsd*|*-netbsd*|*-bsdi*)
        AC_DEFINE([LIBAO_OSS],,[libao OSS support])
        AC_CHECK_LIB([ossaudio],[_oss_ioctl],
            [LIBAO_LIBS="$LIBAO_LIBS -lossaudio"]);;
    esac
fi

dnl check for solaris
AC_ARG_ENABLE([solaris-audio],
    [  --disable-solaris-audio make a version not using solaris audio])
if test x"$enable_solaris_audio" != x"no"; then
    case "$host" in
    *-sun-solaris*)
        AC_DEFINE([LIBAO_SOLARIS],,[libao solaris support]);;
    esac
fi

dnl check for al
AC_ARG_ENABLE([al-audio],
    [  --disable-al-audio      make a version not using al audio])
if test x"$enable_al" != x"no"; then
    case "$host" in
    *-sgi-irix*)
        LIBAO_LIBS="$LIBAO_LIBS -laudio"
        AC_DEFINE([LIBAO_AL],,[libao al support]);;
    esac
fi

dnl check for win32
AC_ARG_ENABLE([win],
    [  --disable-win           make a version not using win audio])
if test x"$enable_win" != x"no"; then
    case "$host" in
    *-mingw32*|*-cygwin)
        LIBAO_LIBS="$LIBAO_LIBS -lwinmm"
        AC_DEFINE([LIBAO_WIN],,[libao win support]);;
    esac
fi
Gildas Bazin's avatar
Gildas Bazin committed
182 183 184 185 186 187 188 189 190 191 192 193

AC_ARG_ENABLE([warnings],
    [  --enable-warnings       treat warnings as errors])
if test x"$enable_warnings" = x"yes" -a x"$GCC" = x"yes"; then
    dnl compiler warnings
    TRY_CFLAGS="$OPT_CFLAGS -Werror"
    AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS=$TRY_CFLAGS])
elif test x"$TENDRA" = x"yes"; then
    dnl TenDRA portability checking compiler
    OPT_CFLAGS="$OPT_CFLAGS -DTenDRA_check"
fi

194 195 196 197 198 199 200 201 202 203
AC_SUBST([DCADEC_CFLAGS])

DCADEC_CFLAGS="$OPT_CFLAGS"

AC_ARG_ENABLE([gprof],[  --enable-gprof          make a version using gprof])
if test x"$enable_gprof" = x"yes"; then
    AC_DEFINE([DCADEC_GPROF],,[a52dec profiling])
    DCADEC_CFLAGS=`echo "$DCADEC_CFLAGS"|sed "s/-fomit-frame-pointer//g"`
    DCADEC_CFLAGS="$DCADEC_CFLAGS -p"
fi
Gildas Bazin's avatar
Gildas Bazin committed
204 205 206 207

AC_C_ATTRIBUTE_ALIGNED

AC_OUTPUT