# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 110168 2013-08-27 19:41:46Z jeremyhu@macports.org $

PortSystem          1.0
PortGroup           python26 1.0

name                pdb2pqr
version             1.7
revision            2
categories          science
maintainers         bromo.med.uc.edu:howarth
description         automate Poisson-Boltzmann electrostatics calculations
long_description    PDB2PQR is a Python software package that automates many of the \
                    common tasks of preparing structures for continuum electrostatics \
                    calculations, providing a platform-independent utility for converting \
                    protein files in PDB format to PQR format.
homepage            http://pdb2pqr.sourceforge.net/
platforms           darwin
master_sites        sourceforge
checksums           md5     058622cb2ca6ca12af04d4f11b272951 \
                    sha1    df2bf4303dbc64b69a20d48331386d8c08c234f1
use_parallel_build  no
use_configure       yes
build.cmd           make
build.target        all
depends_lib         port:py26-numeric

post-patch {
    reinplace   "s|fort xlf95 lf95 g95|${configure.f77}|g" ${worksrcpath}/propka/configure
    reinplace   "s|/usr/bin/env python|${python.bin}|g" ${worksrcpath}/pdb2pka/pka.py
    reinplace   "s|/usr/bin/python|${python.bin}|g" ${worksrcpath}/src/psize.py
    reinplace   "s|-Wl,-framework -Wl,Python -bundle|${python.lib}  -bundle|g" \
                                                    ${worksrcpath}/configure \
                                                    ${worksrcpath}/propka/configure
    delete      ${worksrcpath}/contrib
}
configure.args      --with-max-atoms="1000000" --without-url --with-python=${python.bin}
pre-configure {
    configure.args-append   -with-f77=${configure.f77}
}
destroot {
      system "find ${worksrcpath} -name '*.o' -delete"
      file mkdir ${destroot}${prefix}/share/{name}
      move ${worksrcpath} ${destroot}${prefix}/share/${name}
      system "echo '#!/bin/zsh -f' >| ${destroot}${prefix}/bin/pdb2pqr"
      system "echo '${prefix}/share/${name}/pdb2pqr.py \"\$@\"' >> ${destroot}${prefix}/bin/pdb2pqr"
      file attributes ${destroot}${prefix}/bin/pdb2pqr -permissions a+x
      system "echo '#!/bin/zsh -f' >| ${destroot}${prefix}/bin/propka"
      system "echo '${prefix}/share/${name}/propka/propka \"\$@\"' >> ${destroot}${prefix}/bin/propka"
      file attributes ${destroot}${prefix}/bin/propka -permissions a+x
}

universal_variant no

set gcc_versions {4.5 4.6 4.7 4.8 4.9}
set default_fortran_variant +gcc48

foreach ver ${gcc_versions} {
    set ver_no_dot [join [split ${ver} "."] ""]

    set variant_line {variant gcc${ver_no_dot} description "build with gfortran from gcc${ver_no_dot}"}

    foreach over ${gcc_versions} {
        if {${ver} == ${over}} {
            continue
        }

        set over_no_dot [join [split ${over} "."] ""]
        append variant_line " conflicts gcc${over_no_dot}"
    }
    append variant_line { {}}

    eval $variant_line

    if {[variant_isset gcc${ver_no_dot}]} {
        if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
            set default_fortran_variant ""
        }
    }
}

if {${default_fortran_variant} != ""} {
    default_variants-append "${default_fortran_variant}"
}

foreach ver ${gcc_versions} {
    set ver_no_dot [join [split ${ver} "."] ""]

    if {[variant_isset gcc${ver_no_dot}]} {
        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
        depends_build-append port:gcc${ver_no_dot}

        configure.fc  ${prefix}/bin/gfortran-mp-${ver}
        configure.f77 ${prefix}/bin/gfortran-mp-${ver}
        configure.f90 ${prefix}/bin/gfortran-mp-${ver}
    }
}
