# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.29.1.ebuild,v 1.7 2011/04/25 06:45:37 ulm Exp $ # INCLUDED: # 1) linux sources from kernel.org # 2) linux-mips.org GIT snapshot diff # 3) Generic Fixes # 4) Patch for the IOC3 Metadriver (IP27, IP30) # 5) Patch for IP30 Support # 6) Patch for IP28 Graphics Support (SolidImpact) # 7) Experimental patches (if needed) #//------------------------------------------------------------------------------ # Version Data OKV=${PV/_/-} GITDATE="20090324" # Date of diff between kernel.org and lmo GIT GENPATCHREV="3" # Tarball revision for patches # Directories S="${WORKDIR}/linux-${OKV}-${GITDATE}" MIPS_PATCHES="${WORKDIR}/mips-patches" # Kernel-2 Vars K_SECURITY_UNSUPPORTED="1" K_NOUSENAME="0" K_NOUSEPR="0" K_USEPV="0" ETYPE="sources" # Inherit Eclasses inherit kernel-2 eutils detect_version # Version Data F_KV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" [[ "${EXTRAVERSION}" = -rc* ]] && KVE="${EXTRAVERSION}" # Portage Vars HOMEPAGE="http://www.linux-mips.org/ http://www.gentoo.org/" SLOT="${OKV}" KEYWORDS="-* ~mips" IUSE="cobalt ip27 ip28 ip30 ip32r10k impactdebug" DEPEND=">=sys-devel/gcc-4.1.1" RDEPEND="" # Machine Support Control Variables DO_IP22="yes" # If "yes", enable IP22 support (SGI Indy, Indigo2 R4x00) DO_IP27="yes" # IP27 support (SGI Origin) DO_IP28="yes" # IP28 support (SGI Indigo2 Impact R10000) DO_IP30="yes" # IP30 support (SGI Octane) DO_IP32="yes" # IP32 support (SGI O2, R5000/RM5200 Only) DO_CBLT="yes" # Cobalt Support (Cobalt Microsystems) # Machine Stable Version Variables SV_IP22="" # If set && DO_IP22 == "no", indicates last "good" IP22 version SV_IP27="" # DO_IP27 == "no", IP27 SV_IP28="" # DO_IP28 == "no", IP28 SV_IP30="" # DO_IP30 == "no", IP30 SV_IP32="" # DO_IP32 == "no", IP32 SV_CBLT="" # DO_CBLT == "no", Cobalt DESCRIPTION="Linux-Mips GIT sources for MIPS-based machines, dated ${GITDATE}" SRC_URI="${KERNEL_URI} mirror://gentoo/mipsgit-${F_KV}${KVE}-${GITDATE}.diff.bz2 mirror://gentoo/${PN}-${F_KV}-patches-v${GENPATCHREV}.tar.bz2" UNIPATCH_STRICTORDER="1" UNIPATCH_LIST="${DISTDIR}/mipsgit-${F_KV}${KVE}-${GITDATE}.diff.bz2" #//------------------------------------------------------------------------------ # Eblit Handling Functions # # They'll likely be superseded someday by better ideas, possibly elibs. # eblit-core # Usage: [version] # Main eblit engine eblit-core() { local e v func=$1 ver=$2 for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do e="${FILESDIR}/eblits/${func}${v}.eblit" if [[ -e ${e} ]] ; then . "${e}" [[ ${func} == pkg_* ]] && eval "${func}() { eblit-run ${func} ${ver} ; }" return 0 fi done return 1 } # eblit-include # Usage: [--skip] [version] # Includes an "eblit" -- a chunk of common code among ebuilds in a given # package so that its functions can be sourced and utilized within the # ebuild. eblit-include() { local skipable=false r=0 [[ $1 == "--skip" ]] && skipable=true && shift [[ $1 == pkg_* ]] && skipable=true [[ -z $1 ]] && die "Usage: eblit-include [version]" eblit-core $1 $2 r="$?" ${skipable} && return 0 [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/" } # eblit-run-maybe # Usage: # Runs a function if it is defined in an eblit eblit-run-maybe() { [[ $(type -t "$@") == "function" ]] && "$@" } # eblit-run # Usage: [version] # Runs a function defined in an eblit eblit-run() { eblit-include --skip common "${*:2}" eblit-include "$@" eblit-run-maybe eblit-$1-pre eblit-${PN}-$1 eblit-run-maybe eblit-$1-post } # eblit-pkg # Usage: [version] # Runs the pkg_* functions AND evals them so they're included in the binpkgs eblit-pkg() { [[ -z $1 ]] && die "Usage: eblit-pkg [version]" eblit-core pkg_$1 $2 } #//------------------------------------------------------------------------------ load_eblit_funcs() { # This is a sanity check to avoid QA issues. It prevents # eblits from being referenced during metadata operations. [ -n "${MIPS_SOURCES_EBLITS_LOADED}" ] && return # All are in ${FILESDIR}/eblits # If a message for a given machine needs to change, # then we create a new eblit and increment the # version and reference it here. eblit-include err_disabled_mach v1 eblit-include err_only_one_mach_allowed v1 eblit-include show_ip22_info v1 eblit-include show_ip27_info v1 eblit-include show_ip28_info v1 eblit-include show_ip30_info v1 eblit-include show_ip32_info v1 eblit-include show_cobalt_info v1 # This makes sure pkg_setup & pkg_postinst gets into any binpkg. # Neccessary because we can't guarantee FILESDIR is around for binpkgs. eblit-pkg setup v1 eblit-pkg postinst v1 # Eblit load complete MIPS_SOURCES_EBLITS_LOADED=1 } pkg_setup() { load_eblit_funcs pkg_setup } src_unpack() { eblit-run src_unpack v2 ; } #//------------------------------------------------------------------------------