| 1 |
# Copyright 1999-2006 Gentoo Foundation |
| 2 |
# Distributed under the terms of the GNU General Public License v2 |
| 3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/mythtv-plugins.eclass,v 1.29 2008/02/20 20:05:23 cardoe Exp $ |
| 4 |
# |
| 5 |
# Author: Doug Goldstein <cardoe@gentoo.org> |
| 6 |
# |
| 7 |
# Installs MythTV plugins along with patches from the release-${PV}-fixes branch |
| 8 |
# |
| 9 |
inherit mythtv multilib qt3 versionator subversion |
| 10 |
|
| 11 |
# Extra configure options to pass to econf |
| 12 |
MTVCONF=${MTVCONF:=""} |
| 13 |
|
| 14 |
SLOT="0" |
| 15 |
IUSE="${IUSE} debug mmx" |
| 16 |
|
| 17 |
RDEPEND="${RDEPEND} |
| 18 |
=media-tv/mythtv-${MY_PV}*" |
| 19 |
DEPEND="${DEPEND} |
| 20 |
=media-tv/mythtv-${MY_PV}* |
| 21 |
>=sys-apps/sed-4" |
| 22 |
|
| 23 |
S="${WORKDIR}/mythplugins-${MY_PV}" |
| 24 |
|
| 25 |
# hijacks the plugins checkout to be: |
| 26 |
# /usr/portage/distfiles/svn-src/mythplugins/mythplugins/mythvideo/ |
| 27 |
# so that each of the plugins can share the same svn checkout |
| 28 |
# saving HD space and number of svn checkouts reqired |
| 29 |
# Great suggestion by Tom Clift <tom@clift.name> |
| 30 |
ESVN_PROJECT="mythplugins" |
| 31 |
|
| 32 |
mythtv-plugins_pkg_setup() { |
| 33 |
# List of available plugins (needs to include ALL of them in the tarball) |
| 34 |
MYTHPLUGINS="mythbrowser mythcontrols mythdvd mythflix mythgallery" |
| 35 |
MYTHPLUGINS="${MYTHPLUGINS} mythgame mythmusic mythnews mythphone" |
| 36 |
MYTHPLUGINS="${MYTHPLUGINS} mythvideo mythweather mythweb" |
| 37 |
|
| 38 |
if version_is_at_least "0.20" ; then |
| 39 |
MYTHPLUGINS="${MYTHPLUGINS} mytharchive" |
| 40 |
fi |
| 41 |
|
| 42 |
if version_is_at_least "0.21_beta" ; then |
| 43 |
MYTHPLUGINS="${MYTHPLUGINS} mythzoneminder mythmovies mythappearance" |
| 44 |
MYTHPLUGINS="${MYTHPLUGINS/mythdvd/}" |
| 45 |
fi |
| 46 |
} |
| 47 |
|
| 48 |
mythtv-plugins_src_unpack() { |
| 49 |
subversion_src_unpack |
| 50 |
mythtv-plugins_src_unpack_patch |
| 51 |
} |
| 52 |
|
| 53 |
mythtv-plugins_src_unpack_patch() { |
| 54 |
cd "${S}" |
| 55 |
|
| 56 |
mythtv-fixes_patch |
| 57 |
|
| 58 |
sed -e 's!PREFIX = /usr/local!PREFIX = /usr!' \ |
| 59 |
-i 'settings.pro' || die "fixing PREFIX to /usr failed" |
| 60 |
|
| 61 |
sed -e "s!QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentiumpro -fomit-frame-pointer!QMAKE_CXXFLAGS_RELEASE = ${CXXFLAGS}!" \ |
| 62 |
-i 'settings.pro' || die "Fixing QMake's CXXFLAGS failed" |
| 63 |
|
| 64 |
sed -e "s!QMAKE_CFLAGS_RELEASE = \$\${QMAKE_CXXFLAGS_RELEASE}!QMAKE_CFLAGS_RELEASE = ${CFLAGS}!" \ |
| 65 |
-i 'settings.pro' || die "Fixing Qmake's CFLAGS failed" |
| 66 |
|
| 67 |
find "${S}" -name '*.pro' -exec sed -i \ |
| 68 |
-e "s:\$\${PREFIX}/lib/:\$\${PREFIX}/$(get_libdir)/:g" \ |
| 69 |
-e "s:\$\${PREFIX}/lib$:\$\${PREFIX}/$(get_libdir):g" \ |
| 70 |
{} \; |
| 71 |
} |
| 72 |
|
| 73 |
mythtv-plugins_src_compile() { |
| 74 |
cd "${S}" |
| 75 |
|
| 76 |
if use debug; then |
| 77 |
sed -e 's!CONFIG += release!CONFIG += debug!' \ |
| 78 |
-i 'settings.pro' || die "switching to debug build failed" |
| 79 |
fi |
| 80 |
|
| 81 |
# if ( use x86 && ! use mmx ) || ! use amd64 ; then |
| 82 |
if ( ! use mmx ); then |
| 83 |
sed -e 's!DEFINES += HAVE_MMX!DEFINES -= HAVE_MMX!' \ |
| 84 |
-i 'settings.pro' || die "disabling MMX failed" |
| 85 |
fi |
| 86 |
|
| 87 |
local myconf="" |
| 88 |
|
| 89 |
if hasq ${PN} ${MYTHPLUGINS} ; then |
| 90 |
for x in ${MYTHPLUGINS} ; do |
| 91 |
if [[ ${PN} == ${x} ]] ; then |
| 92 |
myconf="${myconf} --enable-${x}" |
| 93 |
else |
| 94 |
myconf="${myconf} --disable-${x}" |
| 95 |
fi |
| 96 |
done |
| 97 |
else |
| 98 |
die "Package ${PN} is unsupported" |
| 99 |
fi |
| 100 |
|
| 101 |
econf ${myconf} ${MTVCONF} |
| 102 |
|
| 103 |
${QTDIR}/bin/qmake QMAKE="${QTDIR}/bin/qmake" -o "Makefile" mythplugins.pro || die "qmake failed to run" |
| 104 |
emake || die "make failed to compile" |
| 105 |
} |
| 106 |
|
| 107 |
mythtv-plugins_src_install() { |
| 108 |
if hasq ${PN} ${MYTHPLUGINS} ; then |
| 109 |
cd "${S}"/${PN} |
| 110 |
else |
| 111 |
die "Package ${PN} is unsupported" |
| 112 |
fi |
| 113 |
|
| 114 |
einstall INSTALL_ROOT="${D}" |
| 115 |
for doc in AUTHORS COPYING FAQ UPGRADING ChangeLog README; do |
| 116 |
test -e "${doc}" && dodoc ${doc} |
| 117 |
done |
| 118 |
} |
| 119 |
|
| 120 |
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install |