# Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-apps/pcmcia-cs-drivers/pcmcia-cs-drivers-3.2.3.ebuild,v 1.7 2004/03/15 02:39:26 latexer Exp $ MY_P=${P/-drivers/} S=${WORKDIR}/${MY_P} DESCRIPTION="pcmcia-cs drivers" SRC_URI="mirror://sourceforge/pcmcia-cs/${MY_P}.tar.gz http://ozlabs.org/people/dgibson/dldwd/orinoco-0.13a.tar.gz" HOMEPAGE="http://pcmcia-cs.sourceforge.net" DEPEND="sys-kernel/linux-headers >=sys-apps/sed-4" RDEPEND="" SLOT="0" IUSE="trusted apm pnp nocardbus build" LICENSE="GPL-2" KEYWORDS="x86 amd64" # check arch for configure if [ ${ARCH} = "x86" ] ; then MY_ARCH="i386" else MY_ARCH="ppc" fi # Note: To use this ebuild, you should have the usr/src/linux symlink to # the kernel directory that pcmcia-cs should use for configuration. src_unpack() { unpack ${MY_P}.tar.gz unpack orinoco-0.13a.tar.gz mv orinoco-0.13a/hermes*.{c,h} \ orinoco-0.13a/orinoco*.{c,h} \ orinoco-0.13a/ieee802_11.h \ ${MY_P}/wireless/ cd ${S} cp Configure Configure.orig sed -e 's:usr/man:usr/share/man:g' Configure.orig > Configure #man pages will now install into /usr/share/man echo `use gtk` } src_compile() { local myconf use trusted && myconf="--trust" || myconf="--notrust" use apm && myconf="$myconf --apm" || myconf="$myconf --noapm" use pnp && myconf="$myconf --pnp" || myconf="$myconf --nopnp" use nocardbus && myconf="$myconf --nocardbus" || myconf="$myconf --cardbus" #use $CFLAGS for user tools, but standard kernel optimizations for the kernel modules (for compatibility) ./Configure -n \ --force \ --target=${D} \ --srctree \ --kernel=/usr/src/linux \ --arch="${MY_ARCH}" \ --uflags="$CFLAGS" \ --kflags="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer" \ $myconf || die "failed configuring" # nopnp and noapm are important, because without them the pcmcia-cs # tools will require a kernel with ISA PnP and/or APM support, # which cannot be guaranteed. We need to make sure the tools # work *all* the time, not just some of the time. # The --srctree option tells pcmcia-cs to configure for the kernel in # /usr/src/linux rather than the currently-running kernel. It's Gentoo # Linux policy to configure for the kernel in /usr/src/linux # This handles the various cardinfo guis. If you have gtk in your USE, # then the gtk version will be installed. If not, but X is in your USE, # then the xaw version will be installed. Otherwise, no gui will be # installed. sed -e "/^HAS_FORMS/d" config.out > config.out.1 sed -e "/^HAS_FORMS/d" config.mk > config.mk.1 sed -i -e "/^HAS_GTK/d" config.out.1 sed -i -e "/^HAS_GTK/d" config.mk.1 sed -i -e "/^HAS_XAW/d" config.out.1 sed -i -e "/^HAS_XAW/d" config.mk.1 sed -e "s/^FLIBS=\".*\"/FLIBS=\"\"/" config.out.1 > config.out sed -e "s/^FLIBS=\".*\"/FLIBS=\"\"/" config.mk.1 > config.mk rm -f config.out.1 rm -f config.mk.1 # patch version.h so that they won't complain that Card Services is wrong. if [ -n "`grep -E '^CONFIG_PCMCIA\=y' config.mk`" ]; then cd ${S}/include/pcmcia # get kernel CS_RELEASE : if [ -f /usr/src/linux/include/pcmcia/version.h ]; then KERNEL_RELEASE=`grep -E '^#define CS_RELEASE ' /usr/src/linux/include/pcmcia/version.h | awk '{print $3}'` KERNEL_RELEASE_CODE=`grep -E '^#define CS_RELEASE_CODE ' /usr/src/linux/include/pcmcia/version.h | awk '{print $3}'` else die "unable to find /usr/src/linux/include/pcmcia/version.h" fi # replace CS_PKG_RELEASE : if [ -f version.h ]; then sed "s|\(#define CS_PKG_RELEASE.*\)\".*\"|\1$KERNEL_RELEASE|" version.h > version.h.new sed "s|\(#define CS_PKG_RELEASE_CODE.*\)0x.*|\1$KERNEL_RELEASE_CODE|" version.h.new > version.h fi cd ${S}/clients emake all || die "failed compiling" cd ${S}/wireless emake all || die "failed compiling" else eerror "Please enable PCMCIA in your kernel in /usr/src/linux" eend fi } src_install () { cd ${S}/clients make PREFIX=${D} install || die "failed installing" cd ${S}/wireless make PREFIX=${D} install || die "failed installing" cd ${S}/man make PREFIX=${D} install-man4 || die "failed installing" rm -f ${D}/etc/modules.conf rm -rf ${D}/var/lib/pcmcia } pkg_postinst() { einfo "Please note that some of these drivers are also provided by the kernel. To use a driver installed" einfo "by this ebuild, you must *disable* the corresponding driver in the kernel." }