libao: Remove OSS plugin when ALSA is enabled
authorMaarten ter Huurne <maarten@treewalker.org>
Tue, 8 Apr 2014 17:45:07 +0000 (19:45 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 3 May 2014 20:25:35 +0000 (22:25 +0200)
At runtime, libao will load all plugins, even ones that will never be used.
Since libao will prefer ALSA over OSS by default anyway, it is pretty safe
to exclude the OSS plugin.

There is no configure option for disabling the OSS plugin, so we remove
the shared object in a post-install hook.

Also disable alsa oss emulation workaround as it no longer will be used with
alsa.

[Peter: explain why --disable-broken-oss is passed]
Signed-Off-By: Maarten ter Huurne <maarten@treewalker.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libao/libao.mk

index 8e9ee3591576c076ece7b6773d522cba423a807f..3f7d16668d6fcd41b6e88c33123f67342e0582c9 100644 (file)
@@ -11,11 +11,17 @@ LIBAO_INSTALL_STAGING = YES
 LIBAO_LICENSE = GPLv2+
 LIBAO_LICENSE_FILES = COPYING
 LIBAO_CONF_OPT = --disable-esd --disable-wmm --disable-arts \
-                       --disable-nas --disable-pulse
+                       --disable-nas --disable-pulse --disable-broken-oss
 
 ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
 LIBAO_DEPENDENCIES += alsa-lib
 LIBAO_CONF_OPT += --enable-alsa --enable-alsa-mmap
+
+# Remove the OSS plugin if ALSA is enabled, as libao will prefer ALSA anyway
+define LIBAO_REMOVE_OSS_PLUGIN
+       rm -f $(TARGET_DIR)/usr/lib/ao/plugins-4/liboss.so
+endef
+LIBAO_POST_INSTALL_TARGET_HOOKS += LIBAO_REMOVE_OSS_PLUGIN
 else
 LIBAO_CONF_OPT += --disable-alsa
 endif