diff options
author | 2013-04-08 22:58:52 -0700 | |
---|---|---|
committer | 2013-04-12 16:26:34 -0700 | |
commit | 842949fd00ca494711ef4834316e6042e53459fd (patch) | |
tree | 7b8e5e5633cbbdf6fc0f388132461e7200e0a5b3 /media-tv | |
parent | Proposed fix for Bug 427928 (diff) | |
download | JoseQ-842949fd00ca494711ef4834316e6042e53459fd.tar.gz JoseQ-842949fd00ca494711ef4834316e6042e53459fd.tar.bz2 JoseQ-842949fd00ca494711ef4834316e6042e53459fd.zip |
Fix xbmc on older x86 platforms
Diffstat (limited to 'media-tv')
-rw-r--r-- | media-tv/xbmc/Manifest | 6 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-9999-detect-sse2.patch | 173 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch | 16 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-9999-nomythtv.patch | 68 | ||||
-rw-r--r-- | media-tv/xbmc/metadata.xml | 23 | ||||
-rw-r--r-- | media-tv/xbmc/xbmc-12.1-r1.ebuild | 258 |
6 files changed, 544 insertions, 0 deletions
diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest new file mode 100644 index 0000000..b1a92e1 --- /dev/null +++ b/media-tv/xbmc/Manifest @@ -0,0 +1,6 @@ +AUX xbmc-9999-detect-sse2.patch 5898 SHA256 b2e7372f989089e80b99e684e24a4546079588aa4a1bc77afc8bf297028a7725 SHA512 1bf5b49c3e3ebc59dc432162550e23c8f2f89fd4c7abd68271368affb92b2f8fb114ad9171da7d47edb691ec9df970242a4b9e555266f31e3c073bbe2e42032a WHIRLPOOL 4a04fa2a3b75183893106dbf4a2829e66a6234295b232e20246c615084a0e15755e9d7e2beef5905847b3cecfe9173a7689ea734462ed050174a7fde6aee0f0c +AUX xbmc-9999-no-arm-flags.patch 478 SHA256 075db2562d31914d86b4394500d4b3168ea77114b63d1a7929ddae96111017a2 SHA512 b958cf3ab4877dbae4e5bd1376e8b9bd82f0dab43b1695c1d85e0e8ff366ef278ff686fe6394a04b3d79e19f11d8c92689fc049d2874e3fc12c907e36e993064 WHIRLPOOL f322fa4db24ff6f3372bdadd3dba8fbd4aed5849dc676f8c63d654f2c83de2165e60b26af821647a46cfa5ff129e7e0cb7c39c5cddbc2e5d9ec675bb148b2d63 +AUX xbmc-9999-nomythtv.patch 1680 SHA256 fe0289d1361b0dde3c261bc082bcad123c9cc9a2b7398e4eb48773f976be93a2 SHA512 403389bb1bf1442be1a8d23106bd78dc672c66fcf588b6076e6105023a69a92ca58cdaa91c9e2664123f244c3d5f42a9de6f72845c702339e3f8a0e976330ca1 WHIRLPOOL dcf13b59133f2b7288bc734803ad1317d6e943f7cd85b0428ec257b2ec9fb6a23311fbdd8574dbfb985a473dac7cf8ca30c2ac6d59b62797adb1f63d8bcc0b12 +DIST xbmc-12.1.tar.gz 67430677 SHA256 29e3f36e1884913088f786179a4c925f52e46e9ba7bf8f24e35e934177c01ec3 SHA512 a8b5194766e32e09fa65c0e3656ff180c15761ce2348dc8a1fff0c65247b47e644db4fc91a829e73907b6a52c8e1bdebf624640b9dd06cea2c46bda1d2b3b4a5 WHIRLPOOL 13dbaf040faaaef1b04da892949e9684d7a958cec286b3a5f8cb449ec0fea6b5f96c2a473ece840b86103eb03dd1f39dd66411e5b0526785256d2cc92e1e95e8 +EBUILD xbmc-12.1-r1.ebuild 6919 SHA256 8768dc40d91a3067e1a480f2784044cc8e5586189a226981df5adbf390b11817 SHA512 1db5261602225d74437647aeffb06bc8b2ef6431833db04b288b687a35444c0ba20eda0cdfdc80abe7990b17694a3dc54376e61f6024f33081d1e606fa947ca9 WHIRLPOOL 94cb5aee4d9802884493b618fa9d62af02ec870a859fad86108e031969ec14a3b36fee15dfbf8eff89fedeab62b072003ddfc2ef05fb6db6ea8571dce2ac4eb6 +MISC metadata.xml 1140 SHA256 00929104e646c293b0ee5dc8a42701b940a0e908f7293c15a277ce138a56999a SHA512 e6a4b148543b613ffad57925310bc7562629e18f726cc958bf2de64020b0ec3d72cf82eb2e506a194c1c3610361d96ff41245d1e7a411be08f87719abbb80410 WHIRLPOOL 92f8748f2fedb7fe0bd34ed29e4e4ff25cb55b7ceacc15a9a4c561c3544530d216d5494de1862591156f3290e641a38aa91000c2b33e850d8a923e1818eb5ac1 diff --git a/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch b/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch new file mode 100644 index 0000000..0de2c6d --- /dev/null +++ b/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch @@ -0,0 +1,173 @@ +From b40e2fe115df5465851de8194a3b414241f1104b Mon Sep 17 00:00:00 2001 +From: Jose Quinteiro <gentoo@quinteiro.org> +Date: Mon, 8 Apr 2013 22:26:22 -0700 +Subject: [PATCH 1/1] Detect SSE2 support + +Compilation on an older 32-bit Athlon XP chip fails with the error +"./Utils/AEUtil.h:50:12: error: '__m128i' does not name a type" +This is because the __m128i type is only available on SSE2 platforms. +Modify the preprocessor logic to detect SSE and SSE2 support separately. + +The "emmintrin.h" header should only be included on SSE2 platforms as +well. +--- + xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 25 ++++++++++--------------- + xbmc/cores/AudioEngine/Utils/AEUtil.cpp | 4 ++-- + xbmc/cores/AudioEngine/Utils/AEUtil.h | 6 +++++- + 3 files changed, 17 insertions(+), 18 deletions(-) + +diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp +index 97ec87b..211ec10 100644 +--- a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp ++++ b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp +@@ -33,11 +33,6 @@ + #include <math.h> + #include <string.h> + +-#ifdef __SSE__ +-#include <xmmintrin.h> +-#include <emmintrin.h> +-#endif +- + #ifdef __ARM_NEON__ + #include <arm_neon.h> + #endif +@@ -517,7 +512,7 @@ unsigned int CAEConvert::Float_S8(float *data, const unsigned int samples, uint8 + unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, uint8_t *dest) + { + int16_t *dst = (int16_t*)dest; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + + unsigned int count = samples; + unsigned int unaligned = (0x10 - ((uintptr_t)data & 0xF)) >> 2; +@@ -623,7 +618,7 @@ unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, ui + /* cleanup */ + _mm_empty(); + +- #else /* no SSE */ ++ #else /* no SSE2 */ + + uint32_t i = 0; + uint32_t even = samples & ~0x3; +@@ -651,7 +646,7 @@ unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, ui + unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, uint8_t *dest) + { + int16_t *dst = (int16_t*)dest; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + + unsigned int count = samples; + unsigned int unaligned = (0x10 - ((uintptr_t)data & 0xF)) >> 2; +@@ -757,7 +752,7 @@ unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, ui + /* cleanup */ + _mm_empty(); + +- #else /* no SSE */ ++ #else /* no SSE2 */ + + uint32_t i = 0; + uint32_t even = samples & ~0x3; +@@ -785,7 +780,7 @@ unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, ui + unsigned int CAEConvert::Float_S24NE4(float *data, const unsigned int samples, uint8_t *dest) + { + int32_t *dst = (int32_t*)dest; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + + const __m128 mul = _mm_set_ps1((float)INT24_MAX+.5f); + unsigned int count = samples; +@@ -835,7 +830,7 @@ unsigned int CAEConvert::Float_S24NE4(float *data, const unsigned int samples, u + } + } + _mm_empty(); +- #else /* no SSE */ ++ #else /* no SSE2 */ + for (uint32_t i = 0; i < samples; ++i) + *dst++ = (safeRound(*data++ * ((float)INT24_MAX+.5f)) & 0xFFFFFF) << 8; + #endif +@@ -925,7 +920,7 @@ unsigned int CAEConvert::Float_S24NE3(float *data, const unsigned int samples, u + unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, uint8_t *dest) + { + int32_t *dst = (int32_t*)dest; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + const __m128 mul = _mm_set_ps1((float)INT32_MAX); + unsigned int count = samples; + +@@ -985,7 +980,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui + _mm_empty(); + #else + +- /* no SIMD */ ++ /* no SSE2 */ + for (uint32_t i = 0; i < samples; ++i, ++data, ++dst) + { + dst[0] = safeRound(data[0] * (float)INT32_MAX); +@@ -1034,7 +1029,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample + unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, uint8_t *dest) + { + int32_t *dst = (int32_t*)dest; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + const __m128 mul = _mm_set_ps1((float)INT32_MAX); + unsigned int count = samples; + +@@ -1093,7 +1088,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui + } + _mm_empty(); + #else +- /* no SIMD */ ++ /* no SSE2 */ + for (uint32_t i = 0; i < samples; ++i, ++data, ++dst) + { + dst[0] = safeRound(data[0] * (float)INT32_MAX); +diff --git a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp +index 6de84dc..2b6e0cd 100644 +--- a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp ++++ b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp +@@ -30,7 +30,7 @@ using namespace std; + + /* declare the rng seed and initialize it */ + unsigned int CAEUtil::m_seed = (unsigned int)(CurrentHostCounter() / 1000.0f); +-#ifdef __SSE__ ++#ifdef __SSE2__ + /* declare the SSE seed and initialize it */ + MEMALIGN(16, __m128i CAEUtil::m_sseSeed) = _mm_set_epi32(CAEUtil::m_seed, CAEUtil::m_seed+1, CAEUtil::m_seed, CAEUtil::m_seed+1); + #endif +@@ -386,7 +386,7 @@ float CAEUtil::FloatRand1(const float min, const float max) + + void CAEUtil::FloatRand4(const float min, const float max, float result[4], __m128 *sseresult/* = NULL */) + { +- #ifdef __SSE__ ++ #ifdef __SSE2__ + /* + this method may be called from other SSE code, we need + to calculate the delta & factor using SSE as the FPU +diff --git a/xbmc/cores/AudioEngine/Utils/AEUtil.h b/xbmc/cores/AudioEngine/Utils/AEUtil.h +index 458dc00..112c180 100644 +--- a/xbmc/cores/AudioEngine/Utils/AEUtil.h ++++ b/xbmc/cores/AudioEngine/Utils/AEUtil.h +@@ -36,6 +36,10 @@ + #define __m128 void + #endif + ++#ifdef __SSE2__ ++#include <emmintrin.h> ++#endif ++ + #ifdef __GNUC__ + #define MEMALIGN(b, x) x __attribute__((aligned(b))) + #else +@@ -46,7 +50,7 @@ class CAEUtil + { + private: + static unsigned int m_seed; +- #ifdef __SSE__ ++ #ifdef __SSE2__ + static __m128i m_sseSeed; + #endif + +-- +1.8.1.5 + diff --git a/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch new file mode 100644 index 0000000..82a7383 --- /dev/null +++ b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch @@ -0,0 +1,16 @@ +http://bugs.gentoo.org/400617 + +do not force any particular ABI or FPU or SIMD compiler flags for arm +targets. let the toolchain and user CFLAGS control that. + +--- a/configure.in ++++ b/configure.in +@@ -571,7 +571,7 @@ + elif test "$target_platform" = "target_raspberry_pi"; then + ARCH="arm" + use_arch="arm" +-elif test "$use_arch" = "arm"; then ++elif false; then + CFLAGS="$CFLAGS -mno-apcs-stack-check" + CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check" + FFMPEG_EXTRACFLAGS="" diff --git a/media-tv/xbmc/files/xbmc-9999-nomythtv.patch b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch new file mode 100644 index 0000000..f793ba3 --- /dev/null +++ b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch @@ -0,0 +1,68 @@ +http://trac.xbmc.org/ticket/11775 + +make mythtv support optional + +diff --git a/Makefile.in b/Makefile.in +index 9ffae7e..17cc525 100755 +--- a/Makefile.in ++++ b/Makefile.in +@@ -147,7 +147,7 @@ LIB_DIRS=\ + lib/cpluff \ + lib/xbmc-dll-symbols + +-ifeq (@USE_MYSQL@,1) ++ifeq (@USE_MYTHTV@,1) + LIB_DIRS += lib/cmyth + CMYTH=cmyth + endif +diff --git a/configure.in b/configure.in +index d44825f..629d7b4 100755 +--- a/configure.in ++++ b/configure.in +@@ -387,6 +387,12 @@ AC_ARG_ENABLE([mysql], + [use_mysql=$enableval], + [use_mysql=yes]) + ++AC_ARG_ENABLE([mythtv], ++ [AS_HELP_STRING([--disable-mythtv], ++ [disable mythtv])], ++ [use_mythtv=$enableval], ++ [use_mythtv=yes]) ++ + AC_ARG_ENABLE([webserver], + [AS_HELP_STRING([--disable-webserver], + [disable webserver])], +@@ -748,6 +754,9 @@ if test "$use_mysql" = "yes"; then + else + AC_MSG_ERROR($missing_program) + fi ++ if test "$use_mythtv" = "yes"; then ++ AC_DEFINE([HAVE_MYTHTV],[1],["Define to 1 if you want mythtv support"]) ++ fi + fi + AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library)) +@@ -1895,6 +1904,15 @@ else + final_message="$final_message\n MySQL:\tNo" + USE_MYSQL=0 + fi ++ ++if test "$use_mythtv" = "yes"; then ++ final_message="$final_message\n MythTV:\tYes" ++ USE_MYTHTV=1 ++else ++ final_message="$final_message\n MythTV:\tNo" ++ USE_MYTHTV=0 ++fi ++ + if test "$use_webserver" = "yes"; then + final_message="$final_message\n Webserver:\tYes" + USE_WEB_SERVER=1 +@@ -2123,6 +2141,7 @@ AC_SUBST(USE_LIBUDEV) + AC_SUBST(USE_LIBUSB) + AC_SUBST(USE_LIBCEC) + AC_SUBST(USE_MYSQL) ++AC_SUBST(USE_MYTHTV) + AC_SUBST(USE_WEB_SERVER) + + diff --git a/media-tv/xbmc/metadata.xml b/media-tv/xbmc/metadata.xml new file mode 100644 index 0000000..3a1b608 --- /dev/null +++ b/media-tv/xbmc/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>xbox</herd> +<use> + <flag name='airplay'>enable AirPlay support</flag> + <flag name='bluray'>Enable playback of Blu-ray filesystems</flag> + <flag name='cec'>Enable support for HDMI-CEC devices via libcec</flag> + <flag name='fishbmc'>Enable fishBMC visualization plugin</flag> + <flag name='gles'>Enable support for GLES</flag> + <flag name='goom'>Enable GOOM visualization plugin</flag> + <flag name='midi'>Support MIDI files</flag> + <flag name='nfs'>Enable NFS client support</flag> + <flag name='projectm'>Enable projectM visualization plugin</flag> + <flag name='pvr'>Enable MythTV support</flag> + <flag name='rtmp'>Enable Real Time Messaging Protocol using librtmp</flag> + <flag name='rsxs'>Enable really slick X screensavers</flag> + <flag name='sftp'>Support browsing files over SFTP</flag> + <flag name='vaapi'>Enables VAAPI (Video Acceleration API) for hardware decoding</flag> + <flag name='webserver'>Enable internal webserver</flag> + <flag name='xrandr'>Support X randr extension</flag> +</use> +</pkgmetadata> diff --git a/media-tv/xbmc/xbmc-12.1-r1.ebuild b/media-tv/xbmc/xbmc-12.1-r1.ebuild new file mode 100644 index 0000000..14790a8 --- /dev/null +++ b/media-tv/xbmc/xbmc-12.1-r1.ebuild @@ -0,0 +1,258 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.1.ebuild,v 1.4 2013/04/01 06:35:52 vapier Exp $ + +EAPI="4" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_DEPEND="2:2.6" +PYTHON_USE_WITH=sqlite + +inherit eutils python multiprocessing autotools + +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + SRC_URI="!java? ( mirror://gentoo/${P}-20121224-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="Frodo_${PV#*_}" + MY_P="${PN}-${MY_PV}" + SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${P}.tar.gz + !java? ( mirror://gentoo/${P}-generated-addons.tar.xz )" + KEYWORDS="~amd64 ~x86" + ;; +*) + MY_P=${P/_/-*_} + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~x86" + ;; +esac + +DESCRIPTION="XBMC is a free and open source media-player and entertainment hub" +HOMEPAGE="http://xbmc.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="airplay alsa altivec avahi bluetooth bluray caps cec css debug gles goom java joystick midi mysql neon nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi vdpau webserver +X +xrandr" +REQUIRED_USE=" + pvr? ( mysql ) + rsxs? ( X ) + xrandr? ( X ) +" + +COMMON_DEPEND="app-arch/bzip2 + app-arch/unzip + app-arch/zip + app-i18n/enca + airplay? ( app-pda/libplist ) + >=dev-lang/python-2.4 + dev-libs/boost + dev-libs/fribidi + dev-libs/libcdio[-minimal] + cec? ( >=dev-libs/libcec-2.1 ) + dev-libs/libpcre[cxx] + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + dev-libs/yajl + dev-python/simplejson + media-libs/alsa-lib + media-libs/flac + media-libs/fontconfig + media-libs/freetype + >=media-libs/glew-1.5.6 + media-libs/jasper + media-libs/jbigkit + >=media-libs/libass-0.9.7 + bluray? ( media-libs/libbluray ) + css? ( media-libs/libdvdcss ) + media-libs/libmad + media-libs/libmodplug + media-libs/libmpeg2 + media-libs/libogg + media-libs/libpng + projectm? ( media-libs/libprojectm ) + media-libs/libsamplerate + sdl? ( media-libs/libsdl[audio,opengl,video,X] ) + alsa? ( media-libs/libsdl[alsa] ) + >=media-libs/taglib-1.8 + media-libs/libvorbis + sdl? ( + media-libs/sdl-gfx + >=media-libs/sdl-image-1.2.10[gif,jpeg,png] + media-libs/sdl-mixer + media-libs/sdl-sound + ) + media-libs/tiff + pulseaudio? ( media-sound/pulseaudio ) + media-sound/wavpack + || ( media-libs/libpostproc <media-video/libav-0.8.2-r1 media-video/ffmpeg ) + >=virtual/ffmpeg-0.6[encode] + rtmp? ( media-video/rtmpdump ) + avahi? ( net-dns/avahi ) + nfs? ( net-fs/libnfs ) + webserver? ( net-libs/libmicrohttpd[messages] ) + sftp? ( net-libs/libssh ) + net-misc/curl + samba? ( >=net-fs/samba-3.4.6[smbclient] ) + bluetooth? ( net-wireless/bluez ) + sys-apps/dbus + caps? ( sys-libs/libcap ) + sys-libs/zlib + virtual/jpeg + usb? ( virtual/libusb ) + mysql? ( virtual/mysql ) + opengl? ( + virtual/glu + virtual/opengl + ) + gles? ( virtual/opengl ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + virtual/ffmpeg[vdpau] + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + udev? ( sys-fs/udisks:0 sys-power/upower )" +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + dev-lang/swig + dev-util/gperf + X? ( x11-proto/xineramaproto ) + dev-util/cmake + x86? ( dev-lang/nasm ) + java? ( virtual/jre )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_unpack() { + [[ ${PV} == "9999" ]] && git-2_src_unpack || default +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch + epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617 + epatch "${FILESDIR}"/${PN}-9999-detect-sse2.patch + # The mythtv patch touches configure.ac, so force a regen + rm -f configure + + # some dirs ship generated autotools, some dont + multijob_init + local d + for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do + [[ -e ${d} ]] && continue + pushd ${d/%configure/.} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \ + multijob_child_init eautoreconf + popd >/dev/null + done + multijob_finish + elibtoolize + + # Disable internal func checks as our USE/DEPEND + # stuff handles this just fine already #408395 + export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes + + local squish #290564 + use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec" + use sse && squish="-DSQUISH_USE_SSE=1 -msse" + use sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" + sed -i \ + -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ + -e "1iCXXFLAGS += ${squish}" \ + lib/libsquish/Makefile.in || die + + # Fix XBMC's final version string showing as "exported" + # instead of the SVN revision number. + export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported} + + # avoid long delays when powerkit isn't running #348580 + sed -i \ + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ + xbmc/linux/*.cpp || die + + epatch_user #293109 + + # Tweak autotool timestamps to avoid regeneration + find . -type f -print0 | xargs -0 touch -r configure +} + +src_configure() { + # Disable documentation generation + export ac_cv_path_LATEX=no + # Avoid help2man + export HELP2MAN=$(type -P help2man || echo true) + # No configure flage for this #403561 + export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth) + # Requiring java is asine #434662 + export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + --enable-gl \ + $(use_enable airplay) \ + $(use_enable avahi) \ + $(use_enable bluray libbluray) \ + $(use_enable caps libcap) \ + $(use_enable cec libcec) \ + $(use_enable css dvdcss) \ + $(use_enable debug) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(use_enable neon) \ + $(use_enable nfs) \ + $(use_enable opengl gl) \ + $(use_enable profile profiling) \ + $(use_enable projectm) \ + $(use_enable pulseaudio pulse) \ + $(use_enable pvr mythtv) \ + $(use_enable rsxs) \ + $(use_enable rtmp) \ + $(use_enable samba) \ + $(use_enable sdl) \ + $(use_enable sftp ssh) \ + $(use_enable usb libusb) \ + $(use_enable upnp) \ + $(use_enable vaapi) \ + $(use_enable vdpau) \ + $(use_enable webserver) \ + $(use_enable X x11) \ + $(use_enable xrandr) +} + +src_install() { + default + rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* + + domenu tools/Linux/xbmc.desktop + newicon tools/Linux/xbmc-48x48.png xbmc.png + + insinto "$(python_get_sitedir)" #309885 + doins tools/EventClients/lib/python/xbmcclient.py || die + newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die +} + +pkg_postinst() { + elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual" +} |