dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(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(alsa-lib, 1.0.24.1)
eval LIBTOOL_VERSION_INFO="2:0:0"
dnl *************************************************
AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}")

# 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.

dnl try to gues cross-compiler if not set
if test "x$host" != "x$build" -a -z "`echo $CC | grep -e '-gcc'`";
then
  AC_MSG_CHECKING(for cross-compiler)

  which ${program_prefix}gcc >/dev/null 2>&1 && CC=${program_prefix}gcc
  which ${host_cpu}-${host_os}-gcc >/dev/null 2>&1 \
  && CC=${host_cpu}-${host-os}-gcc
  which ${host_cpu}-${host_vendor}-${host_os}-gcc >/dev/null 2>&1 \
  && CC=${host_cpu}-${host_vendor}-${host_os}-gcc

  AC_MSG_RESULT($CC)
fi
	    
CFLAGS="$CFLAGS -D_GNU_SOURCE"


AC_PROG_CC
AC_PROG_CPP
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
AM_CONFIG_HEADER(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_FUNC([hsearch_r], [HAVE_HSEARCH_R=yes])
AM_CONDITIONAL(ALSA_HSEARCH_R, [test "x$HAVE_HSEARCH_R" != xyes])
AC_CHECK_FUNCS([uselocale])

SAVE_LIBRARY_VERSION
AC_SUBST(LIBTOOL_VERSION_INFO)

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

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)

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" ])
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 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 architecture
AC_MSG_CHECKING(for architecture)
case "$host" in
i?86*)
  AC_MSG_RESULT(x86)
  ;;
x86_64*)
  AC_MSG_RESULT(x86)
  ;;
alpha*)
  AC_MSG_RESULT(alpha)
  ;;
powerpc*|ppc*)
  AC_MSG_RESULT(ppc)
  CPPFLAGS="$CPPFLAGS -D__ppc__"
  ;;
ia64*)
  AC_MSG_RESULT(ia64)
  CPPFLAGS="$CPPFLAGS -D__ia64__"
  ;;
mips*)
  AC_MSG_RESULT(mips)
  CPPFLAGS="$CPPFLAGS -D__mips__"
  ;;
arm*)
  AC_MSG_RESULT(arm)
  CPPFLAGS="$CPPFLAGS -D__arm__"
  ;;
*)
  AC_MSG_RESULT($host_cpu)
  echo "No atomic operations supported.." 
  ;;
esac

dnl Check for wordexp.h
AC_CHECK_HEADERS([wordexp.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(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_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

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

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

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

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 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/compat/Makefile src/alisp/Makefile src/conf/Makefile \
	  src/conf/cards/Makefile \
	  src/conf/pcm/Makefile \
	  modules/Makefile modules/mixer/Makefile modules/mixer/simple/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 "$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

