From 6b558bc606618d327fee8f229c27a3868d85b35d Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 11 Jun 2013 21:49:09 +0200 Subject: [PATCH] libvpx: convert recipe to an actual recipe --- media-libs/libvpx/libvpx-1.0.0.recipe | 95 ++++++++++--- media-libs/libvpx/patches/libvpx-1.0.0.patch | 66 --------- .../libvpx/patches/libvpx-1.0.0.patchset | 132 ++++++++++++++++++ 3 files changed, 206 insertions(+), 87 deletions(-) delete mode 100644 media-libs/libvpx/patches/libvpx-1.0.0.patch create mode 100644 media-libs/libvpx/patches/libvpx-1.0.0.patchset diff --git a/media-libs/libvpx/libvpx-1.0.0.recipe b/media-libs/libvpx/libvpx-1.0.0.recipe index 0d1488c3a..e7a33a90a 100644 --- a/media-libs/libvpx/libvpx-1.0.0.recipe +++ b/media-libs/libvpx/libvpx-1.0.0.recipe @@ -1,26 +1,79 @@ -DESCRIPTION="libvpx - WebM VP8 Codec SDK" -HOMEPAGE="http://www.webmproject.org" -SRC_URI="http://webm.googlecode.com/files/libvpx-v1.0.0.tar.bz2" -CHECKSUM_MD5="d987b5140412edd37d2c6b10c29ad484" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd libvpx-v1.0.0 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --enable-pic \ - --enable-vp8 - make -} - -INSTALL() -{ - cd libvpx-v1.0.0 - make install -} +SUMMARY="WebM VP8 video codec library" +DESCRIPTION="The WebM VP8 SDK allows you to integrate your applications with the VP8 video codec, a high quality, royalty free, open source codec deployed on millions of computers and devices worldwide. +This distribution of the WebM VP8 Codec SDK includes the following support: + * WebM VP8 Encoder + * WebM VP8 Decoder" +HOMEPAGE="http://www.webmproject.org" LICENSE="BSD (3-clause)" COPYRIGHT="2009-2012 Google Inc., The Mozilla Foundation and The Xiph.Org Foundation" +SRC_URI="http://webm.googlecode.com/files/libvpx-v1.0.0.tar.bz2" +CHECKSUM_MD5="d987b5140412edd37d2c6b10c29ad484" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libvpx-1.0.0.patchset" + +PROVIDES=" + libvpx = $portVersion + cmd:vp8_scalable_patterns = $portVersion + cmd:vpxdec = $portVersion compat >= 1 + cmd:vpxenc = $portVersion compat >= 1 + lib:libvpx = $portVersion compat >= 1 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + cmd:gcc + cmd:ld + cmd:make + cmd:perl + cmd:yasm + " + # Note: The build system also looks for libvorbis and SDL, but that seems + # to be needed only for building the sample player, which we don't need. +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + " + +SOURCE_DIR="libvpx-v1.0.0" + +BUILD() +{ + # not an auto tools configure + ./configure \ + --prefix="$prefix" \ + --as=yasm \ + --enable-pic \ + --enable-shared \ + --enable-vp8 + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libvpx + fixPkgconfig + + mv $prefix/include $includeDir + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +SUMMARY_devel="The libvpx development files" +PROVIDES_devel=" + libvpx_devel = $portVersion + devel:libvpx = $portVersion compat >= 1 + " +REQUIRES_devel=" + libvpx == $portVersion + " diff --git a/media-libs/libvpx/patches/libvpx-1.0.0.patch b/media-libs/libvpx/patches/libvpx-1.0.0.patch deleted file mode 100644 index da04b72ff..000000000 --- a/media-libs/libvpx/patches/libvpx-1.0.0.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -ruN libvpx-v1.0.0/build/make/configure.sh libvpx-v1.0.0-haiku/build/make/configure.sh ---- libvpx-v1.0.0/build/make/configure.sh 2012-01-27 18:36:39.038535168 +0000 -+++ libvpx-v1.0.0-haiku/build/make/configure.sh 2012-03-14 00:47:54.780926976 +0000 -@@ -579,6 +579,9 @@ - *solaris2.10) - tgt_os=solaris - ;; -+ *haiku*) -+ tgt_os=haiku -+ ;; - esac - - if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then -@@ -909,8 +912,8 @@ - esac - ;; - gcc*) -- add_cflags -m${bits} -- add_ldflags -m${bits} -+ enabled haiku || add_cflags -m${bits} -+ enabled haiku || add_ldflags -m${bits} - link_with_cc=gcc - tune_cflags="-march=" - setup_gnu_toolchain -@@ -939,7 +942,7 @@ - add_asflags -f x64 - enabled debug && add_asflags -g cv8 - ;; -- linux*|solaris*) -+ linux*|solaris*|haiku*) - add_asflags -f elf${bits} - enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 - enabled debug && [ "${AS}" = nasm ] && add_asflags -g -@@ -1019,6 +1022,7 @@ - case ${toolchain} in - *-win*);; - *-android-gcc);; -+ *-haiku*);; - *) check_header pthread.h && add_extralibs -lpthread - esac - fi -diff -ruN libvpx-v1.0.0/configure libvpx-v1.0.0-haiku/configure ---- libvpx-v1.0.0/configure 2012-01-27 18:36:39.039583744 +0000 -+++ libvpx-v1.0.0-haiku/configure 2012-03-14 00:46:37.182976512 +0000 -@@ -107,6 +107,7 @@ - all_platforms="${all_platforms} x86-darwin9-gcc" - all_platforms="${all_platforms} x86-darwin9-icc" - all_platforms="${all_platforms} x86-darwin10-gcc" -+all_platforms="${all_platforms} x86-haiku-gcc" - all_platforms="${all_platforms} x86-linux-gcc" - all_platforms="${all_platforms} x86-linux-icc" - all_platforms="${all_platforms} x86-solaris-gcc" -diff -ruN libvpx-v1.0.0/examples.mk libvpx-v1.0.0-haiku/examples.mk ---- libvpx-v1.0.0/examples.mk 2012-01-27 18:36:39.040108032 +0000 -+++ libvpx-v1.0.0-haiku/examples.mk 2012-03-14 00:46:37.187432960 +0000 -@@ -113,7 +113,9 @@ - # We should not link to math library (libm) on RVCT - # when building for bare-metal targets - ifeq ($(CONFIG_OS_SUPPORT), yes) --CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m -+ ifneq ($(TOOLCHAIN),x86-haiku-gcc) -+ CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m -+ endif - else - ifeq ($(CONFIG_GCC), yes) - CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m diff --git a/media-libs/libvpx/patches/libvpx-1.0.0.patchset b/media-libs/libvpx/patches/libvpx-1.0.0.patchset new file mode 100644 index 000000000..eba3dc397 --- /dev/null +++ b/media-libs/libvpx/patches/libvpx-1.0.0.patchset @@ -0,0 +1,132 @@ +From 0c31cfc2c7429f81129c3403d9bc03bd245db71c Mon Sep 17 00:00:00 2001 +From: korli +Date: Wed, 14 Mar 2012 00:15:38 +0000 +Subject: patch for 1.0.0 + + +diff --git a/build/make/configure.sh b/build/make/configure.sh +index cbf000b..4222e52 100755 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -579,6 +579,9 @@ process_common_toolchain() { + *solaris2.10) + tgt_os=solaris + ;; ++ *haiku*) ++ tgt_os=haiku ++ ;; + esac + + if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then +@@ -909,8 +912,8 @@ process_common_toolchain() { + esac + ;; + gcc*) +- add_cflags -m${bits} +- add_ldflags -m${bits} ++ enabled haiku || add_cflags -m${bits} ++ enabled haiku || add_ldflags -m${bits} + link_with_cc=gcc + tune_cflags="-march=" + setup_gnu_toolchain +@@ -939,7 +942,7 @@ process_common_toolchain() { + add_asflags -f x64 + enabled debug && add_asflags -g cv8 + ;; +- linux*|solaris*) ++ linux*|solaris*|haiku*) + add_asflags -f elf${bits} + enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 + enabled debug && [ "${AS}" = nasm ] && add_asflags -g +@@ -1019,6 +1022,7 @@ EOF + case ${toolchain} in + *-win*);; + *-android-gcc);; ++ *-haiku*);; + *) check_header pthread.h && add_extralibs -lpthread + esac + fi +diff --git a/configure b/configure +index 6195b2d..eb8a359 100755 +--- a/configure ++++ b/configure +@@ -107,6 +107,7 @@ all_platforms="${all_platforms} x86-darwin8-icc" + all_platforms="${all_platforms} x86-darwin9-gcc" + all_platforms="${all_platforms} x86-darwin9-icc" + all_platforms="${all_platforms} x86-darwin10-gcc" ++all_platforms="${all_platforms} x86-haiku-gcc" + all_platforms="${all_platforms} x86-linux-gcc" + all_platforms="${all_platforms} x86-linux-icc" + all_platforms="${all_platforms} x86-solaris-gcc" +diff --git a/examples.mk b/examples.mk +index f6c9045..ab9657f 100644 +--- a/examples.mk ++++ b/examples.mk +@@ -113,7 +113,9 @@ vp8_multi_resolution_encoder.DESCRIPTION = VP8 Multiple-resolution Encoding + # We should not link to math library (libm) on RVCT + # when building for bare-metal targets + ifeq ($(CONFIG_OS_SUPPORT), yes) +-CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m ++ ifneq ($(TOOLCHAIN),x86-haiku-gcc) ++ CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m ++ endif + else + ifeq ($(CONFIG_GCC), yes) + CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m +-- +1.7.5 + + +From dd76984687465e457d9e3dcd0b4bdc4bd46225dd Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 11 Jun 2013 21:09:11 +0200 +Subject: configure: enable shared library building for Haiku + + +diff --git a/configure b/configure +index eb8a359..a2ef98d 100755 +--- a/configure ++++ b/configure +@@ -438,7 +438,7 @@ process_detect() { + # Can only build shared libs on a subset of platforms. Doing this check + # here rather than at option parse time because the target auto-detect + # magic happens after the command line has been parsed. +- enabled linux || die "--enable-shared only supported on ELF for now" ++ enabled linux || enabled haiku || die "--enable-shared only supported on ELF for now" + fi + if [ -z "$CC" ]; then + echo "Bypassing toolchain for environment detection." +-- +1.7.5 + + +From 87b2816834bb2bbfc1e13765084a0c21eb46cf13 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 11 Jun 2013 21:09:28 +0200 +Subject: libs.mk: no -lm or -lpthread on Haiku + + +diff --git a/libs.mk b/libs.mk +index 79a1d00..d88cfa7 100644 +--- a/libs.mk ++++ b/libs.mk +@@ -196,7 +196,6 @@ LIBVPX_SO := libvpx.so.$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION + LIBS-$(BUILD_LIBVPX_SO) += $(BUILD_PFX)$(LIBVPX_SO)\ + $(notdir $(LIBVPX_SO_SYMLINKS)) + $(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) libvpx.ver +-$(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm + $(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(VERSION_MAJOR) + $(BUILD_PFX)$(LIBVPX_SO): SO_VERSION_SCRIPT = libvpx.ver + LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ +@@ -398,7 +397,7 @@ $(foreach bin,$(LIBVPX_TEST_BINS),\ + $(if $(BUILD_LIBVPX),$(eval $(bin): libvpx.a libgtest.a ))\ + $(if $(BUILD_LIBVPX),$(eval $(call linkerxx_template,$(bin),\ + $(bin).cc.o \ +- -L. -lvpx -lgtest -lpthread -lm)\ ++ -L. -lvpx -lgtest)\ + )))\ + $(if $(LIPO_LIBS),$(eval $(call lipo_bin_template,$(bin))))\ + +-- +1.7.5 +