# -*- 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$ PortSystem 1.0 PortGroup muniversal 1.0 PortGroup cmake 1.0 PortGroup mpi 1.0 PortGroup linear_algebra 1.0 name gromacs revision 1 version 5.1.4 categories science math license GPL-2 maintainers dstrubbe openmaintainer description The World's fastest Molecular Dynamics package long_description GROMACS is a versatile package to perform molecular \ dynamics, i.e. simulate the Newtonian equations of motion for \ systems with hundreds to millions of particles. It is primarily \ designed for biochemical molecules like proteins and lipids that \ have a lot of complicated bonded interactions, but since GROMACS is \ extremely fast at calculating the nonbonded interactions (that \ usually dominate simulations) many groups are also using it for \ research on non-biological systems, e.g. polymers. platforms darwin homepage http://www.gromacs.org/ master_sites http://ftp.gromacs.org/pub/gromacs # md5 published at http://www.gromacs.org/Downloads checksums rmd160 d14fdd219dfe3a0252fc594031b8e9ce890ef3c6 \ sha256 0f3793d8f1f0be747cf9ebb0b588fb2b2b5dc5acc32c3046a7bee2d2c03437bc \ md5 ba2e34d59b3982603b4935d650c08040 depends_build-append \ port:pkgconfig depends_lib-append port:fftw-3-single port:libxml2 # FIXME: enable use of avx when appropriate, instead of just SSE configure.args-append -DGMX_SIMD:STRING="SSE4.1" -DBUILD_TESTING:BOOL=ON -DGMX_X11:BOOL=OFF # boost? variant x11 description {Enable GMX view via X11} { configure.args-replace -DGMX_X11:BOOL=OFF -DGMX_X11:BOOL=ON depends_lib-append port:xorg-libX11 port:xorg-libXext } # FIXME: use threads. #:info:configure -- Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS) #:info:configure CMake Warning at cmake/gmxManageOpenMP.cmake:78 (message): #:info:configure The compiler you are using does not support OpenMP parallelism. This might #:info:configure hurt your performance a lot, in particular with GPUs. Try using a more #:info:configure recent version, or a different compiler. For now, we are proceeding by #:info:configure turning off OpenMP. compilers.choose cc cxx mpi.setup test.run yes test.target check pre-test { if {[mpi_variant_isset]} { set suffix _mpi } else { set suffix "" } system -W ${worksrcpath} "install_name_tool -change ${prefix}/lib/libgromacs${suffix}.1.dylib @executable_path/../lib/libgromacs${suffix}.1.dylib bin/gmx${suffix}" # reset name for new executables that will be built in this phase system -W ${worksrcpath} "install_name_tool -id @executable_path/../lib/libgromacs${suffix}.1.dylib lib/libgromacs${suffix}.1.dylib" } post-test { # undo changes, in case 'install' is done afterward system -W ${worksrcpath} "install_name_tool -change @executable_path/../lib/libgromacs${suffix}.1.dylib ${prefix}/lib/libgromacs.1.dylib bin/gmx${suffix}" system -W ${worksrcpath} "install_name_tool -id ${prefix}/lib/libgromacs${suffix}.1.dylib lib/libgromacs${suffix}.1.dylib" } # I encountered this problem with the last test, when using MPI: #Program mdrun-mpi-test, VERSION 5.1.4 #Memory allocation/freeing error: #Character buffer too small! #For more information and tips for troubleshooting, please check the GROMACS #website at http://www.gromacs.org/Documentation/Errors linalg.setup noveclibfort pre-configure { if {[mpi_variant_isset]} { configure.args-append -DGMX_MPI:BOOL=ON -DMPIEXEC:STRING="${mpi.exec}" } configure.args-append -DGMX_BLAS_USER="${linalglib}" } variant double description "Build in double precision" { depends_lib-delete port:fftw-3-single depends_lib-append port:fftw-3 configure.args-append --enable-double } subport ${name}-double { replaced_by gromacs PortGroup obsolete 1.0 revision 1 pre-fetch { ui_warn "Subport 'gromacs-double' is replaced by variant 'gromacs +double'." } } livecheck.type regex livecheck.url ${homepage}Downloads livecheck.regex ${name}-(\[0-9.\]+)${extract.suffix}