From aebdd9e980cc4e8497c06c8b65174c56e2047582 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 24 May 2007 15:28:22 +0200 Subject: Enable link with external libspeex - Add --with-speex configure option to specify the build of speex rate plugin. As default, it's linked to external library. If not available, defaults to builtin code. - Show build conditions at the end of configure script - Use AS_HELP_TEXT() --- Makefile.am | 5 +++- configure.in | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++-- pph/Makefile.am | 8 ++++++- pph/rate_speexrate.c | 4 ++++ 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 0f68336..0433bca 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,8 +14,11 @@ endif if HAVE_DBUS MAEMODIR = maemo endif +if HAVE_PPH +PPHDIR = pph +endif -SUBDIRS = oss mix pph $(JACKDIR) $(PULSEDIR) $(SAMPLERATEDIR) $(A52DIR) $(LAVCRATEDIR) $(MAEMODIR) doc +SUBDIRS = oss mix $(PPHDIR) $(JACKDIR) $(PULSEDIR) $(SAMPLERATEDIR) $(A52DIR) $(LAVCRATEDIR) $(MAEMODIR) doc EXTRA_DIST = hgcompile version COPYING.GPL AUTOMAKE_OPTIONS = foreign diff --git a/configure.in b/configure.in index 9313b0f..9875a6f 100644 --- a/configure.in +++ b/configure.in @@ -32,10 +32,12 @@ if test "$HAVE_DBUS" = "yes"; then fi AC_ARG_WITH([avcodec-includedir], - [--with-avcodec-includedir=dir AVcodec include directory], + AS_HELP_STRING([--with-avcodec-includedir=dir], + [AVcodec include directory]), [AVCODEC_CFLAGS="-I$withval"], [AVCODEC_CFLAGS=""]) AC_ARG_WITH([avcodec-libdir], - [--with-avcodec-libdir=dir AVcodec library directory], + AS_HELP_STRING([--with-avcodec-libdir=dir], + [AVcodec library directory]), [AVCODEC_LIBS="-L$withval"], [AVCODEC_LIBS=""]) CFLAGS_saved="$CFLAGS" LDFLAGS_saved="$LDFLAGS" @@ -52,6 +54,29 @@ AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes) CFLAGS="$CFLAGS_saved" LDFLAGS="$LDFLAGS_saved" +USE_LIBSPEEX="" +AC_ARG_WITH([speex], + AS_HELP_STRING([--with-speex={builtin|lib|no}], + [build speex resampler (built-in code, link with external lib, or no build)]), + [PPH=$withval], [PPH="lib"]) + +if test "$PPH" = "lib"; then + PKG_CHECK_MODULES(speex, [speex >= 1.2], [USE_LIBSPEEX="yes"], [USE_LIBSPEEX=""]) + if test "$USE_LIBSPEEX" = "yes"; then + AC_CHECK_LIB([speex], [speex_resampler_init], + [USE_LIBSPEEX="yes"], [USE_LIBSPEEX=""]) + fi + if test "$USE_LIBSPEEX" = "yes"; then + AC_DEFINE(USE_LIBSPEEX, 1, "Link with libspeex for resampler") + else + echo "No libspeex with resampler unit; use built-in code" + PPH="builtin" + fi +fi + +AM_CONDITIONAL(HAVE_PPH, test "$PPH" = "builtin" -o "$PPH" = "lib") +AM_CONDITIONAL(USE_LIBSPEEX, test "$PPH" = "lib") + dnl ALSA plugin directory test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix @@ -87,3 +112,40 @@ AC_OUTPUT([ maemo/Makefile doc/Makefile ]) + +dnl Show the build conditions + +echo +echo "Plugin directory: $ALSA_PLUGIN_DIR" +echo "ALSA_CFLAGS: $ALSA_CFLAGS" +echo "ALSA_LIBS: $ALSA_LIBS" +echo "JACK plugin: $HAVE_JACK" +if test "$HAVE_JACK" = "yes"; then + echo " JACK_CFLAGS: $JACK_CFLAGS" + echo " JACK_LIBS: $JACK_LIBS" +fi +echo "Pulseaudio plugin: $HAVE_PULSE" +if test "$HAVE_PULSE" = "yes"; then + echo " pulseaudio_CFLAGS: $pulseaudio_CFLAGS" + echo " pulseaudio_LIBS: $pulseaudio_LIBS" +fi +echo "Samplerate plugin: $HAVE_SAMPLERATE" +if test "$HAVE_SAMPLERATE" = "yes"; then + echo " samplerate_CFLAGS: $samplerate_CFLAGS" + echo " samplerate_LIBS: $samplerate_LIBS" +fi +echo "Maemo plugin: $HAVE_DBUS" +if test "$HAVE_DBUS" = "yes"; then + echo " DBUS_CFLAGS: $DBUS_CFLAGS" + echo " DBUS_LIBS: $DBUS_LIBS" +fi +echo "A52, lavc plugins: $HAVE_AVCODEC" +if test "$HAVE_AVCODEC" = "yes"; then + echo " AVCODEC_CFLAGS: $AVCODEC_CFLAGS" + echo " AVCODEC_LIBS: $AVCODEC_LIBS" +fi +echo "Speex rate plugin: $PPH" +if test "$PPH" = "lib"; then + echo " speex_CFLAGS: $speex_CFLAGS" + echo " speex_LIBS: $speex_LIBS" +fi diff --git a/pph/Makefile.am b/pph/Makefile.am index 8fd5098..ee630cd 100644 --- a/pph/Makefile.am +++ b/pph/Makefile.am @@ -5,8 +5,14 @@ asound_module_rate_speexratedir = @ALSA_PLUGIN_DIR@ AM_CFLAGS = -DVAR_ARRAYS -DRANDOM_PREFIX=alsa_lib -DOUTSIDE_SPEEX -Wall -g @ALSA_CFLAGS@ AM_LDFLAGS = -module -avoid-version -export-dynamic -libasound_module_rate_speexrate_la_SOURCES = rate_speexrate.c resample.c +libasound_module_rate_speexrate_la_SOURCES = rate_speexrate.c libasound_module_rate_speexrate_la_LIBADD = @ALSA_LIBS@ +if USE_LIBSPEEX +AM_CFLAGS += @speex_CFLAGS@ +libasound_module_rate_speexrate_la_LIBADD += @speex_LIBS@ +else +libasound_module_rate_speexrate_la_SOURCES += resample.c +endif install-exec-hook: rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so diff --git a/pph/rate_speexrate.c b/pph/rate_speexrate.c index 195b16d..9eb33b9 100644 --- a/pph/rate_speexrate.c +++ b/pph/rate_speexrate.c @@ -32,7 +32,11 @@ #include #include +#ifdef USE_LIBSPEEX +#include +#else #include "speex_resampler.h" +#endif struct rate_src { int quality; -- cgit