Ticket #39282: Portfile.5

File Portfile.5, 4.5 KB (added by dstrubbe (David Strubbe), 11 years ago)
Line 
1# -*- 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
2# $Id$
3
4PortSystem          1.0
5PortGroup           active_variants 1.1
6
7name                octopus
8version             4.1.0
9categories          science
10platforms           darwin
11license             GPL-2+
12maintainers         gmail.com:dstrubbe
13
14description         A real-space (time-dependent) density-functional theory code.
15long_description    Octopus is a scientific program aimed at ab initio virtual experimentation \
16                    on a hopefully ever-increasing range of system types. \
17                    Electrons are described quantum-mechanically within density-functional \
18                    theory (DFT), in its time-dependent form (TDDFT) when doing simulations \
19                    in time. Nuclei are described classically as point particles. Electron-nucleus \
20                    interaction is described within the pseudopotential approximation.
21homepage            http://www.tddft.org/programs/octopus
22master_sites        ${homepage}/download/${version}
23
24checksums           rmd160  636cf345f53a8d558a79258a257ed68a17488b76 \
25                    sha256  e367b2e594d8344085c8c424c8a31b4a7210b80e83c2d331ee602cc6fc7c838a
26
27depends_lib         port:atlas port:libxc port:fftw-3 port:gsl
28
29configure.args      --with-libxc-prefix=${prefix} --with-blas=-lsatlas \
30                    --disable-gdlib --without-sparskit --with-netcdf-prefix=no \
31                    --with-etsf-io-prefix=no --with-berkeleygw-prefix=no \
32                    --with-arpack=no --with-libfm=no --with-pfft-prefix=no \
33                    --with-pspio-prefix=no --with-nfft=no
34# configure will find and use these other libraries unless they are explicitly disabled
35
36pre-configure {
37    configure.args-append  FCCPP="${configure.cpp} -ansi"
38
39    # use of the same Fortran compiler as the one being used here does not seem necessary
40    if { ![active_variants fftw-3 gcc43] && ![active_variants fftw-3 gcc44] && \
41         ![active_variants fftw-3 gcc45] && ![active_variants fftw-3 gcc46] && \
42         ![active_variants fftw-3 gcc47] && ![active_variants fftw-3 gcc48] && \
43         ![active_variants fftw-3 g95] } {
44        ui_error "fftw-3 must be built with a Fortran variant"
45        return -code error "fftw-3 needs Fortran variant"
46    }
47}
48configure.optflags  -O3
49
50# More options that could be added:
51# variants: berkeleygw, openmp, openmpi, mpich, threads (for fftw, atlas?), scalapack, arpack
52# with MPI would need to disable zoltan, scalapack explicitly. no way to turn off PAPI.
53
54# libxc does not have universal variant, so octopus cannot either
55universal_variant   no
56
57test.run            yes
58test.target         check-full
59
60variant gcc46 conflicts gcc47 description {Build with GCC 4.6} {
61    configure.compiler  macports-gcc-4.6
62    depends_lib-append  port:gcc46
63    require_active_variants libxc gcc46
64}
65
66variant gcc47 conflicts gcc46 description {Build with GCC 4.7} {
67    configure.compiler  macports-gcc-4.7
68    depends_lib-append  port:gcc47
69    require_active_variants libxc gcc47
70}
71
72default_variants +newuoa
73if {![variant_isset gcc46]} {
74    default_variants    +gcc47
75}
76
77variant newuoa description {Build with internal newuoa library for optimal control} {
78    configure.args-append --enable-newuoa
79}
80
81variant netcdf description {Build with support for NetCDF output} {
82    configure.args-delete   --with-netcdf-prefix=no
83    configure.args-append   --with-netcdf-prefix=${prefix}
84    depends_lib-append      port:netcdf-fortran
85
86    require_active_variants netcdf-fortran {} universal
87    if {[variant_isset gcc46]} {
88        require_active_variants netcdf-fortran gcc46
89    } else {
90        require_active_variants netcdf-fortran gcc47
91    }
92}
93
94variant etsf_io requires netcdf description {Build with support for ETSF_IO output} {
95    configure.args-delete   --with-etsf-io-prefix=no
96    configure.args-append   --with-etsf-io-prefix=${prefix}
97    depends_lib-append      port:etsf_io
98
99    if {[variant_isset gcc46]} {
100        require_active_variants etsf_io gcc46
101    } else {
102        require_active_variants etsf_io gcc47
103    }
104}
105
106variant sparskit description {Build with support for SPARSKIT propagators} {
107    configure.args-delete   --without-sparskit
108    depends_lib-append      port:sparskit
109}
110
111variant gdlib description {Build with support for definition of domain by 2D image} {
112    configure.args-delete   --disable-gdlib
113    depends_lib-append      port:gd2
114}
115
116livecheck.type      regex
117livecheck.url       ${homepage}/wiki/index.php/Main_Page
118livecheck.regex     ${name} (\[0-9.\]+)