diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 704 |
1 files changed, 704 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..d744867a --- /dev/null +++ b/configure.ac @@ -0,0 +1,704 @@ +dnl Process this file with autoconf to produce a configure script. +AC_PREREQ(2.59) +AC_INIT(alsa-lib, 1.0.27.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. + +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 +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]) + +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 + +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 + +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 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 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/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 \ + 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 "$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 + |