summaryrefslogtreecommitdiff
path: root/package/multimedia/libvorbis
diff options
context:
space:
mode:
Diffstat (limited to 'package/multimedia/libvorbis')
-rw-r--r--package/multimedia/libvorbis/Config.in25
-rw-r--r--package/multimedia/libvorbis/libvorbis.mk140
2 files changed, 165 insertions, 0 deletions
diff --git a/package/multimedia/libvorbis/Config.in b/package/multimedia/libvorbis/Config.in
new file mode 100644
index 000000000..17fd4e845
--- /dev/null
+++ b/package/multimedia/libvorbis/Config.in
@@ -0,0 +1,25 @@
+config BR2_PACKAGE_LIBVORBIS
+ bool "libvorbis"
+ depends on BR2_PACKAGE_LIBOGG
+ select BR2_PACKAGE_PKGCONFIG
+ help
+ Library for the Vorbis open source audio decoder
+ Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
+ general-purpose compressed audio format for mid to high quality
+ (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and
+ variable bitrates from 16 to 128 kbps/channel.
+
+ This places Vorbis in the same competitive class as audio
+ representations such as MPEG-4 (AAC), and similar to, but higher
+ performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ),
+ WMA and PAC.
+
+config BR2_PACKAGE_LIBVORBIS_TREMOR
+ bool "use fixed point implementation (tremor)"
+ default y if BR2_SOFT_FLOAT
+ depends on BR2_PACKAGE_LIBVORBIS
+ help
+ Use the Tremor fixed point implementation
+
+comment "libvorbis requires the package libogg to build"
+ depends on !BR2_PACKAGE_LIBOGG
diff --git a/package/multimedia/libvorbis/libvorbis.mk b/package/multimedia/libvorbis/libvorbis.mk
new file mode 100644
index 000000000..a42ba3b45
--- /dev/null
+++ b/package/multimedia/libvorbis/libvorbis.mk
@@ -0,0 +1,140 @@
+#############################################################
+#
+# libvorbis
+#
+#############################################################
+LIBVORBIS_VERSION:=1.2.0
+LIBVORBIS_SOURCE:=libvorbis-$(LIBVORBIS_VERSION).tar.gz
+LIBVORBIS_SITE:=http://downloads.xiph.org/releases/vorbis/$(LIBVORBIS-SOURCE)
+LIBVORBIS_DIR:=$(BUILD_DIR)/libvorbis-$(LIBVORBIS_VERSION)
+LIBVORBIS_BINARY:=libvorbis
+LIBVORBIS_TARGET_BINARY:=usr/bin/libvorbis
+LIBVORBIS_CAT:=$(ZCAT)
+
+$(DL_DIR)/$(LIBVORBIS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(LIBVORBIS_SITE)/$(LIBVORBIS_SOURCE)
+
+$(LIBVORBIS_DIR)/.source: $(DL_DIR)/$(LIBVORBIS_SOURCE)
+ $(LIBVORBIS_CAT) $(DL_DIR)/$(LIBVORBIS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $@
+
+$(LIBVORBIS_DIR)/.configured: $(LIBVORBIS_DIR)/.source
+ (cd $(LIBVORBIS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-static \
+ --disable-oggtest \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(LIBVORBIS_DIR)/.libs: $(LIBVORBIS_DIR)/.configured
+ $(MAKE) -C $(@D)
+ touch $@
+
+$(STAGING_DIR)/usr/lib/libvorbis.so: $(LIBVORBIS_DIR)/.libs
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBVORBIS_DIR) install
+
+$(TARGET_DIR)/usr/lib/libvorbis.so: $(STAGING_DIR)/usr/lib/libvorbis.so
+ $(INSTALL) -D $(STAGING_DIR)/usr/lib/libvorbis*.so* $(TARGET_DIR)/usr/lib
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libvorbis*.so*
+
+libvorbis: uclibc pkgconfig libogg $(TARGET_DIR)/usr/lib/libvorbis.so
+
+libvorbis-source: $(DL_DIR)/$(LIBVORBIS_SOURCE)
+
+libvorbis-clean:
+ $(MAKE) prefix=$(STAGING_DIR)/usr -C $(LIBVORBIS_DIR) uninstall
+ -$(MAKE) -C $(LIBVORBIS_DIR) clean
+
+libvorbis-dirclean:
+ rm -rf $(LIBVORBIS_DIR)
+
+############################################################
+#
+# Tremor (Integer decoder for Vorbis)
+#
+############################################################
+
+TREMOR_TRUNK:=http://svn.xiph.org/trunk/Tremor/
+TREMOR_VERSION:=svn-$(DATE)
+TREMOR_NAME:=Tremor-$(TREMOR_VERSION)
+TREMOR_DIR:=$(BUILD_DIR)/$(TREMOR_NAME)
+TREMOR_SOURCE:=$(TREMOR_NAME).tar.bz2
+TREMOR_CAT=$(BZCAT)
+
+$(DL_DIR)/$(TREMOR_SOURCE):
+ (cd $(BUILD_DIR); \
+ $(SVN_CO) $(TREMOR_TRUNK); \
+ mv -f Tremor $(TREMOR_NAME); \
+ tar -cvf $(TREMOR_NAME).tar $(TREMOR_NAME); \
+ bzip2 $(TREMOR_NAME).tar; \
+ rm -rf $(TREMOR_DIR); \
+ mv $(TREMOR_SOURCE) $(DL_DIR)/$(TREMOR_SOURCE); \
+ )
+
+$(TREMOR_DIR)/.source: $(DL_DIR)/$(TREMOR_SOURCE)
+ $(TREMOR_CAT) $(DL_DIR)/$(TREMOR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $@
+
+$(TREMOR_DIR)/.configured: $(TREMOR_DIR)/.source
+ (cd $(TREMOR_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ ./autogen.sh \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-static \
+ --disable-oggtest \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(TREMOR_DIR)/.libs: $(TREMOR_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(TREMOR_DIR)
+ touch $@
+
+$(TARGET_DIR)/usr/lib/tremor.so: $(TREMOR_DIR)/.libs
+ $(MAKE) prefix=$(TARGET_DIR)/usr -C $(TREMOR_DIR) install
+ touch $@
+
+$(TARGET_DIR)/usr/lib/tremor.a: $(TARGET_DIR)/usr/lib/tremor.so
+ cp -dpf $(TREMOR_DIR)/lib/tremor.a $(TARGET_DIR)/usr/lib/
+ touch $@
+
+tremor: uclibc pkgconfig libogg $(TARGET_DIR)/usr/lib/tremor.so
+
+tremor-source: $(DL_DIR)/$(TREMOR_SOURCE)
+
+tremor-clean:
+ $(MAKE) prefix=$(STAGING_DIR)/usr -C $(TREMOR_DIR) uninstall
+ -$(MAKE) -C $(TREMOR_DIR) clean
+
+tremor-dirclean:
+ rm -rf $(TREMOR_DIR)
+
+
+############################################################
+#
+# Toplevel Makefile options
+#
+############################################################
+ifeq ($(strip $(BR2_PACKAGE_LIBVORBIS)),y)
+ifeq ($(strip $(BR2_PACKAGE_LIBVORBIS_TREMOR)),y)
+TARGETS+=tremor
+endif
+TARGETS+=libvorbis
+endif