You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-libs/linux-gpib/linux-gpib-3.2.16-r1.ebuild

173 lines
4.9 KiB

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-libs/linux-gpib/linux-gpib-3.2.16-r1.ebuild,v 1.2 2011/11/30 01:18:46 dilfridge Exp $
EAPI=4
PERL_EXPORT_PHASE_FUNCTIONS=no
inherit base linux-mod autotools perl-module
DESCRIPTION="Kernel module and driver library for GPIB (IEEE 488.2) hardware"
HOMEPAGE="http://linux-gpib.sourceforge.net/"
SRC_URI="mirror://sourceforge/linux-gpib/${P}.tar.gz
firmware? ( http://linux-gpib.sourceforge.net/firmware/gpib_firmware-2006-11-12.tar.gz )"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pcmcia static debug guile perl php python tcl doc firmware"
COMMONDEPEND="
tcl? ( dev-lang/tcl )
guile? ( dev-scheme/guile )
perl? ( dev-lang/perl )
php? ( dev-lang/php )
python? ( dev-lang/python )
firmware? ( sys-apps/fxload )
"
RDEPEND="${COMMONDEPEND}"
DEPEND="${COMMONDEPEND}
sys-kernel/module-rebuild
doc? ( app-text/docbook-sgml-utils )
perl? ( virtual/perl-ExtUtils-MakeMaker )
"
PATCHES=(
"${FILESDIR}/${PN}-3.2.15-build.patch"
"${FILESDIR}/${PN}-3.2.16-perl.patch"
)
pkg_setup () {
perl-module_pkg_setup
linux-mod_pkg_setup
if kernel_is -lt 2 6 8 ; then
die "Kernel versions older than 2.6.8 are not supported."
fi
}
src_prepare () {
base_src_prepare
eautoreconf
}
src_configure() {
set_arch_to_kernel
econf \
$(use_enable pcmcia) \
$(use_enable static) \
$(use_enable debug driver-debug) \
$(use_enable guile guile-binding) \
$(use_enable perl perl-binding) \
$(use_enable php php-binding) \
$(use_enable python python-binding) \
$(use_enable tcl tcl-binding) \
$(use_enable doc documentation) \
--with-linux-srcdir=${KV_DIR}
}
src_compile() {
set_arch_to_kernel
FIRM_DIR=/usr/share/usb
emake \
DESTDIR=${D} \
INSTALL_MOD_PATH=${D} \
HOTPLUG_USB_CONF_DIR=${D}/etc/hotplug/usb \
USB_FIRMWARE_DIR=${D}${FIRM_DIR} \
docdir=/usr/share/doc/${PF}/html
}
src_install () {
set_arch_to_kernel
FIRM_DIR=/usr/share/usb
emake \
DESTDIR=${D} \
INSTALL_MOD_PATH=${D} \
HOTPLUG_USB_CONF_DIR=${D}/etc/hotplug/usb \
USB_FIRMWARE_DIR=${D}${FIRM_DIR} \
docdir=/usr/share/doc/${PF}/html install
if use perl; then
einfo "Installing perl module"
cd "${S}/language/perl" || die
DESTDIR=${D} perl-module_src_install
cd "${S}" || die
fi
echo "KERNEL==\"gpib[0-9]*\", MODE=\"0660\", GROUP=\"gpib\"" >> 99-gpib.rules
insinto /etc/udev/rules.d/
doins 99-gpib.rules
dodoc doc/linux-gpib.pdf ChangeLog AUTHORS README* NEWS
insinto /etc
newins util/templates/gpib.conf gpib.conf
newins util/templates/gpib.conf gpib.conf.example
if use pcmcia ; then
dodir /etc/pcmcia
insinto /etc/pcmcia
doins "${S}"/etc/pcmcia/*
fi
if use firmware ; then
insinto "${FIRM_DIR}/agilent_8237a"
doins "${WORKDIR}"/gpib_firmware-2006-11-12/agilent_8237a/*
insinto "${FIRM_DIR}/ni_gpib_usb_b"
doins "${WORKDIR}"/gpib_firmware-2006-11-12/ni_gpib_usb_b/*
insinto "/usr/share/linux-gpib/hp_82341"
doins "${WORKDIR}"/gpib_firmware-2006-11-12/hp_82341/*
fi
}
pkg_preinst () {
linux-mod_pkg_preinst
perl-module_pkg_preinst
enewgroup gpib
}
pkg_postinst () {
linux-mod_pkg_postinst
perl-module_pkg_postinst
einfo "You need to run the 'gpib_config' utility to setup the driver before"
einfo "you can use it. In order to do it automatically you can add to your"
einfo "start script something like this (supposing the appropriate driver"
einfo "is loaded on the startup):"
einfo " gpib_config --minor 0"
einfo ""
einfo "To give a user access to the computer's gpib board you will have to add"
einfo "them to the group 'gpib' or, you could change the permissions on the device"
einfo "files /dev/gpib[0-15] to something you like better, using 'chmod'."
einfo ""
einfo "Edit /etc/gpib.conf to match your interface board, and any devices you wish"
einfo "to open via ibfind(). See the documentation in /usr/share/linux-gpib/html for"
einfo "more information."
einfo ""
if use pcmcia ; then
einfo "For PCMCIA cards:"
einfo "All files needed for a PCMCIA board were copied to /etc/pcmcia."
einfo "You may wish to edit the options passed to the gpib_config call in the"
einfo "/etc/pcmcia/linux-gpib-pcmcia script."
einfo "You may need to send a SIGHUP signal to the cardmgr daemon to force it"
einfo "to reload the files in /etc/pcmcia (alternatively you could use your"
einfo "pcmcia init.d script to restart the cardmgr, or you could just reboot)."
einfo "The driver module will be loaded as needed by the cardmgr."
einfo ""
fi
if use firmware ; then
einfo "For Agilent (HP) 82341C and 82341D cards:"
einfo "The firmware for these boards is uploaded by passing the appropriate"
einfo "firmware file from /usr/share/linux-gpib/hp_82341 directory to"
einfo "gpib_config using the -I or --init-data command line option. Example:"
einfo "gpib_config --minor 0 --init-data \\"
einfo "/usr/share/linux-gpib/hp_82341/hp_82341c_fw.bin"
einfo ""
fi
}