# $Id: Portfile 55515 2009-08-12 14:14:02Z mmoll@macports.org $

PortSystem 1.0

name          arpack
version       1
revision      3
categories    math
platforms     darwin
maintainers		mmoll
description		Package for solving large scale eigenvalue problems
long_description  \
	ARPACK is a collection of Fortran77 subroutines designed to solve large \
	scale eigenvalue problems.
homepage      	http://www.caam.rice.edu/software/ARPACK
master_sites	${homepage}/SRC/
distfiles     arpack96.tar.gz patch.tar.gz
checksums     arpack96.tar.gz md5 fffaa970198b285676f4156cebc8626e \
	      patch.tar.gz md5 14830d758f195f272b8594a493501fa2

use_configure	no
worksrcdir	ARPACK
patchfiles	patch-arpack.diff
post-patch { 
    if {[variant_isset g95]} { 
        reinplace "s|-ff2c||" ${worksrcpath}/ARmake.inc 
    } 
}
build.args 	all home=${worksrcpath}
destroot    {
   xinstall -m 644 -v -W ${worksrcpath} libarpack.a ${destroot}${prefix}/lib
}
post-destroot {
	system "ranlib ${destroot}${prefix}/lib/libarpack.a"
}

variant gcc42 description {build with gfortran-mp-4.2} conflicts gcc43 gcc44 g95 {
	build.args-append       FC=${prefix}/bin/gfortran-mp-4.2
	depends_build-append    port:gcc42
}

variant gcc43 description {build with gfortran-mp-4.3} conflicts gcc42 gcc44 g95 {
	build.args-append       FC=${prefix}/bin/gfortran-mp-4.3
	depends_build-append    port:gcc43
}

variant gcc44 description {build with gfortran-mp-4.4} conflicts gcc42 gcc43 g95 {
	build.args-append       FC=${prefix}/bin/gfortran-mp-4.4
	depends_build-append    port:gcc44
}

variant g95 description {build with g95} conflicts gcc42 gcc43 gcc44 {
	build.args-append       FC=${prefix}/bin/g95
	depends_build-append    port:g95
}

variant mpi description {build PARPACK, the parallel eigenvalue solver library} {
  distfiles-append parpack96.tar.gz ppatch.tar.gz
  checksums-append parpack96.tar.gz md5 598d0453b938ccd99a078246be5927f3 \
  		   ppatch.tar.gz md5 e6f0d70dd99f719c0efee351d0875c96
	pre-fetch { 	 
	   if {![file exists ${prefix}/bin/openmpif77]} {
	     return -code error "Please install one of the following variants of the openmpi port: gcc42, gcc43, gcc44, g95."
	   }
	}
	pre-build { foreach entry [glob -directory ${worksrcpath}/PARPACK */MPI/mpif.h] { delete $entry } }
	depends_build port:openmpi
	build.args all FC=${prefix}/bin/openmpif77 home=${worksrcpath}
	destroot    {
	   xinstall -m 644 -v -W ${worksrcpath} libarpack.a libparpack.a ${destroot}${prefix}/lib
	}
	post-destroot {
		system "ranlib ${destroot}${prefix}/lib/libarpack.a"
		system "ranlib ${destroot}${prefix}/lib/libparpack.a"
	}
}

if { ![variant_isset gcc42] && ![variant_isset gcc43] && ![variant_isset gcc44] && ![variant_isset g95] } {
	default_variants      +gcc43
}

livecheck.check none
