| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| PYTHON_COMPAT=( python2_7 ) |
| |
| inherit eutils flag-o-matic python-single-r1 toolchain-funcs |
| |
| CCP4VER="6.1.13" |
| |
| DESCRIPTION="A program for phasing macromolecular crystal structures" |
| HOMEPAGE="http://www-structmed.cimr.cam.ac.uk/phaser" |
| SRC_URI="ftp://ftp.ccp4.ac.uk/ccp4/${CCP4VER}/ccp4-${CCP4VER}-${PN}-cctbx-src.tar.gz" |
| |
| LICENSE="|| ( phaser phaser-com ccp4 )" |
| SLOT="0" |
| #KEYWORDS="~amd64 ~x86" |
| KEYWORDS="" |
| IUSE="openmp" |
| |
| RDEPEND="" |
| DEPEND="${RDEPEND} |
| app-shells/tcsh" |
| |
| S="${WORKDIR}"/ccp4-${CCP4VER} |
| |
| src_prepare() { |
| epatch \ |
| "${FILESDIR}"/phaser-2.1.4-chmod.patch \ |
| "${FILESDIR}"/phaser-2.1.4-ldflags.patch |
| |
| use openmp && append-flags -fopenmp |
| |
| for i in ${CXXFLAGS}; do |
| OPTS="${OPTS} \"${i}\"," |
| done |
| |
| OPTS=${OPTS%,} |
| |
| sed -i \ |
| -e "s:opts = \[.*\]$:opts = \[${OPTS}\]:g" \ |
| "${S}"/lib/cctbx/cctbx_sources/libtbx/SConscript || die |
| |
| for i in ${LDFLAGS}; do |
| OPTSLD="${OPTSLD} \"${i}\"," |
| done |
| |
| sed -i \ |
| -e "s:env_etc.shlinkflags .* \"-shared\":env_etc.shlinkflags = \[ ${OPTSLD} \"-shared\"\]:g" \ |
| -e "s:\[\"-static:\[${OPTSLD} \"-static:g" \ |
| "${S}"/lib/cctbx/cctbx_sources/libtbx/SConscript || die |
| |
| } |
| |
| src_configure() { |
| local compiler |
| local mtype |
| local mversion |
| local nproc |
| |
| # Valid compilers are win32_cl, sunos_CC, unix_gcc, unix_ecc, |
| # unix_icc, unix_icpc, tru64_cxx, hp_ux11_aCC, irix_CC, |
| # darwin_c++, darwin_gcc. The build systems seems to prepend |
| # unix_ all by itself. Can this be derived from $(tc-getCC)? |
| compiler=$(expr match "$(tc-getCC)" '.*\([a-z]cc\)') |
| |
| # Breaks cross compilation. |
| mtype=$(src/${PN}/bin/machine_type) |
| mversion=$(src/${PN}/bin/machine_version) |
| |
| einfo "Creating build directory" |
| mkdir build |
| cd build |
| ln -sf "${S}/lib/cctbx/cctbx_sources/scons" scons |
| ln -sf "${S}/lib/cctbx/cctbx_sources/libtbx" libtbx |
| |
| einfo "Configuring phaser components" |
| $(PYTHON) "libtbx/configure.py" \ |
| --build=release \ |
| --compiler=${compiler} \ |
| --repository="${S}"/src/${PN}/source \ |
| --repository="${S}"/lib/cctbx/cctbx_sources \ |
| --static_libraries \ |
| ccp4io="${S}" \ |
| mmtbx \ |
| phaser || die "configure.py failed" |
| } |
| |
| src_compile() { |
| nproc=`echo "-j1 ${MAKEOPTS}" \ |
| | sed -e "s/.*\(-j\s*\|--jobs=\)\([0-9]\+\).*/\2/"` |
| |
| cd build |
| einfo "Setting up build environment" |
| source setpaths.sh |
| |
| einfo "Compiling phaser components" |
| libtbx.scons -j ${nproc} || die "libtbx.scons failed" |
| } |
| |
| src_install() { |
| dobin build/exe/phaser || die |
| |
| cat >> "${T}"/53${PN} <<- EOF |
| PHASER="${EPREFIX}/usr/bin" |
| PHASER_ENVIRONMENT="1" |
| PHASER_MTYPE="${mtype}" |
| PHASER_MVERSION="${mversion}" |
| PHASER_VERSION="${PV}" |
| EOF |
| |
| doenvd "${T}"/53${PN} || die |
| } |