# Copyright 1999-2002 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /home/cvsroot/gentoo-x86/sys-apps/pcmcia-cs/pcmcia-cs-3.2.3.ebuild,v 1.2 2002/12/15 22:06:27 chadh Exp $ S=${WORKDIR}/${P} DESCRIPTION="PCMCIA tools for Linux" SRC_URI="mirror://sourceforge/pcmcia-cs/${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" RDEPEND="" SLOT="0" IUSE="trusted apm pnp nocardbus build" LICENSE="GPL-2" KEYWORDS="~x86" # 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() { pcmcia_cs_config unpack ${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 \ ${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 } 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 \ --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 sed -e "/^HAS_FORMS/d" config.out > config.out.sed sed -e "/^HAS_FORMS/d" config.mk > config.mk.sed sed -e "s/^FLIBS=\".*\"/FLIBS=\"\"/" config.out.sed > config.out sed -e "s/^FLIBS=\".*\"/FLIBS=\"\"/" config.mk.sed > config.mk rm -f config.out.sed rm -f config.mk.sed emake all || die "failed compiling" } src_install () { make PREFIX=${D} install || die "failed installing" cd ${D} rm -rf etc/rc*.d # remove X # this is simply much easier than patching configure or the makefiles # not to build them in the first place rm -rf usr/X11R6 # todo: if they are installed, move them to /usr insinto /etc/conf.d newins ${FILESDIR}/pcmcia.conf pcmcia exeinto /etc/pcmcia doexe ${FILESDIR}/network # install our own init script exeinto /etc/init.d newexe ${FILESDIR}/pcmcia.rc pcmcia if [ -z "`use build`" ] then cd ${S} # install docs dodoc BUGS CHANGES COPYING LICENSE MAINTAINERS README \ README-2.4 SUPPORTED.CARDS doc/* else rm -rf ${D}/usr/share/man fi rm -f ${D}/etc/modules.conf rm -rf ${D}/var/lib/pcmcia # if on ppc set the ppc revised config.opts if [ ${ARCH} = "ppc" ] ; then insinto /etc/pcmcia newins ${FILESDIR}/ppc.config.opts config.opts fi } pkg_postinst() { einfo "To avail yourself of the pcmcia-cs drivers, you have to disable the PCMCIA support in the kernel." einfo "(Otherwise, you might experience CardServices version mismatch errors)" einfo "" einfo "Proper kernel config for this package is that PCMCIA/CardBus under General Setup is off and" einfo "Wireless LAN (non-ham radio) is on but no modules or drivers turned on under Network Device Support" einfo "if you have wireless." } pcmcia_cs_config() { CONFIG_PCMCIA=n CONFIG_NET_RADIO=n if [ ! -r '/usr/src/linux/.config' ]; then eerror "" eerror "*** ERROR: You must have a valid and configured kernel at /usr/src/linux" eerror "" die fi . /usr/src/linux/.config if [ 'n' != ${CONFIG_PCMCIA} ]; then eerror "" eerror "*** ERROR: Your kernel has PCMCIA support. You must disable" eerror "PCMCIA support in your kernel and then emerge this package again." eerror "" eerror "To disable this, turn off PCMCIA/CardBus support under General Setup." eerror "" die fi if [ 'n' = ${CONFIG_NET_RADIO} ]; then ewarn "" ewarn "*** WARNING: Your kernel does not have Wireless LAN (non-ham radio)" ewarn "support. This means you will not be able to use WiFi cards with this" ewarn "package. You can press Ctrl-C at this time to exit this emerge and then" ewarn "compile WiFi support into your kernel to use WiFi cards with this package." ewarn "" ewarn "You can turn Wireless LAN (non-ham radio) support on under Network Device Support" ewarn "" sleep 15 fi }