asound_module_pcm_a52_LTLIBRARIES = libasound_module_pcm_a52.la
 
-asound_module_pcm_a52dir = $(libdir)/alsa-lib
+asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 
 CFLAGS="$CFLAGS_saved"
 LDFLAGS="$LDFLAGS_saved"
 
+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/alsa-lib"
+fi
+AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "plugindir", [directory containing ALSA add-on modules])
+ALSA_PLUGIN_DIR="$plugindir"
+AC_SUBST(ALSA_PLUGIN_DIR)
+
 SAVE_PLUGINS_VERSION
 
 AC_OUTPUT([
 
 asound_module_pcm_jack_LTLIBRARIES = libasound_module_pcm_jack.la
 
-asound_module_pcm_jackdir = $(libdir)/alsa-lib
+asound_module_pcm_jackdir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @JACK_CFLAGS@
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 
 asound_module_pcm_alsa_dsp_LTLIBRARIES = libasound_module_pcm_alsa_dsp.la
 asound_module_ctl_dsp_ctl_LTLIBRARIES = libasound_module_ctl_dsp_ctl.la
 
-asound_module_pcm_alsa_dspdir = $(libdir)/alsa-lib
-asound_module_ctl_dsp_ctldir = $(libdir)/alsa-lib
+asound_module_pcm_alsa_dspdir = @ALSA_PLUGIN_DIR@
+asound_module_ctl_dsp_ctldir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -fPIC -DPIC -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS)
 AM_LDFLAGS = -shared -lm -ldl -lpthread -module -avoid-version -export-dynamic $(DBUS_LIBS)
 
 asound_module_pcm_upmix_LTLIBRARIES = libasound_module_pcm_upmix.la
 asound_module_pcm_vdownmix_LTLIBRARIES = libasound_module_pcm_vdownmix.la
 
-asound_module_pcm_upmixdir = $(libdir)/alsa-lib
-asound_module_pcm_vdownmixdir = $(libdir)/alsa-lib
+asound_module_pcm_upmixdir = @ALSA_PLUGIN_DIR@
+asound_module_pcm_vdownmixdir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 
 asound_module_pcm_oss_LTLIBRARIES = libasound_module_pcm_oss.la
 asound_module_ctl_oss_LTLIBRARIES = libasound_module_ctl_oss.la
 
-asound_module_pcm_ossdir = $(libdir)/alsa-lib
-asound_module_ctl_ossdir = $(libdir)/alsa-lib
+asound_module_pcm_ossdir = @ALSA_PLUGIN_DIR@
+asound_module_ctl_ossdir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 
 asound_module_rate_speexrate_LTLIBRARIES = libasound_module_rate_speexrate.la
 
-asound_module_rate_speexratedir = $(libdir)/alsa-lib
+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_LIBADD = @ALSA_LIBS@
 
 install-exec-hook:
-       rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_speexrate_*.so
-       $(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_speexrate_best.so
-       $(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_speexrate_medium.so
+       rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
+       $(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_best.so
+       $(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_medium.so
 
 uninstall-hook:
-       rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_speexrate_*.so
+       rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
 
 noinst_HEADERS = speex_resampler.h arch.h fixed_generic.h
 
 asound_module_pcm_LTLIBRARIES = libasound_module_pcm_pulse.la
 asound_module_ctl_LTLIBRARIES = libasound_module_ctl_pulse.la
 
-asound_module_pcmdir = $(libdir)/alsa-lib
-asound_module_ctldir = $(libdir)/alsa-lib
+asound_module_pcmdir = @ALSA_PLUGIN_DIR@
+asound_module_ctldir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 
 asound_module_rate_lavcrate_LTLIBRARIES = libasound_module_rate_lavcrate.la
 
-asound_module_rate_lavcratedir = $(libdir)/alsa-lib
+asound_module_rate_lavcratedir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 noinst_HEADERS = gcd.h
 
 install-exec-hook:
-       rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_*.so
-       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_higher.so
-       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_high.so
-       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_fast.so
-       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_faster.so
+       rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
+       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_higher.so
+       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_high.so
+       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_fast.so
+       $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_faster.so
 
 uninstall-hook:
-       rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_lavcrate_*.so
+       rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
 
 asound_module_rate_samplerate_LTLIBRARIES = libasound_module_rate_samplerate.la
 
-asound_module_rate_sampleratedir = $(libdir)/alsa-lib
+asound_module_rate_sampleratedir = @ALSA_PLUGIN_DIR@
 
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(samplerate_CFLAGS)
 AM_LDFLAGS = -module -avoid-version -export-dynamic
 libasound_module_rate_samplerate_la_LIBADD = @ALSA_LIBS@ @samplerate_LIBS@
 
 install-exec-hook:
-       rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_*.so
-       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_best.so
-       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_medium.so
-       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_order.so
-       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_linear.so
+       rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_*.so
+       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_best.so
+       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_medium.so
+       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_order.so
+       $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_linear.so
 
 uninstall-hook:
        rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_*.so