1 | # $Id: Portfile 84523 2011-09-27 17:25:59Z jmr@macports.org $ |
---|
2 | |
---|
3 | PortSystem 1.0 |
---|
4 | PortGroup muniversal 1.0 |
---|
5 | |
---|
6 | name arpack |
---|
7 | version 3.0.2 |
---|
8 | categories math |
---|
9 | license BSD |
---|
10 | platforms darwin |
---|
11 | maintainers mmoll |
---|
12 | description Package for solving large scale eigenvalue problems |
---|
13 | long_description \ |
---|
14 | ARPACK is a collection of Fortran77 subroutines designed to solve large \ |
---|
15 | scale eigenvalue problems. |
---|
16 | homepage http://forge.scilab.org/index.php/p/arpack-ng |
---|
17 | master_sites ${homepage}/downloads/353 |
---|
18 | distfiles get |
---|
19 | checksums md5 fc744f506911401cf4573b1071c0424f \ |
---|
20 | sha1 1092e4da3a28707ee3a143defaa99f8fa26bba9f \ |
---|
21 | rmd160 26c74ff0a5ecd300eb61a1a0abea5bdbaa6e358d |
---|
22 | worksrcdir ${name}-ng-${version} |
---|
23 | |
---|
24 | pre-fetch { |
---|
25 | if {"darwin" == ${os.platform} && ${os.major} < 9} { |
---|
26 | ui_error "${name} ${version} requires Mac OS X 10.5 or greater" |
---|
27 | return -code error "incompatible Mac OS X version" |
---|
28 | } |
---|
29 | } |
---|
30 | |
---|
31 | # Fortran compilers can not cross-compile |
---|
32 | if { ${os.arch}=="i386" } { |
---|
33 | set universal_archs_supported "i386 x86_64" |
---|
34 | } else { |
---|
35 | set universal_archs_supported "ppc ppc64" |
---|
36 | } |
---|
37 | |
---|
38 | if { ! [variant_isset universal]} { |
---|
39 | configure.args-append home=${worksrcpath} |
---|
40 | if { ${build_arch}=="x86_64" || ${build_arch}=="ppc64" } { |
---|
41 | configure.args-append FFLAGS='-O2 -m64' LDFLAGS='-L${prefix}/lib' |
---|
42 | } else { |
---|
43 | configure.args-append FFLAGS='-O2 -m32' LDFLAGS='-L${prefix}/lib' |
---|
44 | } |
---|
45 | } else { |
---|
46 | foreach arch {x86_64 i386 ppc ppc64} { |
---|
47 | set merger_build_args(${arch}) home=${worksrcpath}-${arch} |
---|
48 | if { ${arch}=="x86_64" || ${arch}=="ppc64" } { |
---|
49 | lappend merger_build_args(${arch}) FFLAGS='-O2 -m64' |
---|
50 | } else { |
---|
51 | lappend merger_build_args(${arch}) FFLAGS='-O2 -m32' |
---|
52 | } |
---|
53 | } |
---|
54 | } |
---|
55 | |
---|
56 | variant gcc42 description {build with gfortran-mp-4.2} conflicts gcc43 gcc44 gcc45 g95 universal { |
---|
57 | depends_build-append port:gcc42 |
---|
58 | configure.env-append F77=${prefix}/bin/gfortran-mp-4.2 |
---|
59 | } |
---|
60 | |
---|
61 | variant gcc43 description {build with gfortran-mp-4.3} conflicts gcc42 gcc44 gcc45 g95 universal { |
---|
62 | depends_build-append port:gcc43 |
---|
63 | configure.env-append F77=${prefix}/bin/gfortran-mp-4.3 |
---|
64 | } |
---|
65 | |
---|
66 | variant gcc44 description {build with gfortran-mp-4.4} conflicts gcc42 gcc43 gcc45 g95 { |
---|
67 | depends_build-append port:gcc44 |
---|
68 | configure.env-append F77=${prefix}/bin/gfortran-mp-4.4 |
---|
69 | } |
---|
70 | |
---|
71 | variant gcc45 description {build with gfortran-mp-4.5} conflicts gcc42 gcc43 gcc44 g95 { |
---|
72 | depends_build-append port:gcc45 |
---|
73 | configure.env-append F77=${prefix}/bin/gfortran-mp-4.5 |
---|
74 | } |
---|
75 | |
---|
76 | variant g95 description {build with g95} conflicts gcc42 gcc43 gcc44 gcc45 universal { |
---|
77 | depends_build-append port:g95 |
---|
78 | configure.env-append F77=${prefix}/bin/g95 |
---|
79 | } |
---|
80 | |
---|
81 | if { ![variant_isset gcc42] && ![variant_isset gcc43] && ![variant_isset gcc44] && ![variant_isset gcc45] && ![variant_isset g95] } { |
---|
82 | default_variants +gcc44 |
---|
83 | } |
---|
84 | |
---|
85 | if { [variant_isset gcc42] } { |
---|
86 | set gccversion 4.2 |
---|
87 | } elseif { [variant_isset gcc43] } { |
---|
88 | set gccversion 4.3 |
---|
89 | } elseif { [variant_isset gcc44] } { |
---|
90 | set gccversion 4.4 |
---|
91 | } else { |
---|
92 | set gccversion 4.5 |
---|
93 | } |
---|
94 | set gccnumber [join [split ${gccversion} .] ""] |
---|
95 | |
---|
96 | variant mpi description {build PARPACK, the parallel eigenvalue solver library} conflicts universal { |
---|
97 | pre-fetch { |
---|
98 | if {![file exists ${prefix}/bin/openmpif77]} { |
---|
99 | return -code error "Please install one of the following variants of the openmpi port: gcc42, gcc43, gcc44, gcc45." |
---|
100 | } |
---|
101 | } |
---|
102 | depends_build port:openmpi |
---|
103 | configure.args-append --enable-mpi |
---|
104 | configure.env-append MPIF77=${prefix}/bin/openmpif77 |
---|
105 | } |
---|
106 | |
---|
107 | variant accelerate conflicts atlas description {build with Accelerate framework} { |
---|
108 | configure.args-append --with-lapack=/usr/lib/liblapack.dylib |
---|
109 | } |
---|
110 | |
---|
111 | variant atlas description {build with atlas} { |
---|
112 | depends_lib-append port:atlas |
---|
113 | configure.args-append --with-lapack=${prefix}/lib/liblapack.dylib |
---|
114 | } |
---|
115 | |
---|
116 | if {![variant_isset atlas]} { |
---|
117 | default_variants +accelerate |
---|
118 | } |
---|
119 | |
---|
120 | livecheck.type regex |
---|
121 | livecheck.url ${master_sites} |
---|
122 | livecheck.regex ${name}_(\[0-9.\]+) |
---|