alsa-lib/configure.in
Takashi Iwai db1e39a4e8 Allow partial build with selected components
Add --enable-* and --with-pcm-plugins configure options for partial builds.

User can choose the core components (pcm, mixer, rawmidi, hwdep, seq, instr)
via --enable-xxx or --disable-xxx option.  As default, all components are
enabled.

The PCM plugins to build can be selected via --with-pcm-plugins option.
For example, to build only rate and linear plugin, pass
  --with-pcm-plugins=rate,linear
Passing "all" will select all plugins (it's the default value).

The plug plugin will select linear and copy plugins automatically.
The other auto conversions of plug plugin are enabled only when the
corresponding plugin is selected.
2005-11-30 11:38:24 +00:00

357 lines
11 KiB
Text

dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.53)
AC_INIT(src/control/control.c)
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_SYSTEM
AM_INIT_AUTOMAKE(alsa-lib, 1.0.10)
eval LIBTOOL_VERSION_INFO="2:0:0"
dnl *************************************************
AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}")
AC_PREFIX_DEFAULT(/usr)
dnl Checks for programs.
dnl try to gues cross-compiler if not set
if test "x$target" != "x$host" -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 ${target_cpu}-${target_os}-gcc >/dev/null 2>&1 \
&& CC=${target_cpu}-${target-os}-gcc
which ${target_cpu}-${target_vendor}-${target_os}-gcc >/dev/null 2>&1 \
&& CC=${target_cpu}-${target_vendor}-${target_os}-gcc
AC_MSG_RESULT($CC)
fi
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
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])
SAVE_LIBRARY_VERSION
AC_SUBST(LIBTOOL_VERSION_INFO)
test "x$prefix" = xNONE && prefix=$ac_default_prefix
eval dir="$datadir"
case "$dir" in
/*) ;;
*) dir="$PWD/$dir"
esac
AC_DEFINE_UNQUOTED(DATADIR, "$dir", [directory containing ALSA configuration database])
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
eval dir="$libdir"
case "$dir" in
/*) ;;
*) dir="$PWD/$dir"
esac
AC_DEFINE_UNQUOTED(PKGLIBDIR, "$dir/$PACKAGE", [directory containing ALSA add-on modules])
dnl Check for versioned symbols
AC_MSG_CHECKING(for versioned symbols)
AC_ARG_WITH(versioned,
[ --with-versioned=yes,no shared library will (not) be compiled with versioned symbols],
versioned="$withval", versioned="yes")
if test "$versioned" = "yes"; then
# it seems that GNU ld versions since 2.10 are not broken
xres=`grep '^VERSION=' $ac_aux_dir/libtool | 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 -a $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 debug...
AC_MSG_CHECKING(for debug)
AC_ARG_WITH(debug,
[ --with-debug=yes,no library will (not) be compiled with asserts],
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
dnl Temporary directory
AC_MSG_CHECKING(for tmpdir)
AC_ARG_WITH(tmpdir,
[ --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,
[ --with-softfloat do you have floating point unit on this machine? (optional)],
[ AC_DEFINE(HAVE_SOFT_FLOAT, "1", [Avoid calculation in float])
softfloat=yes ],)
if test "$softloat" = "yes" ; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Check for architecture
AC_MSG_CHECKING(for architecture)
case "$target" 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,
[ --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,
[ --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 Build conditions
AC_ARG_ENABLE(mixer,
[ --disable-mixer Disable the mixer component],
[build_mixer="$enableval"], [build_mixer="yes"])
AC_ARG_ENABLE(pcm,
[ --disable-pcm Disable the PCM component],
[build_pcm="$enableval"], [build_pcm="yes"])
AC_ARG_ENABLE(rawmidi,
[ --disable-rawmidi Disable the raw MIDI component],
[build_rawmidi="$enableval"], [build_rawmidi="yes"])
AC_ARG_ENABLE(hwdep,
[ --disable-hwdep Disable the hwdep component],
[build_hwdep="$enableval"], [build_hwdep="yes"])
AC_ARG_ENABLE(seq,
[ --disable-seq Disable the sequencer component],
[build_seq="$enableval"], [build_seq="yes"])
AC_ARG_ENABLE(instr,
[ --disable-instr Disable the instrument component],
[build_instr="$enableval"], [build_instr="yes"])
if test "$build_seq" != "yes"; then
build_instr="no"
fi
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_INSTR, test x$build_instr = 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_seq" = "yes"; then
AC_DEFINE([BUILD_SEQ], "1", [Build sequencer component])
fi
if test "$build_instr" = "yes"; then
AC_DEFINE([BUILD_INSTR], "1", [Build instrument component])
fi
dnl PCM Plugins
if test "$build_pcm" = "yes"; then
AC_ARG_WITH(pcm-plugins,
[ --with-pcm-plugins=<list> Build PCM plugins ],
[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 share meter hooks lfloat ladspa dmix dshare dsnoop asym iec958 softvol extplug ioplug"
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
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_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)
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
dnl Create PCM plugin symbol list for static library
rm -f 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, >> src/pcm/pcm_symbols_list.c
fi
done
dnl Make a symlink for inclusion of alsa/xxx.h
if test ! -L include/alsa ; then
echo "Making a symlink include/alsa"
rm -f include/alsa
ln -sf . include/alsa
fi
AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile include/Makefile
include/sound/Makefile 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/instr/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 utils/Makefile \
utils/alsa-lib.spec utils/alsa.pc)