173 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # Copyright 1999-2004 Gentoo Foundation
 | |
| # Copyright 2005 Preston Crow
 | |
| # Copyright 2009-2010 Marc Tousignant
 | |
| #  ( If you make changes, please add a copyright notice above, but
 | |
| #    never remove an existing notice. )
 | |
| # Distributed under the terms of the GNU General Public License v2
 | |
| # $Header: /var/cvsroot/gentoo-x86/eclass/myth.eclass,v 1.4 2004/09/15 14:40:33 aliz Exp $
 | |
| #
 | |
| # Author: Daniel Ahlberg <aliz@gentoo.org>
 | |
| # Modified: Preston Crow
 | |
| # Modified: Marc Tousignant
 | |
| #
 | |
| 
 | |
| inherit git-2 eutils flag-o-matic multilib versionator toolchain-funcs
 | |
| 
 | |
| ECLASS=myth-git
 | |
| INHERITED="${INHERITED} ${ECLASS}"
 | |
| IUSE="${IUSE} nls"
 | |
| 
 | |
| EXPORT_FUNCTIONS src_unpack src_compile src_install
 | |
| 
 | |
| EGIT_BRANCH="fixes/0.25"
 | |
| 
 | |
| MYTHPLUGINS="mytharchive mythbrowser mythgallery mythgame mythmusic mythnetvision mythnews mythweather mythzoneminder"
 | |
| 
 | |
| _MODULE=${PN}
 | |
| 
 | |
| if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 	EGIT_REPO_URI="git://github.com/MythTV/mythtv.git"
 | |
| 	EGIT_PROJECT=mythplugins
 | |
| 	EGIT_COMMIT="${MYTHTV_GIT_REVISION}"
 | |
| elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 	EGIT_REPO_URI="git://github.com/MythTV/myththemes.git"
 | |
| 	EGIT_PROJECT=myththemes
 | |
| 	EGIT_COMMIT="${MYTHTHEMES_GIT_REVISION}"
 | |
| elif [ "${_MODULE}" == "mythweb" ]; then
 | |
| 	EGIT_REPO_URI="git://github.com/MythTV/mythweb.git"
 | |
| 	EGIT_PROJECT=mythweb
 | |
| 	EGIT_COMMIT="${MYTHWEB_GIT_REVISION}"
 | |
| else
 | |
| 	EGIT_REPO_URI="git://github.com/MythTV/mythtv.git"
 | |
| 	EGIT_PROJECT=${_MODULE/frontend/tv}
 | |
| 	EGIT_COMMIT="${MYTHTV_GIT_REVISION}"
 | |
| fi
 | |
| 
 | |
| if [ "${EGIT_COMMIT}" == "" ]; then
 | |
|         EGIT_COMMIT="${EGIT_BRANCH}"
 | |
| fi
 | |
| 
 | |
| S="${WORKDIR}"
 | |
| 
 | |
| myth-git_src_unpack() {
 | |
| 
 | |
| 	pkg_pro=${_MODULE}.pro
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		pkg_pro="mythplugins.pro"
 | |
| 	elif [ "${_MODULE}" == "mythfrontend" ]; then
 | |
| 		pkg_pro="mythtv.pro"
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 		pkg_pro="myththemes.pro"
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes-old" ]; then
 | |
| 		pkg_pro="myththemes.pro"
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes-extra" ]; then
 | |
| 		pkg_pro="myththemes.pro"
 | |
| 	fi
 | |
| 
 | |
| 	git-2_src_unpack
 | |
| 
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		cd ${S}/mythplugins
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 		cd ${S}
 | |
| 	else
 | |
| 		cd ${S}/${_MODULE}
 | |
| 	fi
 | |
| 
 | |
| 	if use debug ; then
 | |
| 		FEATURES="${FEATURES} nostrip"
 | |
| 		sed \
 | |
| 			-e '/profile:CONFIG +=/s/release/debug/' \
 | |
| 			-i 'settings.pro' || die "Setting debug failed"
 | |
| 	fi
 | |
| 
 | |
| 	if ! use nls ; then
 | |
| 		if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 			sed \
 | |
| 				-e "/^SUBDIRS/s:i18n::" \
 | |
| 				-i  ${_MODULE}/${_MODULE}.pro || die "Disable i18n failed"
 | |
| 		else
 | |
| 		sed \
 | |
| 			-e "/^SUBDIRS/s:i18n::" \
 | |
| 			-i ${pkg_pro} || die "Disable i18n failed (${pkg_pro})"
 | |
| 		fi
 | |
| 	fi
 | |
| 
 | |
| 	setup_pro
 | |
| }
 | |
| 
 | |
| myth-git_src_compile() {
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		for x in ${MYTHPLUGINS} ; do
 | |
| 			if [[ ${_MODULE} == ${x} ]] ; then
 | |
| 				myconf="${myconf} --enable-${x}"
 | |
| 			else
 | |
| 				myconf="${myconf} --disable-${x}"
 | |
| 			fi
 | |
| 		done
 | |
| 	fi
 | |
| 	# Myth doesn't use autoconf, and it rejects unexpected options.
 | |
| 	myconf=$(echo ${myconf} | sed -e 'sX--enable-audio-jackXXg' -e 'sX--enable-audio-alsaXXg' -e 'sX--enable-audio-artsXXg' -e 'sX--enable-audio-ossXXg' )
 | |
| 
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		cd ${S}/mythplugins
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 		cd ${S}
 | |
| 	else
 | |
| 		cd ${S}/${_MODULE}
 | |
| 	fi
 | |
| 
 | |
| 	sed -e 's/rm mythconfig.mak/rm -f mythconfig.mak/' -i configure
 | |
| 
 | |
|         ## CFLAG cleaning so it compiles
 | |
|         MARCH=$(get-flag "march")
 | |
|         MTUNE=$(get-flag "mtune")
 | |
|         strip-flags
 | |
|         filter-flags "-march=*" "-mtune=*" "-mcpu=*"
 | |
|         filter-flags "-O" "-O?"
 | |
| 
 | |
|         if [[ -n "${MARCH}" ]]; then
 | |
|                 myconf="${myconf} --cpu=${MARCH}"
 | |
|         fi
 | |
|         if [[ -n "${MTUNE}" ]]; then
 | |
|                 myconf="${myconf} --tune=${MTUNE}"
 | |
|         fi
 | |
| 
 | |
| #       myconf="${myconf} --extra-cxxflags=\"${CXXFLAGS}\" --extra-cflags=\"${CFLAGS}\""
 | |
| #       hasq distcc ${FEATURES} || myconf="${myconf} --disable-distcc"
 | |
| #       hasq ccache ${FEATURES} || myconf="${myconf} --disable-ccache"
 | |
| 
 | |
|         # let MythTV come up with our CFLAGS. Upstream will support this
 | |
|         CFLAGS=""
 | |
|         CXXFLAGS=""
 | |
| 
 | |
|         einfo "Running ./configure --prefix=/usr --mandir=/usr/share/man ${myconf}"
 | |
| 	./configure --prefix=/usr --mandir=/usr/share/man ${myconf}
 | |
| 
 | |
| 
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		for X in */ */*/ ; do cd $X ; ln -s ../mythconfig.mak . ; cd ${S}/mythplugins ; done
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 		for X in */ */*/ ; do cd $X ; ln -s ../mythconfig.mak . ; cd ${S}/ ; done
 | |
| 	else
 | |
| 		for X in */ */*/ ; do cd $X ; ln -s ../mythconfig.mak . ; cd ${S}/${_MODULE} ; done
 | |
| 	fi
 | |
| 	qmake ${pkg_pro}
 | |
| 	emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" "${@}" || die
 | |
| }
 | |
| 
 | |
| myth-git_src_install() {
 | |
| 	if has ${_MODULE} ${MYTHPLUGINS} ; then
 | |
| 		cd ${S}/mythplugins
 | |
| 	elif [ "${_MODULE}" == "mythtv-themes" ]; then
 | |
| 		cd ${S}
 | |
| 	else
 | |
| 		cd ${S}/${_MODULE}
 | |
| 	fi
 | |
| 
 | |
| 	einstall INSTALL_ROOT="${D}"
 | |
| 	for doc in AUTHORS COPYING FAQ UPGRADING ChangeLog README; do
 | |
| 		test -e "${doc}" && dodoc ${doc}
 | |
| 	done
 | |
| }
 |