-#############################################################
+################################################################################
#
# alsa-lib
#
-#############################################################
-ALSA_LIB_VERSION:=1.0.14a
-ALSA_LIB_SOURCE:=alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
-ALSA_LIB_SITE:=ftp://ftp.alsa-project.org/pub/lib
-ALSA_LIB_DIR:=$(BUILD_DIR)/alsa-lib-$(ALSA_LIB_VERSION)
-ALSA_LIB_CAT:=$(BZCAT)
-ALSA_LIB_BINARY:=libasound.so.2.0.0
-ALSA_LIB_TARGET_BINARY:=usr/lib/$(ALSA_LIB_BINARY)
+################################################################################
-ifeq ($(BR2_arm),y)
-ALSA_LIB_ABI:=-mabi=aapcs-linux
+ALSA_LIB_VERSION = 1.0.28
+ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
+ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib
+ALSA_LIB_LICENSE = LGPLv2.1+
+ALSA_LIB_LICENSE_FILES = COPYING
+ALSA_LIB_INSTALL_STAGING = YES
+ALSA_LIB_CFLAGS = $(TARGET_CFLAGS)
+ALSA_LIB_AUTORECONF = YES
+ALSA_LIB_CONF_OPTS = --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_STATIC_LIBS),y)
+ALSA_LIB_CONF_OPTS += --enable-shared=no
else
-ALSA_LIB_ABI:=
+ALSA_LIB_CONF_OPTS += --enable-static=no
endif
-ifeq ($(BR2_SOFT_FLOAT),y)
- SOFT_FLOAT=--with-softfloat
+ifneq ($(BR2_PACKAGE_ALSA_LIB_ALOAD),y)
+ALSA_LIB_CONF_OPTS += --disable-aload
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y)
+ALSA_LIB_CONF_OPTS += --disable-mixer
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_PCM),y)
+ALSA_LIB_CONF_OPTS += --disable-pcm
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_RAWMIDI),y)
+ALSA_LIB_CONF_OPTS += --disable-rawmidi
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_HWDEP),y)
+ALSA_LIB_CONF_OPTS += --disable-hwdep
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_SEQ),y)
+ALSA_LIB_CONF_OPTS += --disable-seq
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_ALISP),y)
+ALSA_LIB_CONF_OPTS += --disable-alisp
+endif
+ifneq ($(BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS),y)
+ALSA_LIB_CONF_OPTS += --disable-old-symbols
endif
-$(DL_DIR)/$(ALSA_LIB_SOURCE):
- $(WGET) -P $(DL_DIR) $(ALSA_LIB_SITE)/$(ALSA_LIB_SOURCE)
-
-$(ALSA_LIB_DIR)/.unpacked: $(DL_DIR)/$(ALSA_LIB_SOURCE)
- $(ALSA_LIB_CAT) $(DL_DIR)/$(ALSA_LIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(ALSA_LIB_DIR) package/alsa-lib/ alsa-lib-$(ALSA_LIB_VERSION)\*.patch*
- $(CONFIG_UPDATE) $(ALSA_LIB_DIR)
- touch $@
-
-$(ALSA_LIB_DIR)/.configured: $(ALSA_LIB_DIR)/.unpacked
- (cd $(ALSA_LIB_DIR); rm -rf config.cache; \
- $(TARGET_CONFIGURE_ARGS) \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS) $(ALSA_LIB_ABI)" \
- LDFLAGS="$(TARGET_LDFLAGS) -lm" \
- ./configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-shared \
- --enable-static \
- --disable-docs \
- --with-alsa-devdir=/dev \
- $(SOFT_FLOAT) \
- $(DISABLE_NLS) \
- )
- touch $@
-
-$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured
- $(MAKE) -C $(ALSA_LIB_DIR)
- touch -c $@
-
-$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY)
- $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install
- $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libasound.la
+ifeq ($(BR2_avr32),y)
+ALSA_LIB_CFLAGS += -DAVR32_INLINE_BUG
+endif
-$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY)
- mkdir -p $(TARGET_DIR)/usr/share/alsa $(TARGET_DIR)/usr/lib/alsa-lib
- cp -dpf $(STAGING_DIR)/usr/lib/libasound.so* $(TARGET_DIR)/usr/lib/
- cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/
- cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/
- -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libasound.so*
- -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/alsa-lib/smixer/*.so
- touch -c $@
+ifeq ($(BR2_PACKAGE_ALSA_LIB_PYTHON),y)
+ALSA_LIB_CONF_OPTS += \
+ --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_OPTS += --disable-python
+endif
-alsa-lib: uclibc $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY)
+ifeq ($(BR2_SOFT_FLOAT),y)
+ALSA_LIB_CONF_OPTS += --with-softfloat
+endif
-alsa-lib-source: $(DL_DIR)/$(ALSA-LIB_SOURCE)
+ifeq ($(BR2_bfin),y)
+# blackfin external toolchains don't have versionsort. Fake it using alphasort
+# instead
+ALSA_LIB_CFLAGS += -Dversionsort=alphasort
+endif
-alsa-lib-clean:
- rm -f $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY)
- -$(MAKE) -C $(ALSA_LIB_DIR) clean
+ALSA_LIB_CONF_ENV = CFLAGS="$(ALSA_LIB_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -lm"
-alsa-lib-dirclean:
- rm -rf $(ALSA_LIB_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(strip $(BR2_PACKAGE_ALSA_LIB)),y)
-TARGETS+=alsa-lib
-endif
+$(eval $(autotools-package))