diff options
Diffstat (limited to 'package/alsa-lib')
-rw-r--r-- | package/alsa-lib/Config.in | 73 | ||||
-rw-r--r-- | package/alsa-lib/alsa-lib-avr32-bad-inline.patch | 91 | ||||
-rw-r--r-- | package/alsa-lib/alsa-lib.mk | 86 |
3 files changed, 250 insertions, 0 deletions
diff --git a/package/alsa-lib/Config.in b/package/alsa-lib/Config.in new file mode 100644 index 000000000..98b83139d --- /dev/null +++ b/package/alsa-lib/Config.in @@ -0,0 +1,73 @@ +config BR2_PACKAGE_ALSA_LIB + bool "alsa-lib" + # Temporary until + # https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4913 + # is fixed + select BR2_PACKAGE_ALSA_LIB_PCM + help + The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI + functionality to the Linux operating system. + + http://www.alsa-project.org/ + +config BR2_PACKAGE_ALSA_LIB_PYTHON + bool "Python support for alsa-lib" + depends on BR2_PACKAGE_ALSA_LIB + depends on BR2_PACKAGE_PYTHON + help + Add python support for alsa-lib. + Python will be built and libpython will be installed + in the target directory + http://www.alsa-project.org/ + +if BR2_PACKAGE_ALSA_LIB +menu "ALSA lib selection" + +config BR2_PACKAGE_ALSA_LIB_DEVDIR + string "directory with ALSA device files" + default "/dev/snd" + +config BR2_PACKAGE_ALSA_LIB_PCM_PLUGINS + string "built PCM plugins" + default "all" + +config BR2_PACKAGE_ALSA_LIB_CTL_PLUGINS + string "built control plugins" + default "all" + +config BR2_PACKAGE_ALSA_LIB_ALOAD + bool "aload" + default y + +config BR2_PACKAGE_ALSA_LIB_MIXER + bool "mixer" + default y + +config BR2_PACKAGE_ALSA_LIB_PCM + bool "pcm" + default y + +config BR2_PACKAGE_ALSA_LIB_RAWMIDI + bool "rawmidi" + default y + +config BR2_PACKAGE_ALSA_LIB_HWDEP + bool "hwdep" + default y + +config BR2_PACKAGE_ALSA_LIB_SEQ + bool "seq" + default y + +config BR2_PACKAGE_ALSA_LIB_ALISP + bool "alisp" + default y + +config BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS + bool "old-symbols" + default y + +endmenu + +endif + diff --git a/package/alsa-lib/alsa-lib-avr32-bad-inline.patch b/package/alsa-lib/alsa-lib-avr32-bad-inline.patch new file mode 100644 index 000000000..568ba40a4 --- /dev/null +++ b/package/alsa-lib/alsa-lib-avr32-bad-inline.patch @@ -0,0 +1,91 @@ +diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h alsa-lib-1.0.18/src/pcm/pcm_local.h +--- alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h 2009-01-31 11:02:12.000000000 +0100 ++++ alsa-lib-1.0.18/src/pcm/pcm_local.h 2009-01-31 11:03:24.000000000 +0100 +@@ -611,6 +611,13 @@ + snd_pcm_hw_param_t var); + int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, + snd_pcm_hw_param_t var, unsigned int val, int dir); ++ ++#if defined(AVR32_INLINE_BUG) ++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params, ++ snd_pcm_format_t val); ++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params, ++ snd_pcm_subformat_t val); ++#else + static inline int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params, + snd_pcm_format_t val) + { +@@ -624,7 +631,7 @@ + return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT, + (unsigned long) val, 0); + } +- ++#endif + int _snd_pcm_hw_param_set_min(snd_pcm_hw_params_t *params, + snd_pcm_hw_param_t var, unsigned int val, int dir); + int _snd_pcm_hw_param_set_max(snd_pcm_hw_params_t *params, +diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c alsa-lib-1.0.18/src/pcm/pcm_route.c +--- alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c 2009-01-31 11:02:12.000000000 +0100 ++++ alsa-lib-1.0.18/src/pcm/pcm_route.c 2009-01-31 11:03:18.000000000 +0100 +@@ -26,6 +26,7 @@ + * + */ + ++ + #include <byteswap.h> + #include <math.h> + #include "pcm_local.h" +@@ -106,6 +107,23 @@ + + #endif /* DOC_HIDDEN */ + ++ ++#if defined(AVR32_INLINE_BUG) ++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params, ++ snd_pcm_format_t val) ++{ ++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_FORMAT, ++ (unsigned long) val, 0); ++} ++ ++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params, ++ snd_pcm_subformat_t val) ++{ ++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT, ++ (unsigned long) val, 0); ++} ++#endif ++ + static void snd_pcm_route_convert1_zero(const snd_pcm_channel_area_t *dst_area, + snd_pcm_uframes_t dst_offset, + const snd_pcm_channel_area_t *src_areas ATTRIBUTE_UNUSED, +@@ -483,6 +501,8 @@ + snd_pcm_uframes_t frames, + snd_pcm_route_params_t *params) + { ++#if defined(AVR32_INLINE_BUG) ++#endif + unsigned int dst_channel; + snd_pcm_route_ttable_dst_t *dstp; + const snd_pcm_channel_area_t *dst_area; +@@ -551,8 +571,20 @@ + _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS, + &saccess_mask); + if (route->sformat != SND_PCM_FORMAT_UNKNOWN) { ++#if defined(AVR32_INLINE_BUG) ++/* Start of of problem */ ++#endif + _snd_pcm_hw_params_set_format(sparams, route->sformat); + _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD); ++#if 0 ++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_FORMAT, ++ (unsigned long) route->sformat, 0); ++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_SUBFORMAT, ++ (unsigned long) SND_PCM_SUBFORMAT_STD, 0); ++#endif ++#if defined(AVR32_INLINE_BUG) ++/* End of problem */ ++#endif + } + if (route->schannels >= 0) { + _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_CHANNELS, diff --git a/package/alsa-lib/alsa-lib.mk b/package/alsa-lib/alsa-lib.mk new file mode 100644 index 000000000..2d27c960c --- /dev/null +++ b/package/alsa-lib/alsa-lib.mk @@ -0,0 +1,86 @@ +############################################################# +# +# alsa-lib +# +############################################################# + +ALSA_LIB_VERSION = 1.0.25 +ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2 +ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib +ALSA_LIB_INSTALL_STAGING = YES +ALSA_LIB_CFLAGS=$(TARGET_CFLAGS) +ALSA_LIB_CONF_OPT = --with-alsa-devdir=$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_DEVDIR)) \ + --with-pcm-plugins="$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_PCM_PLUGINS))" \ + --with-ctl-plugins="$(call qstrip,$(BR2_PACKAGE_ALSA_LIB_CTL_PLUGINS))" \ + --without-versioned + +# Can't build with static & shared at the same time (1.0.25+) +ifeq ($(BR2_PREFER_STATIC),y) +ALSA_LIB_CONF_OPT += --enable-shared=no +else +ALSA_LIB_CONF_OPT += --enable-static=no +endif + +ifneq ($(BR2_PACKAGE_ALSA_LIB_ALOAD),y) +ALSA_LIB_CONF_OPT += --disable-aload +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y) +ALSA_LIB_CONF_OPT += --disable-mixer +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_PCM),y) +ALSA_LIB_CONF_OPT += --disable-pcm +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_RAWMIDI),y) +ALSA_LIB_CONF_OPT += --disable-rawmidi +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_HWDEP),y) +ALSA_LIB_CONF_OPT += --disable-hwdep +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_SEQ),y) +ALSA_LIB_CONF_OPT += --disable-seq +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_ALISP),y) +ALSA_LIB_CONF_OPT += --disable-alisp +endif +ifneq ($(BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS),y) +ALSA_LIB_CONF_OPT += --disable-old-symbols +endif + +ifeq ($(BR2_ENABLE_DEBUG),y) +ALSA_LIB_CONF_OPT += --enable-debug +endif + +ifeq ($(BR2_avr32),y) +ALSA_LIB_CFLAGS+=-DAVR32_INLINE_BUG +endif + +ifeq ($(BR2_PACKAGE_ALSA_LIB_PYTHON),y) +ALSA_LIB_CONF_OPT += \ + --with-pythonlibs=-lpython$(PYTHON_VERSION_MAJOR) \ + --with-pythonincludes=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) +ALSA_LIB_CFLAGS+=-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) +ALSA_LIB_DEPENDENCIES = python +else +ALSA_LIB_CONF_OPT += --disable-python +endif + +ifeq ($(BR2_SOFT_FLOAT),y) +ALSA_LIB_CONF_OPT += --with-softfloat +endif + +ALSA_LIB_CONF_ENV = CFLAGS="$(ALSA_LIB_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS) -lm" + +define ALSA_LIB_UNINSTALL_TARGET_CMDS + -rm -f $(TARGET_DIR)/usr/lib/libasound.so* + -rm -rf $(TARGET_DIR)/usr/lib/alsa-lib + -rm -rf $(TARGET_DIR)/usr/share/alsa +endef + +define ALSA_LIB_UNINSTALL_STAGING_CMDS + -rm -f $(STAGING_DIR)/usr/lib/libasound.* + -rm -rf $(STAGING_DIR)/usr/lib/alsa-lib + -rm -rf $(STAGING_DIR)/usr/share/alsa +endef + +$(eval $(call AUTOTARGETS)) |