[MacPorts] #47806: OpenCoarrays @1.0
MacPorts
noreply at macports.org
Wed Jun 17 23:24:18 PDT 2015
#47806: OpenCoarrays @1.0
-------------------------------+----------------------
Reporter: fanfarillo.gcc@… | Owner: larryv@…
Type: submission | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: OpenCoarrays |
-------------------------------+----------------------
Changes (by larryv@…):
* status: new => assigned
* owner: macports-tickets@… => larryv@…
* version: 2.3.3 =>
* port: opencoarrays => OpenCoarrays
Comment:
Here’s [[attachment:Portfile.larryv|my portfile]]. Please test it and
let me know if it’s satisfactory. Note that the additional
[[attachment:tests-compiler.patch|patch]] needs to go into a “files”
directory underneath the OpenCoarrays directory.
- I’ve renamed it to “OpenCoarrays”.
- I’ve moved it to the `science` category. This is in line with related
ports, like the MPICH and OpenMPI ones.
- It uses CMake and the `cmake-1.0` portgroup. This obviates the need to
manually pass compiler flags to the build phase.
- It currently fetches from GitHub using the `github-1.0` portgroup.
This is easily changed if you end up serving your distfiles from
elsewhere.
- It uses the `mpi-1.0` portgroup to handle the dirty business of
selecting compilers and using all the correct executables. The port
can be compiled using `mpich-gcc5`, `mpich-devel-gcc5`, `mpich-gcc6`,
or `mpich-devel-gcc6` by selecting the appropriate combination of
variants, which you can view with `port variants OpenCoarrays`. (Once
#48091 is closed, the OpenMPI variants should work as well.)
{{{
% sudo port install OpenCoarrays # Use MPICH 3.1.4 +
GCC 5
% sudo port install OpenCoarrays +gcc6 # Use MPICH 3.1.4 +
GCC 6
% sudo port install OpenCoarrays +mpich_devel # Use MPICH 3.2b3 +
GCC 5
% sudo port install OpenCoarrays +gcc6 +mpich_devel # Use MPICH 3.2b3 +
GCC 6
% port variants OpenCoarrays
OpenCoarrays has the variants:
debug: Enable debug binaries
[+]gcc5: Build using the MacPorts gcc 5 compiler
* conflicts with gcc6
gcc6: Build using the MacPorts gcc 6 compiler
* conflicts with gcc5
[+]mpich: Build using the MPICH compiler
* conflicts with mpich_devel openmpi openmpi_devel
mpich_devel: Build using the MPICH-devel compiler
* conflicts with mpich openmpi openmpi_devel
openmpi: Build using the OpenMPI compiler
* conflicts with mpich mpich_devel openmpi_devel
openmpi_devel: Build using the OpenMPI-devel compiler
* conflicts with mpich mpich_devel openmpi
}}}
- It patches `src/tests/unit/simple/CMakeLists.txt` to prevent it from
using the nonexistent "mpicc".
- It enables the test phase, which you can run by executing
`sudo port test OpenCoarrays`.
- It installs both the single and MPI libraries, as well as
`opencoarrays.mod`. Note that we cannot install to `${prefix}/mod`
because that would violate our directory hierarchy; I’ve used
`${prefix}/include` instead, as some other Fortran ports do.
There are still a couple of wrinkles, but I don’t think they are
blockers.
- The `mpi-1.0` portgroup creates a library dependency on the selected
MPI port, while OpenCoarrays really just needs a build dependency. The
portgroup is far too convenient overall for this to be a dealbreaker,
but ideally it would be improved to let client ports declare that they
only need MPI for building.
- The MPI ports do not have universal variants; thus, `mpi-1.0` does not
allow client ports to have both MPI variants and a universal variant.
--
Ticket URL: <https://trac.macports.org/ticket/47806#comment:29>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list