dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(alsa-lib, 1.1.2)

AC_CONFIG_SRCDIR([src/control/control.c])
AC_CONFIG_MACRO_DIR([m4])

dnl *************************************************
dnl current:revision:age
dnl change (without API) = c:r+1:a
dnl change API = c+1:0:a
dnl add API = c+1:0:a+1
dnl remove API = c+1:0:0
dnl *************************************************
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE
eval LIBTOOL_VERSION_INFO="2:0:0"
dnl *************************************************
AM_CONDITIONAL([INSTALL_M4], [test -n "${ACLOCAL}"])

AM_MAINTAINER_MODE([enable])

# Test for new silent rules and enable only if they are available
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

AC_PREFIX_DEFAULT(/usr)

dnl Checks for programs.

AC_PROG_CC
AC_PROG_CPP
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_INSTALL
AC_PROG_LN_S 
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL

CC_NOUNDEFINED

dnl Checks for header files.
AC_HEADER_STDC
AC_CONFIG_HEADERS(include/config.h)

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_HEADER_TIME

dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNCS([uselocale])

SAVE_LIBRARY_VERSION
AC_SUBST(LIBTOOL_VERSION_INFO)

test "x$prefix" = xNONE && prefix=$ac_default_prefix

dnl Do not build static and shared libraries together
if test "$enable_static" = "$enable_shared" -a "$enable_static" = "yes"; then
cat <<EOF
  Please, do not try to compile static and shared libraries together.
  See INSTALL file for more details (do not use --enable-shared=yes with
  --enable-static=yes).
EOF
  exit 1
fi

dnl ALSA configuration directory
AC_ARG_WITH(configdir,
    AS_HELP_STRING([--with-configdir=dir],
	[path where ALSA config files are stored]),
    confdir="$withval", confdir="")
if test -z "$confdir"; then
    eval dir="$datadir"
    case "$dir" in
    /*) ;;
    *) dir="$prefix/share"
    esac
    confdir="$dir/alsa"
fi
ALSA_CONFIG_DIR="$confdir"
AC_DEFINE_UNQUOTED(ALSA_CONFIG_DIR, "$confdir", [directory containing ALSA configuration database])
AC_SUBST(ALSA_CONFIG_DIR)

dnl ALSA plugin directory
test "x$exec_prefix" = xNONE && exec_prefix=$prefix

AC_ARG_WITH(plugindir,
    AS_HELP_STRING([--with-plugindir=dir],
	[path where ALSA plugin files are stored]),
    plugindir="$withval", plugindir="")
if test -z "$plugindir"; then
    eval dir="$libdir"
    case "$dir" in
    /*) ;;
    *) dir="$dir"
    esac
    plugindir="$dir/$PACKAGE"
fi
AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "$plugindir", [directory containing ALSA add-on modules])
ALSA_PLUGIN_DIR="$plugindir"
AC_SUBST(ALSA_PLUGIN_DIR)

AC_ARG_WITH(pkgconfdir,
    AS_HELP_STRING([--with-pkgconfdir=dir],
	[path where pkgconfig files are stored]),
    pkgconfdir="$withval", pkgconfdir="")
if test -z "$pkgconfdir"; then
    eval dir="$libdir"
    case "$dir" in
    /*) ;;
    *) dir="$dir"
    esac
    pkgconfdir="$dir/pkgconfig"
fi
AC_DEFINE_UNQUOTED(ALSA_PKGCONF_DIR, "$pkgconfdir", [directory containing pkgconfig files])
ALSA_PKGCONF_DIR="$pkgconfdir"
AC_SUBST(ALSA_PKGCONF_DIR)

dnl Check for versioned symbols
AC_MSG_CHECKING(for versioned symbols)
AC_ARG_WITH(versioned,
  AS_HELP_STRING([--with-versioned],
    [shared library will be compiled with versioned symbols (default = yes)]),
  versioned="$withval", versioned="yes")
if test "$versioned" = "yes"; then
  # it seems that GNU ld versions since 2.10 are not broken
  xres=`grep '^VERSION=' ${srcdir}/ltmain.sh | cut -d = -f 2 | cut -d \" -f 2`
  major=`echo $xres | cut -d . -f 1`
  minor=`echo $xres | cut -d . -f 2`
  pass=0
  if test $major -eq 1 && test $minor -gt 3; then
    pass=1
  else
    if test $major -gt 1; then
      pass=1
    fi
  fi
  if test $pass -eq 1; then
    AC_DEFINE(VERSIONED_SYMBOLS,,[compiled with versioned symbols])
    AC_MSG_RESULT(yes)
  else
    AC_MSG_RESULT(broken libtool - use libtool v1.4+; no versions)
  fi
else
  AC_MSG_RESULT(no)
fi
AM_CONDITIONAL([VERSIONED_SYMBOLS], [test x$versioned = xyes])

dnl Check for symbolic-functions
AC_MSG_CHECKING(for symbolic-functions)
AC_ARG_ENABLE(symbolic-functions,
  AS_HELP_STRING([--enable-symbolic-functions],
    [use -Bsymbolic-functions option if available (optmization for size and speed)]),
  symfuncs="$enableval", symfuncs="no")
if test "$symfuncs" = "yes"; then
  if ld --help | grep -q -- '-Bsymbolic-functions'; then
    AC_MSG_RESULT(yes)
  else
    AC_MSG_RESULT(not supported by ld)
    symfuncs="no"
  fi
else
  AC_MSG_RESULT(no)
fi
AM_CONDITIONAL([SYMBOLIC_FUNCTIONS], [test x"$symfuncs" = xyes])

dnl See if toolchain has a custom prefix for symbols ...
AC_MSG_CHECKING(for custom symbol prefixes)
SYMBOL_PREFIX=` \
	echo "PREFIX=__USER_LABEL_PREFIX__" \
		| ${CPP-${CC-gcc} -E} - 2>&1 \
		| ${EGREP-grep} "^PREFIX=" \
		| ${SED-sed} "s:^PREFIX=::"`
AC_DEFINE_UNQUOTED([__SYMBOL_PREFIX], "$SYMBOL_PREFIX", [Toolchain Symbol Prefix])
AC_SUBST(SYMBOL_PREFIX)
AC_MSG_RESULT($SYMBOL_PREFIX)

dnl Check for debug...
AC_MSG_CHECKING(for debug)
AC_ARG_WITH(debug,
  AS_HELP_STRING([--with-debug],
    [library will be compiled with asserts (default = yes)]),
  debug="$withval", debug="yes")
if test "$debug" = "yes"; then
  AC_MSG_RESULT(yes)
else
  AC_DEFINE(NDEBUG,,[No assert debug])
  AC_MSG_RESULT(no)
fi

if test "$debug" = "yes"; then
  AC_MSG_CHECKING(for debug assert)
  AC_ARG_ENABLE(debug-assert,
    AS_HELP_STRING([--enable-debug],
      [enable assert call at the default error message handler]),
    debug_assert="$enableval", debug_assert="no")
  if test "$debug_assert" = "yes"; then
    AC_MSG_RESULT(yes)
    AC_DEFINE(ALSA_DEBUG_ASSERT,,[Enable assert at error message handler])
  else
    AC_MSG_RESULT(no)
  fi
fi

dnl Temporary directory
AC_MSG_CHECKING(for tmpdir)
AC_ARG_WITH(tmpdir,
  AS_HELP_STRING([--with-tmpdir=directory],
    [directory to put tmp socket files (/tmp)]),
  tmpdir="$withval", tmpdir="/tmp")
AC_MSG_RESULT($tmpdir)
AC_DEFINE_UNQUOTED(TMPDIR, "$tmpdir", [directory to put tmp socket files])

dnl Check for softfloat...
AC_MSG_CHECKING(for softfloat)
AC_ARG_WITH(softfloat,
  AS_HELP_STRING([--with-softfloat],
    [do you have floating point unit on this machine? (optional)]),
  [case "$withval" in
	y|yes) softfloat=yes ;;
	*) softfloat=no ;;
   esac],)
if test "$softfloat" = "yes" ; then
  AC_DEFINE(HAVE_SOFT_FLOAT, "1", [Avoid calculation in float])
  AC_MSG_RESULT(yes)
else
  AC_MSG_RESULT(no)
fi

ALSA_DEPLIBS=""
if test "$softfloat" != "yes"; then
  ALSA_DEPLIBS="-lm"
fi

dnl Check for libdl
AC_MSG_CHECKING(for libdl)
AC_ARG_WITH(libdl,
  AS_HELP_STRING([--with-libdl], [Use libdl for plugins (default = yes)]),
  [ have_libdl="$withval" ], [ have_libdl="yes" ])
HAVE_LIBDL=
if test "$have_libdl" = "yes"; then
  AC_CHECK_LIB([dl], [dlsym], [HAVE_LIBDL="yes"])
  if test "$HAVE_LIBDL" = "yes" ; then
    ALSA_DEPLIBS="$ALSA_DEPLIBS -ldl"
    AC_DEFINE([HAVE_LIBDL], 1, [Have libdl])
  fi
else
  AC_MSG_RESULT(no)
fi
AM_CONDITIONAL([BUILD_MODULES], [test "$HAVE_LIBDL" = "yes"])

dnl Check for pthread
AC_MSG_CHECKING(for pthread)
AC_ARG_WITH(pthread,
  AS_HELP_STRING([--with-pthread], [Use pthread (default = yes)]),
  [ have_pthread="$withval" ], [ have_pthread="yes" ])
if test "$have_pthread" = "yes"; then
  AC_CHECK_LIB([pthread], [pthread_join], [HAVE_LIBPTHREAD="yes"])
  if test "$HAVE_LIBPTHREAD" = "yes"; then
    ALSA_DEPLIBS="$ALSA_DEPLIBS -lpthread"
    AC_DEFINE([HAVE_LIBPTHREAD], 1, [Have libpthread])
  fi
else
  AC_MSG_RESULT(no)
fi

dnl Check for __thread
AC_MSG_CHECKING([for __thread])
AC_LINK_IFELSE([AC_LANG_PROGRAM([#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && ((__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || (__GNUC__ == 4 && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ < 2))
#error gcc has this bug: http://gcc.gnu.org/ml/gcc-bugs/2006-09/msg02275.html
#endif], [static __thread int p = 0])],
[AC_DEFINE(HAVE___THREAD, 1,
Define to 1 if compiler supports __thread)
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])

dnl Check for librt
AC_MSG_CHECKING(for librt)
AC_ARG_WITH(librt,
  AS_HELP_STRING([--with-librt], [Use librt for monotonic clock (default = yes)]),
  [ have_librt="$withval" ], [ have_librt="yes" ])
if test "$have_librt" = "yes"; then
  AC_CHECK_LIB([rt], [clock_gettime], [HAVE_LIBRT="yes"])
  if test "$HAVE_LIBRT" = "yes" ; then
    ALSA_DEPLIBS="$ALSA_DEPLIBS -lrt"
    AC_DEFINE([HAVE_LIBRT], 1, [Have librt])
    AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Have clock gettime])
  fi
else
  AC_MSG_RESULT(no)
fi

AC_SUBST(ALSA_DEPLIBS)

dnl Check for headers
AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h sys/shm.h])

dnl Check for resmgr support...
AC_MSG_CHECKING(for resmgr support)
AC_ARG_ENABLE(resmgr,
  AS_HELP_STRING([--enable-resmgr], [support resmgr (optional)]),
  resmgr="$enableval", resmgr="no")
AC_MSG_RESULT($resmgr)
if test "$resmgr" = "yes"; then
  AC_CHECK_LIB(resmgr, rsm_open_device,,
    AC_ERROR([Cannot find libresmgr]))
  AC_DEFINE(SUPPORT_RESMGR, "1", [Support resmgr with alsa-lib])
fi

dnl Check for aload* support...
AC_MSG_CHECKING(for aload* support)
AC_ARG_ENABLE(aload,
  AS_HELP_STRING([--disable-aload], [disable reading /dev/aload*]),
  aload="$enableval", aload="yes")
AC_MSG_RESULT($aload)
if test "$aload" = "yes"; then
  AC_DEFINE(SUPPORT_ALOAD, "1", [Support /dev/aload* access for auto-loading])
fi

dnl Check for non-standard /dev directory
AC_MSG_CHECKING([for ALSA device file directory])
AC_ARG_WITH(alsa-devdir,
  AS_HELP_STRING([--with-alsa-devdir=dir],
    [directory with ALSA device files (default /dev/snd)]),
  [alsa_dev_dir="$withval"],
  [alsa_dev_dir="/dev/snd"])
dnl make sure it has a trailing slash
if echo "$alsa_dev_dir" | grep -v '/$' > /dev/null; then
  alsa_dev_dir="$alsa_dev_dir/"
fi
AC_DEFINE_UNQUOTED(ALSA_DEVICE_DIRECTORY, "$alsa_dev_dir", [Directory with ALSA device files])
AC_MSG_RESULT([$alsa_dev_dir])

AC_MSG_CHECKING([for aload* device file directory])
AC_ARG_WITH(aload-devdir,
  AS_HELP_STRING([--with-aload-devdir=dir],
    [directory with aload* device files (default /dev)]),
  [aload_dev_dir="$withval"],
  [aload_dev_dir="/dev"])
if echo "$aload_dev_dir" | grep -v '/$' > /dev/null; then
  aload_dev_dir="$aload_dev_dir/"
fi
AC_DEFINE_UNQUOTED(ALOAD_DEVICE_DIRECTORY, "$aload_dev_dir", [Directory with aload* device files])
AC_MSG_RESULT([$aload_dev_dir])

dnl Build conditions
AC_ARG_ENABLE(mixer,
  AS_HELP_STRING([--disable-mixer], [disable the mixer component]),
  [build_mixer="$enableval"], [build_mixer="yes"])
AC_ARG_ENABLE(pcm,
  AS_HELP_STRING([--disable-pcm], [disable the PCM component]),
  [build_pcm="$enableval"], [build_pcm="yes"])
AC_ARG_ENABLE(rawmidi,
  AS_HELP_STRING([--disable-rawmidi], [disable the raw MIDI component]),
  [build_rawmidi="$enableval"], [build_rawmidi="yes"])
AC_ARG_ENABLE(hwdep,
  AS_HELP_STRING([--disable-hwdep], [disable the hwdep component]),
  [build_hwdep="$enableval"], [build_hwdep="yes"])
AC_ARG_ENABLE(seq,
  AS_HELP_STRING([--disable-seq], [disable the sequencer component]),
  [build_seq="$enableval"], [build_seq="yes"])
AC_ARG_ENABLE(ucm,
  AS_HELP_STRING([--disable-ucm], [disable the use-case-manager component]),
  [build_ucm="$enableval"], [build_ucm="yes"])
AC_ARG_ENABLE(topology,
  AS_HELP_STRING([--disable-topology], [disable the DSP topology component]),
  [build_topology="$enableval"], [build_topology="yes"])
AC_ARG_ENABLE(alisp,
  AS_HELP_STRING([--disable-alisp], [disable the alisp component]),
  [build_alisp="$enableval"], [build_alisp="yes"])
test "$softfloat" = "yes" && build_alisp="no"
AC_ARG_ENABLE(old-symbols,
  AS_HELP_STRING([--disable-old-symbols], [disable old obsoleted symbols]),
  [keep_old_symbols="$enableval"], [keep_old_symbols="yes"])
AM_CONDITIONAL([KEEP_OLD_SYMBOLS], [test x$keep_old_symbols = xyes])

AC_ARG_ENABLE(python,
  AS_HELP_STRING([--disable-python], [disable the python components]),
  [build_python="$enableval"], [build_python="yes"])
PYTHON_LIBS=""
PYTHON_INCLUDES=""
if test "$build_python" = "yes"; then
  AC_ARG_WITH(pythonlibs,
    AS_HELP_STRING([--with-pythonlibs=ldflags],
      [specify python libraries (-lpthread -lm -ldl -lpython2.4)]),
    pythonlibs="$withval", pythonlibs=`python-config --libs`)
  AC_ARG_WITH(pythonincludes,
    AS_HELP_STRING([--with-pythonincludes=Cflags],
      [specify python C header files (-I/usr/include/python)]),
    pythonincludes="$withval", pythonincludes=`python-config --includes`)
  if test -z "$pythonlibs"; then
    echo "Unable to determine python libraries! Probably python-config is not"
    echo "available on this system. Please, use --with-pythonlibs and"
    echo "--with-pythonincludes options. Python components are disabled in this build."
    build_python="no"
  else
    PYTHON_LIBS="$pythonlibs"
    PYTHON_INCLUDES="$pythonincludes"
  fi
fi
AC_SUBST(PYTHON_LIBS)
AC_SUBST(PYTHON_INCLUDES)

AM_CONDITIONAL([BUILD_MIXER], [test x$build_mixer = xyes])
AM_CONDITIONAL([BUILD_PCM], [test x$build_pcm = xyes])
AM_CONDITIONAL([BUILD_RAWMIDI], [test x$build_rawmidi = xyes])
AM_CONDITIONAL([BUILD_HWDEP], [test x$build_hwdep = xyes])
AM_CONDITIONAL([BUILD_SEQ], [test x$build_seq = xyes])
AM_CONDITIONAL([BUILD_UCM], [test x$build_ucm = xyes])
AM_CONDITIONAL([BUILD_TOPOLOGY], [test x$build_topology = xyes])
AM_CONDITIONAL([BUILD_ALISP], [test x$build_alisp = xyes])
AM_CONDITIONAL([BUILD_PYTHON], [test x$build_python = xyes])

if test "$build_mixer" = "yes"; then
  AC_DEFINE([BUILD_MIXER], "1", [Build mixer component])
fi
if test "$build_pcm" = "yes"; then
  AC_DEFINE([BUILD_PCM], "1", [Build PCM component])
fi
if test "$build_rawmidi" = "yes"; then
  AC_DEFINE([BUILD_RAWMIDI], "1", [Build raw MIDI component])
fi
if test "$build_hwdep" = "yes"; then
  AC_DEFINE([BUILD_HWDEP], "1", [Build hwdep component])
fi
if test "$build_seq" = "yes"; then
  AC_DEFINE([BUILD_SEQ], "1", [Build sequencer component])
fi
if test "$build_ucm" = "yes"; then
  AC_DEFINE([BUILD_UCM], "1", [Build UCM component])
fi
if test "$build_topology" = "yes"; then
  AC_DEFINE([BUILD_TOPOLOGY], "1", [Build DSP Topology component])
fi

dnl PCM Plugins

if test "$build_pcm" = "yes"; then
AC_ARG_WITH(pcm-plugins,
  AS_HELP_STRING([--with-pcm-plugins=<list>],
    [build PCM plugins (default = all)]),
  [pcm_plugins="$withval"], [pcm_plugins="all"])
else
pcm_plugins=""
fi

dnl check atomics for pcm_meter

AC_MSG_CHECKING([whether GCC supports builtin atomic intrinsics])
if test -z "$gcc_have_atomics"; then
  gcc_have_atomics=no
  AC_TRY_LINK([],
    [int i;
     __atomic_load_n(&i, __ATOMIC_SEQ_CST);
     __atomic_add_fetch(&i, 0, __ATOMIC_SEQ_CST);
    ],
    [gcc_have_atomics=yes],
    [gcc_have_atomics=no])
fi
AC_MSG_RESULT($gcc_have_atomics)

PCM_PLUGIN_LIST="copy linear route mulaw alaw adpcm rate plug multi shm file null empty share meter hooks lfloat ladspa dmix dshare dsnoop asym iec958 softvol extplug ioplug mmap_emul"

build_pcm_plugin="no"
for t in $PCM_PLUGIN_LIST; do
  eval build_pcm_$t="no"
done

pcm_plugins=`echo $pcm_plugins | sed 's/,/ /g'`
for p in $pcm_plugins; do
  for t in $PCM_PLUGIN_LIST; do
    if test "$p" = "$t" -o "$p" = "all"; then
      eval build_pcm_$t="yes"
      build_pcm_plugin="yes"
    fi
  done
done

dnl special dependencies
if test "$build_pcm_plug" = "yes"; then
  build_pcm_linear="yes"
  build_pcm_copy="yes"
fi

if test "$build_pcm_ioplug" = "yes"; then
  build_pcm_extplug="yes"
fi

if test "$HAVE_LIBDL" != "yes"; then
  build_pcm_meter="no"
  build_pcm_ladspa="no"
  build_pcm_pcm_ioplug="no"
  build_pcm_pcm_extplug="no"
fi

if test "$HAVE_LIBPTHREAD" != "yes"; then
  build_pcm_share="no"
fi

if test "$softfloat" = "yes"; then
  build_pcm_lfloat="no"
  build_pcm_ladspa="no"
fi

if test "$gcc_have_atomics" != "yes"; then
  build_pcm_meter="no"
fi

if test "$ac_cv_header_sys_shm_h" != "yes"; then
  build_pcm_dmix="no"
  build_pcm_dshare="no"
  build_pcm_dsnoop="no"
  build_pcm_shm="no"
fi

AM_CONDITIONAL([BUILD_PCM_PLUGIN], [test x$build_pcm_plugin = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_COPY], [test x$build_pcm_copy = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_LINEAR], [test x$build_pcm_linear = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_ROUTE], [test x$build_pcm_route = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_MULAW], [test x$build_pcm_mulaw = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_ALAW], [test x$build_pcm_alaw = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_ADPCM], [test x$build_pcm_adpcm = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_RATE], [test x$build_pcm_rate = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_PLUG], [test x$build_pcm_plug = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_MULTI], [test x$build_pcm_multi = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_SHM], [test x$build_pcm_shm = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_FILE], [test x$build_pcm_file = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_NULL], [test x$build_pcm_null = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_EMPTY], [test x$build_pcm_empty = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_SHARE], [test x$build_pcm_share = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_METER], [test x$build_pcm_meter = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_HOOKS], [test x$build_pcm_hooks = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_LFLOAT], [test x$build_pcm_lfloat = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_LADSPA], [test x$build_pcm_ladspa = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_DMIX], [test x$build_pcm_dmix = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_DSHARE], [test x$build_pcm_dshare = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_DSNOOP], [test x$build_pcm_dsnoop = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_ASYM], [test x$build_pcm_asym = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_IEC958], [test x$build_pcm_iec958 = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_SOFTVOL], [test x$build_pcm_softvol = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_EXTPLUG], [test x$build_pcm_extplug = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_IOPLUG], [test x$build_pcm_ioplug = xyes])
AM_CONDITIONAL([BUILD_PCM_PLUGIN_MMAP_EMUL], [test x$build_pcm_mmap_emul = xyes])

dnl Defines for plug plugin
if test "$build_pcm_rate" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_RATE], "1", [Build PCM rate plugin])
fi
if test "$build_pcm_route" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_ROUTE], "1", [Build PCM route plugin])
fi
if test "$build_pcm_lfloat" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_LFLOAT], "1", [Build PCM lfloat plugin])
fi
if test "$build_pcm_adpcm" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_ADPCM], "1", [Build PCM adpcm plugin])
fi
if test "$build_pcm_mulaw" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_MULAW], "1", [Build PCM mulaw plugin])
fi
if test "$build_pcm_alaw" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_ALAW], "1", [Build PCM alaw plugin])
fi
if test "$build_pcm_mmap_emul" = "yes"; then
  AC_DEFINE([BUILD_PCM_PLUGIN_MMAP_EMUL], "1", [Build PCM mmap-emul plugin])
fi


dnl Create PCM plugin symbol list for static library
rm -f "$srcdir"/src/pcm/pcm_symbols_list.c
touch "$srcdir"/src/pcm/pcm_symbols_list.c
for t in $PCM_PLUGIN_LIST; do
  if eval test \$build_pcm_$t = yes; then
    echo \&_snd_module_pcm_$t, >> "$srcdir"/src/pcm/pcm_symbols_list.c
  fi
done

dnl Control Plugins

AC_ARG_WITH(ctl-plugins,
  AS_HELP_STRING([--with-ctl-plugins=<list>],
    [build control plugins (default = all)]),
  [ctl_plugins="$withval"], [ctl_plugins="all"])

CTL_PLUGIN_LIST="shm ext"

build_ctl_plugin="no"
for t in $CTL_PLUGIN_LIST; do
  eval build_ctl_$t="no"
done

ctl_plugins=`echo $ctl_plugins | sed 's/,/ /g'`
for p in $ctl_plugins; do
  for t in $CTL_PLUGIN_LIST; do
    if test "$p" = "$t" -o "$p" = "all"; then
      eval build_ctl_$t="yes"
      build_ctl_plugin="yes"
    fi
  done
done

if test "$ac_cv_header_sys_shm_h" != "yes"; then
  build_ctl_shm="no"
fi

AM_CONDITIONAL([BUILD_CTL_PLUGIN], [test x$build_ctl_plugin = xyes])
AM_CONDITIONAL([BUILD_CTL_PLUGIN_SHM], [test x$build_ctl_shm = xyes])
AM_CONDITIONAL([BUILD_CTL_PLUGIN_EXT], [test x$build_ctl_ext = xyes])

dnl Create ctl plugin symbol list for static library
rm -f "$srcdir"/src/control/ctl_symbols_list.c
touch "$srcdir"/src/control/ctl_symbols_list.c
for t in $CTL_PLUGIN_LIST; do
  if eval test \$build_ctl_$t = yes; then
    echo \&_snd_module_control_$t, >> "$srcdir"/src/control/ctl_symbols_list.c
  fi
done

dnl Max number of cards
AC_MSG_CHECKING(for max number of cards)
AC_ARG_WITH(max-cards,
  AS_HELP_STRING([--with-max-cards], [Specify the max number of cards (default = 32)]),
  [ max_cards="$withval" ], [ max_cards="32" ])
AC_MSG_RESULT([$max_cards])

if test "$max_cards" -lt 1; then
   AC_ERROR([Invalid max cards $max_cards])
elif test "$max_cards" -gt 256; then
   AC_ERROR([Invalid max cards $max_cards])
fi
AC_DEFINE_UNQUOTED(SND_MAX_CARDS, $max_cards, [Max number of cards])

dnl Check for thread-safe API functions
if test "$HAVE_LIBPTHREAD" = "yes"; then
AC_MSG_CHECKING(for thread-safe API functions)
AC_ARG_ENABLE(thread-safety,
  AS_HELP_STRING([--disable-thread-safety],
    [disable thread-safe API functions]),
  threadsafe="$enableval", threadsafe="yes")
if test "$threadsafe" = "yes"; then
  AC_MSG_RESULT(yes)
  AC_DEFINE([THREAD_SAFE_API], "1", [Disable thread-safe API functions])
else
  AC_MSG_RESULT(no)
fi
fi

dnl Make a symlink for inclusion of alsa/xxx.h
if test ! -L "$srcdir"/include/alsa ; then
  echo "Making a symlink include/alsa"
  rm -f "$srcdir"/include/alsa
  ln -sf . "$srcdir"/include/alsa
fi

AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
	  include/Makefile include/sound/Makefile src/Versions src/Makefile \
          src/control/Makefile src/mixer/Makefile \
	  src/pcm/Makefile src/pcm/scopes/Makefile \
	  src/rawmidi/Makefile src/timer/Makefile \
          src/hwdep/Makefile src/seq/Makefile src/ucm/Makefile \
          src/alisp/Makefile src/topology/Makefile \
	  src/conf/Makefile src/conf/alsa.conf.d/Makefile \
	  src/conf/cards/Makefile \
	  src/conf/pcm/Makefile \
	  src/conf/ucm/Makefile \
	  src/conf/ucm/DAISY-I2S/Makefile \
	  src/conf/ucm/PandaBoard/Makefile \
	  src/conf/ucm/PandaBoardES/Makefile \
	  src/conf/ucm/SDP4430/Makefile \
	  src/conf/ucm/tegraalc5632/Makefile \
	  src/conf/ucm/PAZ00/Makefile \
	  src/conf/ucm/GoogleNyan/Makefile \
	  src/conf/ucm/broadwell-rt286/Makefile \
	  src/conf/ucm/VEYRON-I2S/Makefile \
	  src/conf/ucm/chtrt5645/Makefile \
	  src/conf/topology/Makefile \
	  src/conf/topology/broadwell/Makefile \
	  modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \
	  src/conf/topology/sklrt286/data/Makefile \
	  src/conf/topology/sklrt286/Makefile \
	  alsalisp/Makefile aserver/Makefile \
	  test/Makefile test/lsb/Makefile \
	  utils/Makefile utils/alsa-lib.spec utils/alsa.pc)

dnl Create asoundlib.h dynamically according to configure options
echo "Creating asoundlib.h..."
cp "$srcdir"/include/asoundlib-head.h include/asoundlib.h
test "$ac_cv_header_endian_h" = "yes" && echo "#include <endian.h>" >> include/asoundlib.h
if test "$ac_cv_header_sys_endian_h" = "yes"; then
cat >> include/asoundlib.h <<EOF
#include <sys/endian.h>
#ifndef __BYTE_ORDER
#define __BYTE_ORDER BYTE_ORDER
#endif
#ifndef __LITTLE_ENDIAN
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#endif
#ifndef __BIG_ENDIAN
#define __BIG_ENDIAN BIG_ENDIAN
#endif
EOF
fi
cat >> include/asoundlib.h <<EOF

#ifndef __GNUC__
#define __inline__ inline
#endif

#include <alsa/asoundef.h>
#include <alsa/version.h>
#include <alsa/global.h>
#include <alsa/input.h>
#include <alsa/output.h>
#include <alsa/error.h>
#include <alsa/conf.h>
EOF
test "$build_pcm" = "yes" && echo "#include <alsa/pcm.h>" >> include/asoundlib.h
test "$build_rawmidi" = "yes" && echo "#include <alsa/rawmidi.h>" >> include/asoundlib.h
test "$build_pcm" = "yes" && echo "#include <alsa/timer.h>" >> include/asoundlib.h
test "$build_hwdep" = "yes" && echo "#include <alsa/hwdep.h>" >> include/asoundlib.h
echo "#include <alsa/control.h>" >> include/asoundlib.h
test "$build_mixer" = "yes" && echo "#include <alsa/mixer.h>" >> include/asoundlib.h
test "$build_seq" = "yes" && echo "#include <alsa/seq_event.h>" >> include/asoundlib.h
test "$build_seq" = "yes" && echo "#include <alsa/seq.h>" >> include/asoundlib.h
test "$build_seq" = "yes" && echo "#include <alsa/seqmid.h>" >> include/asoundlib.h
test "$build_seq" = "yes" && echo "#include <alsa/seq_midi_event.h>" >> include/asoundlib.h
cat "$srcdir"/include/asoundlib-tail.h >> include/asoundlib.h

