# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-sci/ncbi-tools/ncbi-tools-20040616.ebuild,v 1.4 2004/11/22 22:14:12 sekretarz Exp $ inherit flag-o-matic gcc DESCRIPTION="Development toolkit and applications (BLAST, entrez, ddv, udv, sequin...) for computational biology" LICENSE="public-domain" HOMEPAGE="http://www.ncbi.nlm.nih.gov/" SRC_URI="mirror://gentoo/${P}.tar.gz doc? ( mirror://gentoo/${PN}-sdk-doc.tar.bz2 )" SLOT="0" KEYWORDS="~x86 ~ppc ~sparc ~alpha ~amd64" IUSE="doc X" DEPEND="app-shells/tcsh dev-lang/perl media-libs/libpng X? ( virtual/x11 x11-libs/openmotif )" S=${WORKDIR}/ncbi pkg_setup() { echo ewarn 'It is important to note that the NCBI tools (especially the X' ewarn 'applications) are known to have compilation and run-time' ewarn 'problems when compiled with agressive compilation flags. The' ewarn '"-O3" flag is filtered by the ebuild on the x86 architecture if' ewarn 'X support is enabled. If you experience difficulties with this' ewarn 'package and use agressive "CFLAGS", lower the "CFLAGS" and try' ewarn 'to install the NCBI tools again.' echo } src_unpack() { unpack ${A} if ! use X; then cd ${S}/make sed -e "s:\#set HAVE_OGL=0:set HAVE_OGL=0:" -i makedis.csh sed -e "s:\#set HAVE_MOTIF=0:set HAVE_MOTIF=0:" -i makedis.csh else if use x86; then # X applications segfault on startup on x86 with -O3. replace-flags '-O3' '-O2' fi fi # Apply user C flags... cd ${S}/platform # ... on x86... sed -i -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" linux-x86.ncbi.mk sed -i -e "s/NCBI_LDFLAGS1 = -O3 -mcpu=pentiumpro/NCBI_LDFLAGS1 = ${CFLAGS}/" linux-x86.ncbi.mk sed -i -e "s/NCBI_OPTFLAG = -O3 -mcpu=pentiumpro/NCBI_OPTFLAG = ${CFLAGS}/" linux-x86.ncbi.mk # ... on alpha... sed -i -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" linux-alpha.ncbi.mk sed -i -e "s/NCBI_LDFLAGS1 = -O3 -mieee/NCBI_LDFLAGS1 = -mieee ${CFLAGS}/" linux-alpha.ncbi.mk sed -i -e "s/NCBI_OPTFLAG = -O3 -mieee/NCBI_OPTFLAG = -mieee ${CFLAGS}/" linux-alpha.ncbi.mk # ... on hppa... sed -i -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" hppalinux.ncbi.mk sed -i -e "s/NCBI_LDFLAGS1 = -O2/NCBI_LDFLAGS1 = ${CFLAGS}/" hppalinux.ncbi.mk sed -i -e "s/NCBI_OPTFLAG = -O2/NCBI_OPTFLAG = ${CFLAGS}/" hppalinux.ncbi.mk # ... on ppc... sed -i -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" ppclinux.ncbi.mk sed -i -e "s/NCBI_LDFLAGS1 = -O2/NCBI_LDFLAGS1 = ${CFLAGS}/" ppclinux.ncbi.mk sed -i -e "s/NCBI_OPTFLAG = -O2/NCBI_OPTFLAG = ${CFLAGS}/" ppclinux.ncbi.mk # ... on generic Linux. sed -i -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" linux.ncbi.mk sed -i -e "s/NCBI_LDFLAGS1 = -O3/NCBI_LDFLAGS1 = ${CFLAGS}/" linux.ncbi.mk sed -i -e "s/NCBI_OPTFLAG = -O3/NCBI_OPTFLAG = ${CFLAGS}/" linux.ncbi.mk # Put in our MAKEOPTS (doesn't work). # sed -e "s:make \$MFLG:make ${MAKEOPTS}:" -i ncbi/make/makedis.csh # Set C compiler... # ... on x86... sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(gcc-getCC)/" linux-x86.ncbi.mk # ... on alpha... sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(gcc-getCC)/" linux-alpha.ncbi.mk # ... on hppa... sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(gcc-getCC)/" hppalinux.ncbi.mk # ... on ppc... sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(gcc-getCC)/" ppclinux.ncbi.mk # ... on generic Linux. sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(gcc-getCC)/" linux.ncbi.mk } src_compile() { cd ${WORKDIR} ncbi/make/makedis.csh || die mkdir ${S}/cgi mkdir ${S}/real mv ${S}/bin/*.cgi ${S}/cgi mv ${S}/bin/*.REAL ${S}/real } src_install() { dobin ${S}/bin/* dolib ${S}/lib/* mkdir -p ${D}/usr/include/ncbi cp -RL ${S}/include/* ${D}/usr/include/ncbi # TODO: Web apps #insinto /usr/share/ncbi/lib/cgi #doins ${S}/cgi/* #insinto /usr/share/ncbi/lib/real #doins ${S}/real/* # TODO: Add support for wwwblast. # Basic documentation dodoc ${S}/{README,VERSION,doc/{*.txt,README.asn2xml}} newdoc ${S}/doc/fa2htgs/README README.fa2htgs newdoc ${S}/config/README README.config newdoc ${S}/network/encrypt/README README.encrypt newdoc ${S}/network/nsclilib/readme README.nsclilib newdoc ${S}/sequin/README README.sequin doman ${S}/doc/man/* # Hypertext user documentation dohtml ${S}/{README.html,doc/{*.html *.gif}} insinto /usr/share/doc/${PF}/html/blast doins ${S}/doc/blast/* # Developer documentation if use doc; then # "socks" documentation SOCKS="network/socks/socks.cstc.4.2" insinto /usr/share/doc/${PF}/socks doins ${S}/${SOCKS}/{CHANGES,How_to_SOCKSify,README.{1st,4.{0,1,2},DK},What_are_the_risks,What_SOCKS_expects} newins ${S}/${SOCKS}/libident/README README.libident doins ${S}/${SOCKS}/sockd/sockd.conf.sample doman ${S}/${SOCKS}/{doc/*.{1,5,8},libident/ident.3} # "regexp" documentation insinto /usr/share/doc/${PF}/regexp doins ${S}/regexp/doc/{AUTHORS,NEWS,README,Tech.Notes,*.txt} insinto /usr/share/doc/${PF}/regexp/html doins ${S}/regexp/doc/*.html doman ${S}/regexp/doc/*.{1,3} # Hypertext SDK documentation insinto /usr/share/doc/${PF}/html/sdk doins ${WORKDIR}/${PN}-sdk-doc/* # Demo programs mkdir ${D}/usr/share/ncbi mv ${S}/demo ${D}/usr/share/ncbi/demo mv ${S}/regexp/demo ${D}/usr/share/ncbi/demo/regexp mv ${S}/regexp/test ${D}/usr/share/ncbi/demo/regexp/test fi # Shared data (similarity matrices and such) and database directory. insinto /usr/share/ncbi/data doins ${S}/data/* dodir /usr/share/ncbi/formatdb # Default config file to set the path for shared data. insinto /etc/ncbi newins ${FILESDIR}/ncbirc .ncbirc # Env file to set the location of the config file and BLAST databases. dodir /etc/env.d insinto /etc/env.d doins ${FILESDIR}/21ncbi }