sintonia/library/ecasound/configure.in
Paul Baranowski 6a39e4f5f5 Removed the Debian directory.
Renamed directory "dev" to "dev_tools".

Replaced the ecasound-2.7.2 with a new download of ecasound.  The reason is
that the previous ecasound directory had all the Makefiles checked in with
hardcoded paths from Naomi's computer.  This prevented anyone else from
being able to build.  I copied over the modified version of ecacontrol.py.
2011-03-09 18:20:34 -05:00

1486 lines
39 KiB
Text

dnl ---
dnl configure.in for ecasound
dnl
dnl Many of the tests and macros in this file have been borrowed from
dnl other GPL-licensed packages (Alsaplayer, ALSA, SIP, PyQt,
dnl kpackage, etc, etc).
dnl
dnl refs:
dnl - http://www.gnu.org/software/autoconf/manual/
dnl - http://www.gnu.org/software/automake/manual/
dnl - http://www.gnu.org/software/libtool/manual/
dnl ---
dnl ------------------------------------------------------------------
dnl ---
dnl Initialize autoconf and automake
dnl ---
AC_INIT([ecasound], [2.7.2])
AC_PREREQ(2.50)
AC_CONFIG_SRCDIR([libecasound/audiofx.h])
AM_INIT_AUTOMAKE([1.6.1])
dnl FIXME: replace with AC_CONFIG_HEADERS when upgrading to a newer automake
AM_CONFIG_HEADER([config.h])
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "1. Section: Basic setup"
echo "------------------------------------------------------------------"
dnl ---
dnl Set library interface version numbers
dnl
dnl defines: LIBECASOUND_VERSION, LIBECASOUNDC_VERSION, LIBKVUTILS_VERSION
dnl ---
LIBECASOUND_VERSION=22
LIBECASOUND_VERSION_AGE=0
LIBECASOUNDC_VERSION=2
LIBECASOUNDC_VERSION_AGE=1
LIBKVUTILS_VERSION=9
LIBKVUTILS_VERSION_AGE=5
AC_SUBST(LIBECASOUND_VERSION)
AC_SUBST(LIBECASOUND_VERSION_AGE)
AC_SUBST(LIBECASOUNDC_VERSION)
AC_SUBST(LIBECASOUNDC_VERSION_AGE)
AC_SUBST(LIBKVUTILS_VERSION)
AC_SUBST(LIBKVUTILS_VERSION_AGE)
AC_DEFINE_UNQUOTED([LIBECASOUND_VERSION], ${LIBECASOUND_VERSION}, [libecasound interface version])
AC_DEFINE_UNQUOTED([LIBECASOUND_VERSION_AGE], ${LIBECASOUND_VERSION_AGE}, [libecasound interface age])
AC_DEFINE_UNQUOTED([LIBECASOUNDC_VERSION], ${LIBECASOUNDC_VERSION}, [libecasoundc interface version])
AC_DEFINE_UNQUOTED([LIBKVUTILS_VERSION], ${LIBKVUTILS_VERSION}, [libkvutils interface version])
AC_DEFINE_UNQUOTED([LIBKVUTILS_VERSION_AGE], ${LIBKVUTILS_VERSION_AGE}, [libkvutils interface age])
dnl ------------------------------------------------------------------
dnl --
dnl Initialize default flags
dnl --
AC_PROG_CC
AC_PROG_CXX
AC_PROG_CPP
AC_LANG_CPLUSPLUS
AC_CANONICAL_HOST
dnl ---
dnl Set compiler flags
dnl
dnl AM_xxx flags are global flags that are always utilized
dnl for compiling and linking.
dnl
dnl It is possible to add custom options by adding them
dnl to the CPPFLAGS/CFLAGS/CXXFLAGS/LDFLAGS shell variables
dnl when invoking the configure script. It is not possible
dnl to override AM_xxx flags.
dnl
dnl modifies: AM_CXXFLAGS, AM_CFLAGS
dnl ---
EXTRACPPFLAGS="-D_REENTRANT -D_XOPEN_SOURCE=500"
EXTRAGCCFLAGS="-ffast-math -fstrict-aliasing"
if test x${GXX} = xyes; then
AM_CXXFLAGS="$AM_CXXFLAGS $EXTRAGCCFLAGS"
fi
if test x${GCC} = xyes; then
AM_CFLAGS="$AM_CFLAGS $EXTRAGCCFLAGS"
fi
AM_CPPFLAGS="$AM_CPPFLAGS $EXTRACPPFLAGS"
AC_SUBST(AM_CFLAGS)
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_LDFLAGS)
dnl ------------------------------------------------------------------
dnl ---
dnl Sets up default values
dnl ---
dnl Selected the Python ECI implementation.
eca_platform_python_impl="python"
dnl All components required by ecasound curses are found
eca_platform_curses_support="yes"
dnl ---
dnl Sets up some operating system specific options
dnl
dnl modifies: AM_CXXFLAGS, AM_CFLAGS, AM_CPPFLAGS, AM_LIBS
dnl ---
case "$host" in
*-*-openbsd*)
AM_CFLAGS="$AM_CFLAGS -pthread"
AM_CXXFLAGS="$AM_CXXFLAGS -pthread"
echo "Setting OpenBSD compilation options for POSIX threads"
;;
*-*-freebsd*)
AM_CFLAGS="$AM_CFLAGS -pthread"
AM_CPPFLAGS="$AM_CPPFLAGS -D_THREAD_SAFE -D_P1003_1B_VISIBLE"
AM_CXXFLAGS="$AM_CXXFLAGS -pthread"
echo "Setting FreeBSD compilation options for POSIX threads"
;;
*-*-solaris*)
AM_CPPFLAGS="$AM_CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS"
LIBS="$LIBS -lposix4 -lpthread"
echo "Setting Solaris compilation options for POSIX threads"
if test x$CXX = xCC; then
LIBS="$LIBS -mt"
AM_CXXFLAGS="$AM_CXXFLAGS -instances=static"
echo "Sun Workshop C++ compiler detected. Enabling static template instantation."
fi
;;
*-*-linux-gnu)
eca_platform_python_impl="c"
;;
alpha*-*-linux-*)
AM_CFLAGS="$AM_CFLAGS -mieee"
AM_CXXFLAGS="$AM_CXXFLAGS -mieee"
echo "Enabling fully IEEE compliant floating-point code generation on Alpha."
;;
*darwin*)
if test "$GCC" = yes; then
AM_CPPFLAGS="$AM_CPPFLAGS -D_P1003_1B_VISIBLE"
fi
;;
*)
echo "Using generic settings for POSIX thread support."
;;
esac
dnl ------------------------------------------------------------------
dnl ---
dnl Check pthread and rt support
dnl ---
dnl switch to C while testing for pthread support
AC_LANG_C
AC_SEARCH_LIBS(pthread_create, pthread c_r,,
AC_MSG_ERROR([** POSIX.4 threads not installed or broken **]))
AC_SEARCH_LIBS(clock_gettime, rt)
dnl switch back to C++
AC_LANG_CPLUSPLUS
echo "------------------------------------------------------------------"
echo "2. Section: Options for the configure script"
echo "------------------------------------------------------------------"
dnl ------------------------------------------------------------------
dnl ---
dnl Check whether to enable debugging
dnl
dnl defines: ECA_AM_DEBUG_MODE
dnl modifies: AM_CXXFLAGS, AM_CFLAGS
dnl ---
AC_MSG_CHECKING(whether to enable debugging)
AC_ARG_ENABLE(debug,
[ --enable-debug Enable debugging (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
include_debug=yes
;;
n | no)
AC_MSG_RESULT(no)
include_debug=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-debug: $enableval])
;;
esac
]
)
AM_CONDITIONAL(ECA_AM_DEBUG_MODE, test x$include_debug = xyes)
if test x$include_debug = xyes; then
EXTRADEBUGFLAGS="-Wall -O"
AC_DEFINE([ECA_DEBUG_MODE], 1, [debugging mode build])
else
EXTRADEBUGFLAGS="-DNDEBUG"
fi
AM_CXXFLAGS="$AM_CXXFLAGS $EXTRADEBUGFLAGS"
AM_CFLAGS="$AM_CFLAGS $EXTRADEBUGFLAGS"
dnl ------------------------------------------------------------------
dnl ---
dnl Check for experimental mode
dnl
dnl defines: ECA_FEELING_EXPERIMENTAL, ECA_AM_FEELING_EXPERIMENTAL
dnl ---
AC_ARG_ENABLE(experimental,
[ --enable-experimental Enable experimental code (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
experimental=yes
;;
n | no)
AC_MSG_RESULT(no)
experimental=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-experimental: $enableval])
;;
esac
])
if test x$experimental = xyes; then
AC_DEFINE([ECA_FEELING_EXPERIMENTAL], 1, [enable experimental features])
fi
AM_CONDITIONAL(ECA_AM_FEELING_EXPERIMENTAL, test x$experimental = xyes)
dnl ------------------------------------------------------------------
dnl ---
dnl Sets the ecasound prefix variable
dnl
dnl defines: ECA_PREFIX, ECA_S_PREFIX
dnl ---
dnl Define ecaprefix, prefer user-specified prefix if given
if test "x${prefix}" = "xNONE"; then
ecaprefix=${ac_default_prefix}
else
ecaprefix=${prefix}
fi
ECA_S_PREFIX=${ecaprefix}
AC_SUBST(ECA_S_PREFIX)
AC_DEFINE_UNQUOTED([ECA_PREFIX], "${ecaprefix}", [Ecasound configure script prefix])
dnl ------------------------------------------------------------------
dnl ---
dnl Check whether to enable design-by-contract assertations
dnl
dnl modifies: AM_CXXFLAGS, AM_CFLAGS
dnl ---
AC_MSG_CHECKING(whether to check design-by-contract assertions)
enable_dbc_d=yes
AC_ARG_ENABLE(dbc,
[ --disable-dbc Don't check design-by-contract assertions (default = check)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
enable_dbc_d=yes
;;
n | no)
AC_MSG_RESULT(no)
enable_dbc_d=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-dbc: $enableval])
;;
esac
],[
AC_MSG_RESULT(yes)
]
)
if test x$enable_dbc_d = xyes; then
AM_CXXFLAGS="$AM_CXXFLAGS -DENABLE_DBC"
AM_CFLAGS="$AM_CFLAGS -DENABLE_DBC"
fi
dnl ------------------------------------------------------------------
dnl ---
dnl Check whether to disable effects
dnl
dnl defines: ECA_AM_DISABLE_EFFECTS, ECA_DISABLE_EFFECTS
dnl ---
AC_MSG_CHECKING(whether to enable effects)
AC_ARG_ENABLE(effects,
[ --disable-effects Disable effects (default = no)],
[
echo "Enableval: ${enableval}."
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
enable_effects_d=yes
;;
n | no)
AC_MSG_RESULT(no)
enable_effects_d=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-effects: $enableval])
;;
esac
],[
AC_MSG_RESULT(yes)
enable_effects_d=yes
]
)
AM_CONDITIONAL(ECA_AM_DISABLE_EFFECTS, test x$enable_effects_d = xno)
if test x$enable_effects_d = xno; then
AC_DEFINE([ECA_DISABLE_EFFECTS], 1, [disable all effects])
fi
dnl ------------------------------------------------------------------
dnl ---
dnl Check for extra compile flags
dnl
dnl modifies: ECA_S_EXTRA_CPPFLAGS, ECA_S_EXTRA_LIBS
dnl ---
AC_ARG_WITH(extra-cppflags,
[ --with-extra-cppflags=FLAGS pass extra flags to cpp ],
[
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${withval}"
])
AC_ARG_WITH(extra-libs,
[ --with-extra-libs=FLAGS pass extra flags to linker ],
[
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${withval}"
])
dnl ------------------------------------------------------------------
dnl ---
dnl Check for LFS (--with-largefile, --disable-largefile
dnl
dnl NOTE: AC_CHECK_LARGEFILE is defined in acinlude.m4 and
dnl use AC_SYS_LARGEFILE to perform the check.
dnl
dnl Refs:
dnl http://www.gnu.org/software/hello/manual/autoconf/System-Services.html
dnl http://ac-archive.sourceforge.net/largefile/future.html
dnl
dnl defines: enable_largefile
dnl ---
AC_CHECK_LARGEFILE
dnl ------------------------------------------------------------------
dnl ------------------------------------------------------------------
dnl ---
dnl Check for OSS driver support
dnl
dnl defines: ECA_COMPILE_OSS, ECA_AM_COMPILE_OSS
dnl ---
AC_CHECK_HEADER(sys/soundcard.h,oss_support=yes,oss_support=no)
AC_ARG_ENABLE(oss,
[ --disable-oss Disable OSS (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
oss_support=yes
;;
n | no)
AC_MSG_RESULT(no)
oss_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-oss: $enableval])
;;
esac
])
AM_CONDITIONAL(ECA_AM_COMPILE_OSS, test x$oss_support = xyes)
if test x$oss_support = xyes; then
AC_DEFINE([ECA_COMPILE_OSS], 1, [enable OSS audio input/output])
fi
dnl ---
dnl Disabling OSS trigger functions
dnl
dnl defines: ECA_DISABLE_OSS_TRIGGER
dnl ---
AC_ARG_ENABLE(osstrigger,
[ --disable-osstrigger Disable the use of OSS trigger functions (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
osstrigger=yes
;;
n | no)
AC_MSG_RESULT(no)
osstrigger=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-osstrigger: $enableval])
;;
esac
])
if test x$osstrigger = xyes; then
AC_DEFINE([ECA_DISABLE_OSS_TRIGGER], 1, [disable use of OSS trigger API])
fi
dnl ------------------------------------------------------------------
dnl --
dnl Check for aRts support
dnl
dnl defines: ECA_AM_COMPILE_ARTS, ECA_COMPILE_ARTS
dnl modifies: ECA_S_EXTRA_CPPFLAGS, ECA_S_EXTRA_LIBS
dnl --
AC_PATH_PROG(ARTSC_CONFIG,artsc-config,none)
if test x$ARTSC_CONFIG = xnone; then
arts_support=no
else
arts_support=yes
ECA_ARTSC_CFLAGS="`$ARTSC_CONFIG --cflags`"
ECA_ARTSC_LIBS="`$ARTSC_CONFIG --libs`"
fi
if test x$arts_support = xyes; then
old_LIBS=$LIBS
LIBS="$LIBS $ECA_ARTSC_LIBS"
old_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $ECA_ARTSC_CFLAGS"
AC_LANG_C
AC_TRY_LINK(
[ #include <artsc.h> ],
[
arts_init();
return 0;
],
[ /bin/true ],
[ arts_support=no ]
)
AC_LANG_CPLUSPLUS
LIBS=${old_LIBS}
CFLAGS=${old_CFLAGS}
fi
AC_ARG_ENABLE(arts,
[ --disable-arts Disable aRts support (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
arts_support=yes
;;
n | no)
AC_MSG_RESULT(no)
arts_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-arts: $enableval])
;;
esac
])
AM_CONDITIONAL(ECA_AM_COMPILE_ARTS, test x$arts_support = xyes)
if test x$arts_support = xyes; then
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${ECA_ARTSC_CFLAGS}"
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${ECA_ARTSC_LIBS}"
AC_DEFINE([ECA_COMPILE_ARTS], 1, [enable aRts support])
fi
dnl ------------------------------------------------------------------
dnl --
dnl Check for libsamplerate
dnl
dnl defines: ECA_AM_COMPILE_SAMPLERATE, ECA_COMPILE_SAMPLERATE
dnl modifies: ECA_S_EXTRA_CPPFLAGS, ECA_S_EXTRA_LIBS
dnl --
AC_CHECK_HEADER(samplerate.h,samplerate_support=yes,samplerate_support=no)
AC_ARG_WITH(libsamplerate,
[ --with-libsamplerate=DIR Compile against libsamplerate installed in DIR],
[
ECA_SAMPLERATE_LIBS="-L${withval}/lib"
ECA_SAMPLERATE_INCLUDES="-I${withval}/include"
samplerate_support=yes
])
AC_ARG_ENABLE(libsamplerate,
[ --disable-libsamplerate Disable libsamplerate support (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
samplerate_support=yes
;;
n | no)
AC_MSG_RESULT(no)
samplerate_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-samplerate: $enableval])
;;
esac
])
AM_CONDITIONAL(ECA_AM_COMPILE_SAMPLERATE, test x$samplerate_support = xyes)
if test x$samplerate_support = xyes; then
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${ECA_SAMPLERATE_INCLUDES}"
ECA_SAMPLERATE_LIBS="${ECA_SAMPLERATE_LIBS} -lsamplerate"
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${ECA_SAMPLERATE_LIBS}"
AC_DEFINE([ECA_COMPILE_SAMPLERATE], 1, [enable libsamplerate support])
fi
dnl ------------------------------------------------------------------
dnl --
dnl Checks for pyecasound
dnl
dnl defines: ECA_S_PYTHON_INCLUDES, ECA_S_PYTHON_DLMODULES,
dnl ECA_AM_PYECASOUND_CEXT, ECA_AM_PYECASOUND_INSTALL
dnl --
dnl default impl depends on target platform
pyecasound_support=${eca_platform_python_impl}
AC_ARG_ENABLE(pyecasound,
[ --enable-pyecasound Enable compilation of pyecasound (default = python)],
[
case "$enableval" in
y | yes)
pyecasound_support=c
;;
n | no | none)
pyecasound_support=none
;;
python)
pyecasound_support=python
;;
c)
pyecasound_support=c
;;
*)
pyecasound_support=python
;;
esac
])
dnl --
dnl Python interpreter and installation prefix
AC_PATH_PROG(PYTHONPATH,python,none)
if test x$PYTHONPATH = xnone; then
pyecasound_support=none
python_install_prefix=""
else
python_install_prefix=`python -c "import sys; print (sys.prefix)"`
fi
dnl --
dnl Python header files
ECA_S_PYTHON_INCLUDES=
AC_MSG_CHECKING([for Python include files])
AC_ARG_WITH(python-includes, [ --with-python-includes=DIR Python include files are in DIR])
if test ! "X$with_python_includes" = "X"
then
python_incdirs=$with_python_includes
else
python_incdirs="/usr/local/include /usr/include"
dnl -- Double-brackets to espace the real brackets
python_incdirsmore=`python -c "import sys; print (sys.prefix + '/include/python' + sys.version[[:3]])"`
python_incdirs="$python_incdirs $python_incdirsmore"
fi
for d in $python_incdirs
do
if test -r $d/Python.h
then
ECA_S_PYTHON_INCLUDES=$d
break
fi
done
AC_SUBST(ECA_S_PYTHON_INCLUDES)
if test "X$ECA_S_PYTHON_INCLUDES" = "X"
then
AC_MSG_WARN([Python.h not found])
if test x${pyecasound_support} = xc; then
dnl -- No python headers found, cannot compile C extension
pyecasound_support=python
fi
else
AC_MSG_RESULT($ECA_S_PYTHON_INCLUDES)
fi
dnl --
dnl Python modules
AC_MSG_CHECKING([for Python libraries])
AC_ARG_WITH(python-modules,
[ --with-python-modules=DIR install Python modules in DIR])
if test "X$with_python_modules" = "X"
then
if test x${python_install_prefix} != x${ecaprefix} -a \
x${ecaprefix} != x/usr -a \
x${ecaprefix} != x/usr/local ; then
pyecasound_support=none
AC_MSG_RESULT([none])
if test x$PYTHONPATH != xnone; then
python_prefix_tmp=`python -c "import sys; print (sys.prefix + '/lib/python' + sys.version[[:3]])"`
else
python_prefix_tmp="DIR"
fi
AC_MSG_WARN([
***
*** Python modules won't be installed as the module install prefix does
*** not match ecasound's build prefix! To override, set python
*** module directory explicitly (for example
*** "--with-python-modules=${python_prefix_tmp}").
***
])
else
pymoddirs="/usr/local/lib /usr/lib"
dnl -- Double-brackets to espace the real brackets
pymoddirsmore=`python -c "import sys; print (sys.prefix + '/lib/python' + sys.version[[:3]])"`
pymoddirs="$pymoddirs $pymoddirsmore"
AC_MSG_RESULT($pymoddirs)
fi
else
pymoddirs=$with_python_modules
AC_MSG_RESULT($pymoddirs)
fi
dnl ---
dnl a hack to support broken debian python installs
AC_ARG_ENABLE(python-force-site-packages,
[ --enable-python-force-site-packages force install Python modules into site-packages even when it doesn't exist [default=no] ],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
python_force_site_packages=yes
;;
n | no)
AC_MSG_RESULT(no)
python_force_site_packages=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-python-force-site-packages: $enableval])
;;
esac
])
AC_FIND_FILE(lib-dynload,$pymoddirs,ECA_S_PYTHON_MODULES)
dnl Use site-packages in preference if it is there.
if test -d $ECA_S_PYTHON_MODULES/site-packages -o "X$python_force_site_packages" = "Xyes"
then
ECA_S_PYTHON_MODULES=$ECA_S_PYTHON_MODULES/site-packages
ECA_S_PYTHON_DLMODULES=$ECA_S_PYTHON_MODULES
else
ECA_S_PYTHON_DLMODULES=$ECA_S_PYTHON_MODULES/lib-dynload
fi
AC_SUBST(ECA_S_PYTHON_MODULES)
AC_SUBST(ECA_S_PYTHON_DLMODULES)
dnl if test x$disable_pyecasound = xyes ; then pyecasound_support=no ; fi
AM_CONDITIONAL(ECA_AM_PYECASOUND_CEXT, test x$pyecasound_support = xc)
AM_CONDITIONAL(ECA_AM_PYECASOUND_INSTALL, test x$pyecasound_support != xnone)
dnl ------------------------------------------------------------------
dnl --
dnl Checks for rubyecasound
dnl
dnl defines: ECA_S_RUBY_SITEDIR,
dnl ECA_AM_RUBYECASOUND_INSTALL
dnl --
dnl default to enabled if Ruby interpreter available
rubyecasound_support=yes
AC_ARG_ENABLE(rubyecasound,
[ --enable-rubyecasound Enable rubyecasound (default = yes)],
[
case "$enableval" in
y | yes)
rubyecasound_support=yes
;;
n | no | none)
rubyecasound_support=no
;;
*)
rubyecasound_support=no
;;
esac
])
dnl --
dnl Ruby interpreter and installation prefix
AC_PATH_PROG(RUBYPATH,ruby,none)
if test x$RUBYPATH = xnone; then
rubyecasound_support=no
ECA_S_RUBY_SITEDIR=""
else
ECA_S_RUBY_SITEDIR="`ruby -e 'require "rbconfig"; include Config; print CONFIG[["sitedir"]] + "/" + CONFIG[["MAJOR"]] + "." + CONFIG[["MINOR"]]'`"
fi
AC_SUBST(ECA_S_RUBY_SITEDIR)
AM_CONDITIONAL(ECA_AM_RUBYECASOUND_INSTALL, test x$rubyecasound_support = xyes)
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "3. Section: Programs "
echo "------------------------------------------------------------------"
dnl ------------------------------------------------------------------
AC_CHECK_CXX_NAMESPACE_SUPPORT
dnl ------------------------------------------------------------------
dnl --
dnl Autotools and libtool
dnl --
AC_LANG_C
dnl do not add 'AC_DISABLE_SHARED' as pyecasound needs shared
dnl objects at link time (note that all the major libs are static)
AC_PROG_LIBTOOL
AC_LANG_CPLUSPLUS
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "4. Section: Libraries"
echo "------------------------------------------------------------------"
dnl ---
dnl Check system libraries
dnl ---
dnl switch to C for testing
AC_LANG_C
dnl see also section 7 - functions
AC_SEARCH_LIBS(inet_ntoa, socket nsl,, AC_MSG_ERROR([*** required inet_ntoa() function not found! ***]))
AC_SEARCH_LIBS(nanosleep, rt posix4)
AC_SEARCH_LIBS(sched_setscheduler, rt posix4)
AC_SEARCH_LIBS(socket, socket nsl,, AC_MSG_ERROR([*** required socket() function not found! ***]))
AC_SEARCH_LIBS(sin, m,, AC_MSG_ERROR([*** required sin() function not found! ***]))
AC_SEARCH_LIBS(dlopen, dl,, AC_MSG_ERROR([*** required dlopen() function not found! ***]))
dnl switch back to C++
AC_LANG_CPLUSPLUS
dnl ------------------------------------------------------------------
dnl ---
dnl Checks for ncurses/termcap
dnl
dnl defines: ECA_AM_USE_NCURSES, ECA_AM_USE_TERMCAP, ECA_USE_NCURSES_H,
dnl ECA_USE_CURSES_H, ECA_HAVE_NCURSES_CURSES_H
dnl ---
dnl switch to C for testing
AC_LANG_C
AC_CHECK_LIB(ncurses, main, termcap_library=ncurses,
AC_CHECK_LIB(termcap, main, termcap_library=termcap,
termcap_library=none))
AC_ARG_ENABLE(ncurses,
[ --disable-ncurses Disable ncurses (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
termcap_library=ncurses
;;
n | no)
AC_MSG_RESULT(no)
termcap_library=none
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-ncurses: $enableval])
;;
esac
])
AM_CONDITIONAL(ECA_AM_USE_NCURSES, test $termcap_library = ncurses)
AM_CONDITIONAL(ECA_AM_USE_TERMCAP, test $termcap_library = termcap)
if test x$termcap_library = xtermcap; then
AC_CHECK_HEADER(curses.h,
AC_DEFINE([ECA_USE_CURSES_H], 1, [use ncurses.h for curses interface]),
AC_MSG_ERROR([*** curses.h not found! Try with "./configure --disable-ncurses". ***]))
fi
if test x$termcap_library = xncurses; then
AC_CHECK_HEADER(ncurses/ncurses.h,
AC_DEFINE([ECA_USE_NCURSES_NCURSES_H], 1, [ncurses headers are installed in ncurses subdir <ncurses/ncurses.h>]),
[
AC_CHECK_HEADER(ncurses.h,
AC_DEFINE([ECA_USE_NCURSES_H], 1, [use curses.h for curses interface]),
AC_MSG_ERROR([*** Neither ncurses.h or ncurses/ncurses.h found! Try with "./configure --disable-ncurses". ***]))
])
fi
if test $termcap_library = xnone ; then
eca_platform_curses_support=no
fi
dnl switch back to C++
AC_LANG_CPLUSPLUS
dnl ------------------------------------------------------------------
dnl ---
dnl Audiofile library
dnl
dnl defines: ECA_AM_COMPILE_AUDIOFILE, ECA_COMPILE_AUDIOFILE
dnl modifies: ECA_S_EXTRA_LIBS
dnl ---
AC_CHECK_LIB(audiofile,main,af_support=yes,af_support=no)
AC_ARG_ENABLE(audiofile,
[ --disable-audiofile Disable libaudiofile (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
af_support=yes
;;
n | no)
AC_MSG_RESULT(no)
af_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-audiofile: $enableval])
;;
esac
]
)
AM_CONDITIONAL(ECA_AM_COMPILE_AUDIOFILE, test x$af_support = xyes)
if test x$af_support = xyes; then
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} -laudiofile"
AC_DEFINE([ECA_COMPILE_AUDIOFILE], 1, [enable libaudiofile support])
fi
dnl ------------------------------------------------------------------
dnl ---
dnl Libsndfile support
dnl
dnl defines: ECA_AM_COMPILE_SNDFILE, ECA_COMPILE_SNDFILE
dnl ---
AC_CHECK_LIB(sndfile,main,sndfile_support=yes,sndfile_support=no)
AC_ARG_ENABLE(sndfile,
[ --disable-sndfile Disable libsndfile (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
sndfile_support=yes
;;
n | no)
AC_MSG_RESULT(no)
sndfile_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-sndfile: $enableval])
;;
esac
]
)
if test x$sndfile_support = xyes; then
AC_LANG_C
AC_TRY_LINK(
[ #include <sndfile.h> ],
[
SF_INFO sfinfo;
sfinfo.frames = 0;
return 0;
],
[ /bin/true ],
[
sndfile_support=no
AC_MSG_WARN([Found an old version of libsndfile. Libsndfile 1.0.0 or newer is required.])
]
)
AC_LANG_CPLUSPLUS
fi
AM_CONDITIONAL(ECA_AM_COMPILE_SNDFILE, test x$sndfile_support = xyes)
if test x$sndfile_support = xyes; then
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} -lsndfile"
AC_DEFINE([ECA_COMPILE_SNDFILE], 1, [enable libsndfile support])
fi
dnl ------------------------------------------------------------------
dnl ---
dnl Check for ALSA driver support
dnl
dnl defines: ECA_AM_COMPILE_ALSA
dnl ---
AC_ARG_ENABLE(alsa,
[ --disable-alsa Disable ALSA (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
alsa_support=yes
;;
n | no)
AC_MSG_RESULT(no)
alsa_support=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-alsa: $enableval])
;;
esac
])
if test x$alsa_support = x; then
AC_CHECK_LIB(asound, snd_pcm_delay,
alsa_support=yes,
[
alsa_support=no
AC_MSG_WARN([ALSA version older than 0.9.0 not supported - update to a newer version or compile with --disable-alsa])
])
fi
AM_CONDITIONAL(ECA_AM_COMPILE_ALSA, test x$alsa_support = xyes)
if test x$alsa_support = xyes; then
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} -lasound"
AC_DEFINE([ECA_COMPILE_ALSA], 1, [enable ALSA support])
fi
dnl ------------------------------------------------------------------
AC_CHECK_JACK
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${ECA_S_JACK_INCLUDES}"
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${ECA_S_JACK_LIBS}"
dnl ------------------------------------------------------------------
dnl ---
dnl Check for already installed libkvutils
dnl
dnl defines: ECA_AM_KVUTILS_INSTALLED
dnl ---
AC_CHECK_LIB(kvutils,main,kvutils_installed=yes,kvutils_installed=no)
AM_CONDITIONAL(ECA_AM_KVUTILS_INSTALLED, test x$kvutils_installed = xyes)
dnl ------------------------------------------------------------------
dnl --
dnl Check whether to use an already installed readline library
dnl
dnl defines: ECA_AM_SYSTEM_READLINE, ECA_S_READLINE_INCLUDES,
dnl ECA_S_READLINE_LIBS
dnl --
AC_MSG_CHECKING(whether to build with system readline)
AC_ARG_ENABLE(sys_readline,
[ --enable-sys-readline Compile with system readline (default=yes)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
enable_sysreadline=yes
;;
n | no)
AC_MSG_RESULT(no)
enable_sysreadline=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-sys-readline: $enableval])
;;
esac
],
[
AC_MSG_RESULT(yes)
enable_sysreadline=yes
]
)
dnl Check for readline.h or readline/readline.h (same with history.h)
dnl and for readline and history libraries
if test x$enable_sysreadline = xyes; then
AC_CHECK_HEADER(readline.h, ECA_S_READLINE_INCLUDES=/usr/include,
[AC_CHECK_HEADER(readline/readline.h,
ECA_S_READLINE_INCLUDES=/usr/include/readline,
[
AC_MSG_WARN([*** readline headers not installed ***])
enable_sysreadline=no
])])
AC_CHECK_HEADER(history.h,,
[AC_CHECK_HEADER(readline/history.h,,
[
AC_MSG_WARN([*** readline history headers not installed ***])
enable_sysreadline=no
])
])
if test x${termcap_library} = xnone; then
readline_extra_libs="";
else
readline_extra_libs="-l${termcap_library}"
fi
AC_CHECK_LIB(readline, main, ECA_S_READLINE_LIBS="-lreadline",
[
AC_MSG_WARN([*** readline support not installed ***])
enable_sysreadline=no
], ${readline_extra_libs})
AC_CHECK_LIB(history, main, ECA_S_READLINE_LIBS="${ECA_S_READLINE_LIBS} -lhistory",
[
AC_MSG_WARN([*** readline support not installed ***])
enable_sysreadline=no
], ${readline_extra_libs})
else
ECA_S_READLINE_INCLUDES=""
ECA_S_READLINE_LIBS=""
fi
# if no readline library is found, disable platform-curses toggle
if test $enable_sysreadline = no ; then
eca_platform_curses_support=no
fi
AM_CONDITIONAL(ECA_AM_SYSTEM_READLINE, test x$enable_sysreadline = xyes)
AC_SUBST(ECA_S_READLINE_INCLUDES)
AC_SUBST(ECA_S_READLINE_LIBS)
dnl ------------------------------------------------------------------
dnl --
dnl Check for liboil (optional)
dnl --
PKG_CHECK_MODULES([LIBOIL], [liboil-0.3], HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
AC_MSG_CHECKING(whether to use liboil)
AC_ARG_ENABLE(liboil,
[ --enable-liboil Use liboil if available (default=no)],
[
case "$enableval" in
y | yes)
if test "x${HAVE_LIBOIL}" = xyes ; then
AC_MSG_RESULT(yes)
enable_liboil=yes
else
AC_MSG_RESULT(no)
AC_MSG_WARN([--enable-liboil given but liboil library not available])
fi
;;
n | no)
AC_MSG_RESULT(no)
enable_liboil=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-liboil: $enableval])
;;
esac
],
[
if test "x${HAVE_LIBOIL}" = xyes ; then
AC_MSG_RESULT(yes)
enable_liboil=yes
else
AC_MSG_RESULT(no)
AC_MSG_WARN([disabling liboil as library devel files are not available])
fi
]
)
if test "x${enable_liboil}" = "xyes" ; then
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${LIBOIL_CFLAGS}"
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${LIBOIL_LIBS}"
AC_DEFINE([ECA_USE_LIBOIL], 1, [Use liboil])
fi
dnl ------------------------------------------------------------------
dnl --
dnl Check for liblo (optional)
dnl --
PKG_CHECK_MODULES([LIBLO], [liblo], HAVE_LIBLO=yes, HAVE_LIBLO=no)
AC_MSG_CHECKING(whether to use liblo for OSC support)
AC_ARG_ENABLE(liblo,
[ --enable-liblo Use liblo if available (default=yes)],
[
case "$enableval" in
y | yes)
if test "x${HAVE_LIBLO}" = xyes ; then
AC_MSG_RESULT(yes)
enable_liblo=yes
else
AC_MSG_RESULT(no)
AC_MSG_WARN([--enable-liblo given but liblo library not available])
fi
;;
n | no)
AC_MSG_RESULT(no)
enable_liblo=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-liblo: $enableval])
;;
esac
],
[
enable_liblo=${HAVE_LIBLO}
AC_MSG_RESULT(${enable_liblo})
]
)
if test "x${enable_liblo}" = "xyes" ; then
ECA_S_EXTRA_CPPFLAGS="${ECA_S_EXTRA_CPPFLAGS} ${LIBLO_CFLAGS}"
ECA_S_EXTRA_LIBS="${ECA_S_EXTRA_LIBS} ${LIBLO_LIBS}"
AC_DEFINE([ECA_USE_LIBLO], 1, [Use liblo for OSC support])
fi
dnl ------------------------------------------------------------------
dnl All non-std external libraries that libecasound depends on
AC_SUBST(ECA_S_EXTRA_CPPFLAGS)
AC_SUBST(ECA_S_EXTRA_LIBS)
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "5. Section: Headers"
echo "------------------------------------------------------------------"
dnl ------------------------------------------------------------------
dnl ---
dnl Checks for system header files.
dnl ---
AC_HEADER_TIME
dnl Note! Header filenames must be on the same line!
AC_CHECK_HEADERS(dlfcn.h errno.h fcntl.h regex.h signal.h unistd.h sys/poll.h sys/stat.h sys/socket.h sys/time.h sys/types.h sys/wait.h sys/select.h,,
AC_MSG_ERROR([*** not all required header files were found ***]))
AC_CHECK_HEADERS(execinfo.h features.h inttypes.h locale.h ladspa.h sched.h stdint.h sys/mman.h termios.h)
dnl ------------------------------------------------------------------
dnl ---
dnl C++ specific checks
dnl ---
dnl AC_HEADER_STDC
AC_HEADER_STDC
dnl --- AC_CHECK_HEADER(stl.h,,
dnl --- AC_MSG_WARN([** C++/STL header files not found! ***]))
AC_LANG_CPLUSPLUS
AC_CHECK_HEADER(map,nostlmap=0,nostlmap=1)
if test "x$nostlmap" = "x1" ; then
AC_MSG_ERROR([C++ header files not found! Searched for '<map>' (STL).])
fi
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "6. Section: Typedefs and structures"
echo "------------------------------------------------------------------"
dnl ---
dnl Checks for typedefs, structures, and compiler characteristics.
dnl ---
AC_LANG_C
dnl AC_C_CONST
AC_C_BIGENDIAN
AC_TYPE_SIZE_T
AC_LANG_CPLUSPLUS
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "7. Section: Functions"
echo "------------------------------------------------------------------"
dnl ---
dnl Checks for functions.
dnl ---
AC_FUNC_MMAP
AC_CHECK_FUNCS(execvp gettimeofday pthread_mutexattr_init,,
AC_MSG_ERROR([*** not all required library functions were found ***]))
AC_CHECK_FUNCS(clock_gettime)
AC_CHECK_FUNCS(mlockall)
AC_CHECK_FUNCS(munlockall)
AC_CHECK_FUNCS(nanosleep)
AC_CHECK_FUNCS(pause)
AC_CHECK_FUNCS(posix_memalign)
AC_CHECK_FUNCS(pthread_self)
AC_CHECK_FUNCS(pthread_getschedparam)
AC_CHECK_FUNCS(pthread_setschedparam)
AC_CHECK_FUNCS(pthread_sigmask)
AC_CHECK_FUNCS(pthread_kill)
AC_CHECK_FUNCS(sched_get_priority_max)
AC_CHECK_FUNCS(sched_getparam)
AC_CHECK_FUNCS(sched_getscheduler)
AC_CHECK_FUNCS(sched_setscheduler)
AC_CHECK_FUNCS(setlocale)
AC_CHECK_FUNCS(sigprocmask)
AC_CHECK_FUNCS(sigwait)
AC_CHECK_FUNCS(usleep)
dnl ------------------------------------------------------------------
dnl ---
dnl Check whether to disable all use of shared libs
dnl
dnl Note! Must be run after all other autoconf tests as
dnl 'ld' doesn't understand -all-static.
dnl
dnl defines: ECA_STATIC_ONLY, ECA_AM_STATIC_ONLY
dnl modifies: AM_CXXFLAGS, AM_CFLAGS, AM_LDFLAGS
dnl ---
AC_ARG_ENABLE(all-static,
[ --enable-all-static Build only static binaries (default = no)],
[
case "$enableval" in
y | yes)
AC_MSG_RESULT(yes)
enable_all_static=yes
;;
n | no)
AC_MSG_RESULT(no)
enable_all_static=no
;;
*)
AC_MSG_ERROR([Invalid parameter value for --enable-all-static: $enableval])
;;
esac
])
if test x$enable_all_static = xyes; then
AC_DEFINE([ECA_ALL_STATIC], 1, [disable all use of shared libs])
AM_CXXFLAGS="$AM_CXXFLAGS -static"
AM_CFLAGS="$AM_CFLAGS -static"
AM_LDFLAGS="$AM_LDFLAGS -Bstatic -all-static"
fi
AM_CONDITIONAL(ECA_AM_ALL_STATIC, test x$enable_all_static = xyes)
dnl ------------------------------------------------------------------
dnl ---
dnl Checks for platform options
dnl ---
if test $eca_platform_curses_support == yes ; then
AC_DEFINE([ECA_PLATFORM_CURSES], 1, [enable ecasound curses console interface])
fi
dnl ------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo "8. Section: Output"
echo "------------------------------------------------------------------"
dnl ---
dnl Create output files
dnl ---
AC_OUTPUT([
Makefile
ecasound.spec
libecasound/Makefile
libecasound/libecasound-config
libecasound/plugins/Makefile
libecasoundc/Makefile
libecasoundc/libecasoundc-config
pyecasound/Makefile
rubyecasound/Makefile
ecasound/Makefile
ecatools/Makefile
kvutils/Makefile
Documentation/Makefile
Documentation/users_guide/Makefile
Documentation/programmers_guide/Makefile
examples/Makefile
])
dnl ---
dnl Print summary of the configured options
dnl ---
echo "-----------------------------------------------------------------"
echo "Following packages are now configured:"
echo "ecasound: yes (ecasound,libecasound,libecasoundc)"
echo "ecatools: yes"
if test x$pyecasound_support != xnone ; then
if test x$pyecasound_support = xc ; then
echo "pyecasound: yes (as Python C extension module)"
else
echo "pyecasound: yes (as native Python module)"
fi
else
echo "pyecasound: no"
fi
if test x$rubyecasound_support = xyes ; then
echo "rubyecasound: yes"
else
echo "rubyecasound: no"
fi
echo "libkvutils: yes"
echo "-----------------------------------------------------------------"
echo "Compiler options:"
echo "CFLAGS: $AM_CFLAGS $CFLAGS"
echo "CXXFLAGS: $AM_CXXFLAGS $CXXFLAGS"
echo "CPPFLAGS: $AM_CPPFLAGS $CPPFLAGS"
echo "LDFLAGS: $AM_LDFLAGS $LDFLAGS"
echo "-----------------------------------------------------------------"
echo "Following features were selected:"
if test x$include_debug = xyes ; then
echo "Debugging info: yes"
else
echo "Debugging info: no"
fi
if test x$enable_effects_d = xyes ; then
echo "Effects enabled: yes"
else
echo "Effects enabled: no"
fi
if test x$enable_largefile = xyes ; then
echo "Largefile support: yes"
else
echo "Largefile support: no"
fi
if test x$termcap_library = xtermcap ; then
echo "Termcap: termcap"
fi
if test x$termcap_library = xncurses; then
echo "Termcap: ncurses"
fi
if test x$termcap_library = xnone; then
echo "Termcap: none"
fi
if test x$enable_sysreadline = xyes ; then
echo "Use system readline: yes"
else
echo "Use system readline: no"
fi
echo "Use curses interface: $eca_platform_curses_support"
if test x$af_support = xyes ; then
echo "Libaudiofile: yes"
else
echo "Libaudiofile: no"
fi
if test x$sndfile_support = xyes ; then
echo "Libsndfile: yes"
else
echo "Libsndfile: no"
fi
if test x$alsa_support = xyes ; then
echo "ALSA support: yes"
else
echo "ALSA support: no"
fi
if test x$oss_support = xyes ; then
echo "OSS support: yes"
else
echo "OSS support: no"
fi
if test x$arts_support = xyes ; then
echo "aRts support: yes"
else
echo "aRts support: no"
fi
if test x$jack_support = xyes ; then
echo "JACK support: yes"
else
echo "JACK support: no"
fi
if test x$samplerate_support = xyes ; then
echo "Libsamplerate support yes"
else
echo "Libsamplerate support no"
fi
if test x$enable_liboil = xyes ; then
echo "Liboil support: yes"
else
echo "Liboil support: no"
fi
if test x$enable_liblo = xyes ; then
echo "Liblo (OSC) support: yes"
else
echo "Liblo (OSC) support: no"
fi
echo "-----------------------------------------------------------------"
echo "Following directories are used:"
echo "Directory prefix: "$ECA_S_PREFIX
if test x$pyecasound_support != xnone ; then
echo "Python include dir: "$ECA_S_PYTHON_INCLUDES
echo "Python module dir: "$ECA_S_PYTHON_MODULES
fi
if test x$rubyecasound_support != xnone ; then
echo "Ruby module dir: "$ECA_S_RUBY_SITEDIR
fi
if test "x$ECA_S_EXTRA_CPPFLAGS" != "x" ; then
echo "Extra headers: "$ECA_S_EXTRA_CPPFLAGS
fi
if test "x$ECA_S_EXTRA_LIBS" != "x" ; then
echo "Extra libs: "$ECA_S_EXTRA_LIBS
fi
echo "-------------------------------------------------------------------"
echo "Type 'make' to compile the package and 'make install' to install."
echo "Remember to use GNU Make, often installed as 'gmake'."
echo "-------------------------------------------------------------------"
dnl ------------------------------------------------------------------
dnl X. Section: End
dnl ------------------------------------------------------------------