diff options
-rw-r--r-- | configure.ac | 108 |
1 files changed, 73 insertions, 35 deletions
diff --git a/configure.ac b/configure.ac index d8d45d4..68dffad 100644 --- a/configure.ac +++ b/configure.ac @@ -346,44 +346,82 @@ dnl Check for sndfile dnl ====================== PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.20) -AC_ARG_WITH(resample, [ --with-resample Build with resample support]) -if test x$with_resample == xyes; then + +AC_ARG_ENABLE([resampler], +[ --enable-resampler[=lib] Enable resampler using either 'zita' or 'src' (libsamplerate). Use 'auto' for autodetect [default=auto]],, + [enable_resampler="auto"]) +if test "x$enable_resampler" = "xyes"; then + enable_resampler="auto" +fi + +has_src=no +has_zita=no +if test x$enable_resampler != xno; then AC_MSG_WARN([*** Building resample support!]) - AC_DEFINE(WITH_RESAMPLE, [], [Use resample]) + AC_DEFINE(WITH_RESAMPLER, [], [Use resample]) - dnl ====================== - dnl Check for libsamplerate - dnl ====================== - PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.7) + if test x$enable_resampler == xauto || test x$enable_resampler == xsrc; then + dnl ====================== + dnl Check for libsamplerate + dnl ====================== + PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.7, has_src=yes, has_src=no) + fi -# dnl ====================== -# dnl Check for the zitaresampler library -# dnl ====================== -# AC_LANG_PUSH([C++]) -# tmp_CXXFLAGS="$CXXFLAGS" -# tmp_CPPFLAGS="$CPPFLAGS" -# tmp_CFLAGS="$CFLAGS" -# tmp_LDFLAGS="$LDFLAGS" -# tmp_LIBS="$LIBS" -# CXXFLAGS="" -# CPPFLAGS="$ZITA_CPPFLAGS" -# CFLAGS="" -# LDFLAGS="$ZITA_LDFLAGS" -# LIBS="" -# AC_CHECK_HEADER(zita-resampler/resampler.h, , -# AC_MSG_ERROR([*** zita-resampler header files not found! Set ZITA_CPPFLAGS to add searchpath.])) -# AC_CHECK_LIB(zita-resampler, _Z28zita_resampler_major_versionv, , -# AC_MSG_ERROR([*** zita-resampler library not found! Set ZITA_LDFLAGS to add searchpath.])) -# ZITA_CPPFLAGS="$CXXFLAGS $CPPFLAGS $CFLAGS" -# ZITA_LIBS="$LDFLAGS $LIBS" -# CXXFLAGS="$tmp_CXXFLAGS" -# CPPFLAGS="$tmp_CPPFLAGS" -# CFLAGS="$tmp_CFLAGS" -# LDFLAGS="$tmp_LDFLAGS" -# LIBS="$tmp_LIBS" -# AC_SUBST(ZITA_CPPFLAGS) -# AC_SUBST(ZITA_LIBS) -# AC_LANG_POP([C++]) + if test x$enable_resampler == xauto || test x$enable_resampler == xzita; then + dnl ====================== + dnl Check for the zitaresampler library + dnl ====================== + AC_LANG_PUSH([C++]) + tmp_CXXFLAGS="$CXXFLAGS" + tmp_CPPFLAGS="$CPPFLAGS" + tmp_CFLAGS="$CFLAGS" + tmp_LDFLAGS="$LDFLAGS" + tmp_LIBS="$LIBS" + CXXFLAGS="" + CPPFLAGS="$ZITA_CPPFLAGS" + CFLAGS="" + LDFLAGS="$ZITA_LDFLAGS" + LIBS="" + AC_CHECK_HEADER(zita-resampler/resampler.h, + AC_CHECK_LIB(zita-resampler, _Z28zita_resampler_major_versionv, has_zita=yes, has_zita=no), + has_zita=no) + ZITA_CPPFLAGS="$CXXFLAGS $CPPFLAGS $CFLAGS" + ZITA_LIBS="$LDFLAGS $LIBS -lzita-resampler" + CXXFLAGS="$tmp_CXXFLAGS" + CPPFLAGS="$tmp_CPPFLAGS" + CFLAGS="$tmp_CFLAGS" + LDFLAGS="$tmp_LDFLAGS" + LIBS="$tmp_LIBS" + AC_SUBST(ZITA_CPPFLAGS) + AC_SUBST(ZITA_LIBS) + AC_LANG_POP([C++]) + fi +fi + +if test x$enable_resampler == xauto; then + if test x$has_zita == xyes; then + enable_resampler=zita + elif test x$has_src == xyes; then + enable_resampler=src + else + AC_MSG_ERROR([*** No resampler library present. Either libsamplerate or zita-resampler must be installed.]) + fi +fi + +if test x$enable_resampler == xzita; then + if test x$has_zita == xyes; then + AC_DEFINE(USE_ZITA, [], [zita-resampler is present]) + else + AC_MSG_ERROR([*** zita-resampler library or headers not found. Set ZITA_LDFLAGS or ZITA_CPPFLAGS to add searchpath.]) + fi +fi + +if test x$enable_resampler == xsrc; then + if test x$has_src == xyes; then + AC_DEFINE(USE_SRC, [], [libsamplerate is present]) + else + AC_MSG_ERROR([*** Missing libsamplerate.]) + fi fi #dnl ====================== |