diff --git a/libs/flac/Makefile b/libs/flac/Makefile new file mode 100644 index 000000000..2cf467b57 --- /dev/null +++ b/libs/flac/Makefile @@ -0,0 +1,75 @@ +# +# Copyright (C) 2006-2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=flac +PKG_VERSION:=1.2.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/flac +PKG_MD5SUM:= +PKG_INSTALL:=1 + +PKG_LICENSE:=GFDLv1.2 GPLv2 LGPLv2.1 BSD-3c +PKG_LICENSE_FILES:=README COPYING.FDL COPYING.GPL COPYING.LGPL COPYING.Xiph + +PKG_FIXUP:=autoreconf +PKG_REMOVE_FILES:=autogen.sh aclocal.m4 + +include $(INCLUDE_DIR)/package.mk + +define Package/libflac + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Free Lossless Audio Codec library + URL:=http://flac.sourceforge.net/ +endef + +define Build/Configure + $(call Build/Configure/Default, \ + --disable-cpplibs \ + --disable-sse \ + --disable-3dnow \ + --disable-altivec \ + --disable-doxgen-docs \ + --disable-local-xmms-plugin \ + --disable-xmms-plugin \ + --disable-ogg \ + --disable-oggtest \ + --disable-debug \ + ) +endef + +TARGET_CFLAGS += $(FPIC) + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/FLAC \ + $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libFLAC.{a,so*,la} \ + $(1)/usr/lib/ + $(INSTALL_DATA) \ + $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \ + $(1)/usr/lib/pkgconfig/ + + $(INSTALL_DIR) $(1)/usr/share/aclocal/ + $(INSTALL_DATA) \ + $(PKG_INSTALL_DIR)/usr/share/aclocal/* \ + $(1)/usr/share/aclocal/ +endef + +define Package/libflac/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libFLAC.so* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,libflac)) diff --git a/libs/flac/patches/001-no-docs-and-examples.patch b/libs/flac/patches/001-no-docs-and-examples.patch new file mode 100644 index 000000000..cd4e821a4 --- /dev/null +++ b/libs/flac/patches/001-no-docs-and-examples.patch @@ -0,0 +1,73 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -30,7 +30,7 @@ + + AUTOMAKE_OPTIONS = foreign 1.7 + +-SUBDIRS = doc include m4 man src examples test build obj ++SUBDIRS = include m4 src build obj + + DISTCLEANFILES = libtool-disable-static + +--- a/Makefile.in ++++ b/Makefile.in +@@ -234,7 +234,7 @@ target_alias = @target_alias@ + + AUTOMAKE_OPTIONS = foreign 1.7 + +-SUBDIRS = doc include m4 man src examples test build obj ++SUBDIRS = include m4 src build obj + + DISTCLEANFILES = libtool-disable-static + +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -30,12 +30,6 @@ SUBDIRS = \ + metaflac \ + monkeys_audio_utilities \ + $(XMMS_DIRS) \ +- plugin_winamp2 \ +- test_grabbag \ +- test_libs_common \ +- test_libFLAC \ +- test_seeking \ +- test_streams \ + $(CPPLIBS_DIRS) + + EXTRA_DIST = \ +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -221,7 +221,7 @@ target_alias = @target_alias@ + + @FLaC__HAS_XMMS_TRUE@XMMS_DIRS = plugin_common plugin_xmms + +-@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++ test_libFLAC++ ++@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++ + + SUBDIRS = \ + libFLAC \ +@@ -230,12 +230,6 @@ SUBDIRS = \ + metaflac \ + monkeys_audio_utilities \ + $(XMMS_DIRS) \ +- plugin_winamp2 \ +- test_grabbag \ +- test_libs_common \ +- test_libFLAC \ +- test_seeking \ +- test_streams \ + $(CPPLIBS_DIRS) + + +@@ -256,9 +250,8 @@ RECURSIVE_TARGETS = info-recursive dvi-r + check-recursive installcheck-recursive + DIST_COMMON = $(srcdir)/Makefile.in Makefile.am + DIST_SUBDIRS = libFLAC share flac metaflac monkeys_audio_utilities \ +- plugin_common plugin_xmms plugin_winamp2 test_grabbag \ +- test_libs_common test_libFLAC test_seeking test_streams \ +- libFLAC++ test_libFLAC++ ++ plugin_common plugin_xmms plugin_winamp2 \ ++ libFLAC++ + all: all-recursive + + .SUFFIXES: diff --git a/libs/flac/patches/002-no-utility.patch b/libs/flac/patches/002-no-utility.patch new file mode 100644 index 000000000..e6fe1b3ed --- /dev/null +++ b/libs/flac/patches/002-no-utility.patch @@ -0,0 +1,24 @@ +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -26,9 +26,6 @@ endif + SUBDIRS = \ + libFLAC \ + share \ +- flac \ +- metaflac \ +- monkeys_audio_utilities \ + $(XMMS_DIRS) \ + $(CPPLIBS_DIRS) + +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -226,9 +226,6 @@ target_alias = @target_alias@ + SUBDIRS = \ + libFLAC \ + share \ +- flac \ +- metaflac \ +- monkeys_audio_utilities \ + $(XMMS_DIRS) \ + $(CPPLIBS_DIRS) + diff --git a/libs/flac/patches/010-automake-compat.patch b/libs/flac/patches/010-automake-compat.patch new file mode 100644 index 000000000..f8b154679 --- /dev/null +++ b/libs/flac/patches/010-automake-compat.patch @@ -0,0 +1,11 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -34,6 +34,8 @@ SUBDIRS = include m4 src build obj + + DISTCLEANFILES = libtool-disable-static + ++ACLOCAL_AMFLAGS = -I m4 ++ + EXTRA_DIST = \ + COPYING.FDL \ + COPYING.GPL \ diff --git a/libs/flac/patches/020-libFLAC-remove-altivec-options.patch b/libs/flac/patches/020-libFLAC-remove-altivec-options.patch new file mode 100644 index 000000000..bc986724c --- /dev/null +++ b/libs/flac/patches/020-libFLAC-remove-altivec-options.patch @@ -0,0 +1,62 @@ +--- a/src/libFLAC/Makefile.in ++++ b/src/libFLAC/Makefile.in +@@ -66,6 +66,7 @@ NORMAL_UNINSTALL = : + PRE_UNINSTALL = : + POST_UNINSTALL = : + host_triplet = @host@ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@@FLaC__USE_ALTIVEC_TRUE@am__append_1 = -maltivec -mabi=altivec + ACLOCAL = @ACLOCAL@ + ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ + AMDEP_FALSE = @AMDEP_FALSE@ +@@ -234,13 +235,21 @@ target_alias = @target_alias@ + + lib_LTLIBRARIES = libFLAC.la + @DEBUG_TRUE@DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT ++# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific ++#@@@ PPC optimizations temporarily disabled ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = \ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ $(am__append_1) \ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ -DFLAC__NO_ASM ++ ++# FIXME: The following logic should be part of configure, not of Makefile.am ++ + # The -force_cpusubtype_ALL is needed to insert a ppc64 instruction + # into cpu.c with an asm(). + #@@@ PPC optimizations temporarily disabled +-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM +-# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific +-#@@@ PPC optimizations temporarily disabled +-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec \ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -force_cpusubtype_ALL \ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -DFLAC__NO_ASM \ ++@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ $(am__append_1) + + AM_CFLAGS = $(DEBUGCFLAGS) $(CPUCFLAGS) @OGG_CFLAGS@ + @FLaC__CPU_PPC_TRUE@@FLaC__NO_ASM_FALSE@ARCH_SUBDIRS = ppc +--- a/src/libFLAC/Makefile.am ++++ b/src/libFLAC/Makefile.am +@@ -32,6 +32,9 @@ lib_LTLIBRARIES = libFLAC.la + if DEBUG + DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT + endif ++ ++# FIXME: The following logic should be part of configure, not of Makefile.am ++ + if FLaC__CPU_PPC + # The -force_cpusubtype_ALL is needed to insert a ppc64 instruction + # into cpu.c with an asm(). +@@ -40,8 +43,12 @@ if FLaC__SYS_DARWIN + CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM + else + # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific ++CPUCFLAGS = ++if FLaC__USE_ALTIVEC ++CPUCFLAGS += -maltivec -mabi=altivec ++endif + #@@@ PPC optimizations temporarily disabled +-CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM ++CPUCFLAGS += -DFLAC__NO_ASM + endif + endif +