diff options
Diffstat (limited to 'eclass/pcmcia.eclass')
-rw-r--r-- | eclass/pcmcia.eclass | 128 |
1 files changed, 5 insertions, 123 deletions
diff --git a/eclass/pcmcia.eclass b/eclass/pcmcia.eclass index 64c53f94dbb6..40e8f42d7030 100644 --- a/eclass/pcmcia.eclass +++ b/eclass/pcmcia.eclass @@ -1,125 +1,7 @@ -# Copyright 1999-2004 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/pcmcia.eclass,v 1.11 2006/05/18 15:54:05 halcy0n Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/pcmcia.eclass,v 1.12 2009/11/30 04:19:36 abcd Exp $ -# pcmcia.eclass - This eclass facilities writing ebuilds for driver packages -# that may need to build against the pcmcia-cs drivers, depending on kernel -# support, pcmcia-cs version installed, etc. - -# It also ensures that any fixes need for pcmcia-cs configuration, driver -# compilation, etc can be located in one spot and be consistent among all -# driver packages - -# Author - Peter Johanson <latexer@gentoo.org> - -# Variables - You may safely use PCMCIA_SOURCE_DIR and PCMCIA_VERSION in ebuilds -# if this information is needed. These will be blank if kernel PCMCIA support -# is detected. - -# Functions - pcmcia_src_unpack unpacks and patches as needed the pcmcia-cs -# sources in ${WORKDIR}/${PCMCIA_SOURCE_DIR} and set the two variables. - -# pcmcia_configure will configure the pcmcia-cs sources if that is needed - -inherit eutils - -DESCRIPTION="eclass for drivers that may build against pcmcia-cs" -IUSE="pcmcia" - -# Be VERY careful when pumping the PCMCIA_BASE_VERSION. May require remaking some patches, etc -# Ugly, but portage doesn't like more dynamics SRC_URIs. - -PCMCIA_BASE_VERSION="pcmcia-cs-3.2.5" -PATCH_TO_3_2_6="pcmcia-cs-3.2.5-3.2.6.diff.gz" -PATCH_TO_3_2_7="pcmcia-cs-3.2.5-3.2.7.diff.gz" - -SRC_URI="pcmcia? ( mirror://sourceforge/pcmcia-cs/${PCMCIA_BASE_VERSION}.tar.gz \ - http://dev.gentoo.org/~latexer/files/patches/${PCMCIA_BASE_VERSION}-module-init-tools.diff.gz - http://dev.gentoo.org/~latexer/files/patches/${PCMCIA_BASE_VERSION}-SMP-fix.diff.gz - http://dev.gentoo.org/~latexer/files/patches/${PATCH_TO_3_2_6} \ - http://dev.gentoo.org/~latexer/files/patches/${PATCH_TO_3_2_7} )" - -# This shouldn't be needed, as it fixes pcmcia-cs *compilation* on new benh -# kernel's, but it's here to remind me in case it does become an issue -#ppc? ( http://dev.gentoo.org/~latexer/files/patches/${PCMCIA_BASE_VERSION}-ppc-fix.diff.gz ) ) - -DEPEND="pcmcia? ( >=sys-apps/${PCMCIA_BASE_VERSION} )" - -pcmcia_src_unpack() { - # So while the two eclasses exist side-by-side and also the ebuilds inherit - # both we need to check for PCMCIA_SOURCE_DIR, and if we find it, then we - # bail out and assume pcmcia.eclass is working on it. - [[ -n ${PCMCIA_SOURCE_DIR} ]] && return 1 - - cd ${WORKDIR} - if use pcmcia ; then - if egrep '^CONFIG_PCMCIA=[ym]' /usr/src/linux/.config >&/dev/null - then - # Sadly, we still need to download these sources in SRC_URI - # til portage can handle more dynamic SRC_URIs - einfo "Kernel PCMCIA detected. Skipping external pcmcia-cs sources." - PCMCIA_VERSION="" - PCMCIA_SOURCE_DIR="" - else - PCMCIA_SOURCE_DIR="${WORKDIR}/${PCMCIA_BASE_VERSION}" - - # We unpack the base version, figure out what is installed, then - # patch up to that version. Ugly hack to avoid messy SRC_URIs - unpack ${PCMCIA_BASE_VERSION}.tar.gz - cd ${PCMCIA_SOURCE_DIR} - epatch ${DISTDIR}/${PCMCIA_BASE_VERSION}-module-init-tools.diff.gz - epatch ${DISTDIR}/${PCMCIA_BASE_VERSION}-SMP-fix.diff.gz - PCMCIA_CS_EBUILD=(/var/db/pkg/sys-apps/pcmcia-cs-*/pcmcia-cs-*.ebuild) ## use bash globbing - if [ ! -f "${PCMCIA_CS_EBUILD}" ]; then - die "ERROR: pcmcia-cs ebuild (${PCMCIA_CS_EBUILD}) not found - are you sure pcmcia-cs is installed?" - fi - PCMCIA_CS_VER="${PCMCIA_CS_EBUILD##*/}" ## -> pcmcia-cs-VER.ebuild - PCMCIA_CS_VER="${PCMCIA_CS_VER/pcmcia-cs-/}" ## strip 'pcmcia-cs-' - PCMCIA_CS_VER="${PCMCIA_CS_VER/.ebuild/}" ## strip '.ebuild' - if [ "${PCMCIA_CS_VER/-*/}" = "3.2.7" ]; then - PCMCIA_VERSION=${PCMCIA_CS_VER} - einfo "Using pcmcia-cs-3.2.7" - epatch ${DISTDIR}/${PATCH_3_2_7} - elif [ "${PCMCIA_CS_VER/-*/}" = "3.2.6" ]; then - PCMCIA_VERSION=${PCMCIA_CS_VER} - einfo "Using pcmcia-cs-3.2.6" - epatch ${DISTDIR}/${PATCH_3_2_6} - else - PCMCIA_VERSION="${PCMCIA_BASE_VERSION}" - einfo "Using ${PCMCIA_BASE_VERSION}" - fi - fi - fi - cd ${S} -} - -# Call this if you need the package configured for building to work -pcmcia_configure() -{ - if use pcmcia ; then - if ! egrep '^CONFIG_PCMCIA=[ym]' /usr/src/linux/.config >&/dev/null - then - cd ${PCMCIA_SOURCE_DIR} - local myarch - - # pcmcia-cs expects "i386" not "x86" - case "${ARCH}" in - x86) myarch="i386" ;; - *) myarch="${ARCH}" ;; - esac - - #use $CFLAGS for user tools, but standard kernel optimizations for - #the kernel modules (for compatibility) - ./Configure -n \ - --target=${D} \ - --srctree \ - --kernel=/usr/src/linux \ - --kflags="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer" \ - --arch="${myarch}" \ - --uflags="${CFLAGS}" || die "failed configuring pcmcia-cs" - fi - fi - cd ${S} -} - -EXPORT_FUNCTIONS src_unpack +# @DEAD +# To be removed on 2011/11/30. +ewarn "Please fix your package (${CATEGORY}/${PF}) to not use ${ECLASS}.eclass" |