Skip to content

Commit 365a83f

Browse files
author
Damian Rouson
committed
Update INSTALL.md corresponding release 1.8.4
1 parent 813a493 commit 365a83f

File tree

1 file changed

+98
-74
lines changed

1 file changed

+98
-74
lines changed

INSTALL.md

Lines changed: 98 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -26,80 +26,57 @@ Download this file as a PDF document
2626
End-User Installation
2727
---------------------
2828

29-
### Installation Script###
29+
Most users will find it easiest and fastest to use package management software to install OpenCoarrays.
30+
Package management options for macOS (formerly known as OS X), Windows, and Linux are described first
31+
below. Also described below are options for installing via an OpenCoarrays installation script or
32+
via the Sourcery Institute virtual machine.
33+
34+
### macOS ###
3035

31-
As of release 1.2.0, users might consider installing by downloading and uncompressing
32-
a file from our [Releases] page and running the installation script in the top-level
33-
source directory:
36+
OS X users may use the [Homebrew] or [MacPorts] package management systems to install OpenCoarrays.
3437

38+
Homebrew installation steps:
3539
```
36-
tar xvzf OpenCoarrays-x.y.z.tar.gz
37-
cd OpenCoarrays-x.y.z
38-
./install.sh
40+
brew update
41+
brew install opencoarrays
3942
```
4043

41-
where `x.y.z` should be replaced with the appropriate version numbers. For a scripted or unattended build, use
42-
`./install.sh -y` or equivalently `./install.sh --yes-to-all`, which will assume affirmative answers
43-
to all user prompts and will only prompt the user if an installation directory is chosen that requires
44-
`sudo` privelenges (by passing `-i` or equivalently `--install-prefix`).
45-
46-
Before installing OpenCoarrays, the above bash script will attempt to detect the presence
47-
of the default prerequisite packages: [GCC], [MPICH] , and [CMake]. For additional details, see the [Prerequisites] section. If any of the
48-
aforementioned packages appear to be absent from the user's PATH environment variable,
49-
the [install.sh] script will attempt to download, build, and install any missing packages
50-
after asking permission to do so. The script has been tested on Linux and OS X. Please
51-
submit any related problems or questions to our [Issues] page.
52-
53-
A complete installation should result in the creation of the following directories
54-
inside the installation path (.e.g, inside `build` in the above example):
55-
56-
* `bin`: contains the compiler wrapper (`caf`), program launcher (`cafun`), and prerequisites builder (`build`)
57-
* `mod`: contains the `opencoarrays.mod` module file for use with non-OpenCoarrays-aware compilers
58-
* `lib`: contains the `libcaf_mpi.a` static library to which codes link for CAF support
59-
60-
The remainder of this document explains other options that many end users will find
61-
simplest to obtain OpenCoarrays on OS X, Windows, or Linux without building OpenCoarrays
62-
from its source code.
63-
64-
### OS X ###
65-
66-
OS X users might find it easiest to install OpenCoarrays using the [MacPorts]
67-
package management system. After installing [MacPorts], type the following:
68-
44+
MacPorts installation steps:
6945
```
7046
sudo port selfupdate
7147
sudo port upgrade outdated
7248
sudo port install opencoarrays
7349
```
74-
75-
where the `sudo` command requires administrator privileges and where the first
76-
two steps above are required only if the [MacPorts] ports were last updated prior
77-
to 30 September 2015, when the OpenCoarrays port was incorporated into [MacPorts].
78-
Repeating the first two steps above will also update OpenCoarrays to the latest
79-
release.
80-
81-
Please also install the `mpstats` port as follows:
82-
50+
where the `sudo` command requires administrator privileges. If you install using MacPorts, please
51+
also install the `mpstats` port as follows:
8352
```
8453
sudo port install mpstats
8554
```
86-
87-
which supports future OpenCoarrays development by providing download data the
88-
OpenCoarrays team can use in proposals for research grants and development
89-
contracts.
55+
which supports future OpenCoarrays development by providing download data the OpenCoarrays team
56+
uses in proposals for research grants and development contracts.
9057

9158
### Windows ###
9259

93-
Windows users will find it easiest to download the Lubuntu Linux virtual
94-
machine from the [Sourcery Institute Store]. The virtual machine boots inside
95-
the open-source [VirtualBox] virtualization package. In addition to containing
96-
GCC 4.9, 5.2, and 6.0, MPICH, OpenMPI, and OpenCoarrays, the virtual machine
97-
contains dozens of other open-source software packages that support software
98-
development in modern Fortran. See the [download and installation instructions]
99-
for a partial list of the included packages.
60+
Windows users may run the windows-install.sh script inside the Windows Subsystem for Linux (WSL).
10061

101-
Alternatively, if you desire to use OpenCoarrays under Cygwin, please submit a
102-
feature request via our [Issues] page.
62+
Requirements:
63+
* WSL release 14936 or later, which provides Ubuntu 16.04.
64+
* Ubuntu 16.04 requirements:
65+
- Windows Insider Preview and
66+
- "Fast" updates option.
67+
68+
Steps:
69+
```
70+
do-release-upgrade
71+
./windows-install.sh
72+
```
73+
where the first command above updates the default Ubuntu 14.04 to 16.04 and the second command must
74+
be executed with the present working directory set to the top level of the OpenCoarrays source tree.
75+
76+
The `windows-install.sh` installation script uses Ubuntu's `apt-get` package manager to build
77+
[GCC] 5.4.0, [CMake], and [MPICH]. Windows users who desire a newer version of GCC are welcome to
78+
submit a request via our [Issues] page and suggest a method for updating. Previously attempted
79+
upgrade methods are described in the discussion thread starting with [commit comment 20539810].
10380

10481
### Linux ###
10582

@@ -108,15 +85,58 @@ Users of other Linux distributions who prefer not to build OpenCoarrays from sou
10885
access OpenCoarrays via the the Lubuntu Linux virtual machine from the
10986
[Sourcery Institute Store] after installing the version of [VirtualBox] that is suitable
11087
for the relevant Linux distribution. Alternatively, if you desire to install using other
111-
Linux package management software such as [yum] or [apt-get], please submit a feature
88+
Linux package management software such as [dnf] or [apt-get], please submit a feature
11289
request via our [Issues] page.
11390

91+
## Virtual machine
92+
93+
Users of macOS, Windows, or Linux have the option to use OpenCoarrays by installing the Lubuntu
94+
Linux virtual machine from the [Sourcery Institute Store]. The virtual machine boots inside
95+
the open-source [VirtualBox] virtualization package. In addition to containing [GCC], [MPICH],
96+
and OpenCoarrays, the virtual machine contains dozens of other open-source software packages
97+
that support modern Fortran software development. See the [download and installation instructions]
98+
for a partial list of the included packages.
99+
100+
### Installation Script###
101+
102+
Linux and macOS users may also install OpenCoarrays by downloading and uncompressing our
103+
[latest release] and running the installation script in the top-level source directory
104+
(see above for the corresponding [Windows] script):
105+
```
106+
tar xvzf OpenCoarrays-x.y.z.tar.gz
107+
cd OpenCoarrays-x.y.z
108+
./install.sh
109+
```
110+
where `x.y.z` should be replaced with the appropriate version numbers. For a scripted or unattended build, use
111+
`./install.sh -y` or equivalently `./install.sh --yes-to-all`, which will assume affirmative answers
112+
to all user prompts and will only prompt the user if an installation directory is chosen that requires
113+
`sudo` privelenges (by passing `-i` or equivalently `--install-prefix`).
114+
115+
Before installing OpenCoarrays, the above bash script will attempt to detect the presence of the
116+
default prerequisite packages: [GCC], [MPICH] , and [CMake]. For additional details, see the
117+
[Prerequisites] section. If any of the installation script cannot find the prerequisite packages,
118+
the [install.sh] script will attempt to download, build, and install any missing packages
119+
after asking permission to do so. The script has been tested on Linux and OS X. Please
120+
submit any related problems or questions to our [Issues] page.
121+
122+
A complete installation should result in the creation of the following directories
123+
inside the installation path (.e.g, inside `build` in the above example):
124+
125+
* `bin`: contains the compiler wrapper (`caf`) and program launcher (`cafun`).
126+
* `mod`: contains the `opencoarrays.mod` module file for use with non-OpenCoarrays-aware compilers
127+
* `lib`: contains the `libcaf_mpi.a` static library to which codes link for CAF support
128+
129+
114130
Advanced Installation from Source
115-
--------------------
131+
---------------------------------
116132

117133
### Prerequisites: ###
118134

119-
The prerequisites below and their dependencies are recommended for the broadest coverage of CAF features. If a prerequisite is missing or outdated, the [install.sh] script will prompt the user for permission to download, compile, and install it. Before doing so, [install.sh] will verify whether that prerequisite's prerequisites are present and will recursively traverse the dependency tree until reaching an acceptable prerequisite or reaching the end of a branch.
135+
The prerequisites below and their dependencies are recommended for the broadest coverage of CAF features.
136+
If a prerequisite is missing or outdated, the [install.sh] script will prompt the user for permission to
137+
download, compile, and install it. Before doing so, [install.sh] will verify whether that prerequisite's
138+
prerequisites are present and will recursively traverse the dependency tree until reaching an acceptable
139+
prerequisite or reaching the end of a branch.
120140

121141
```
122142
opencoarrays
@@ -141,7 +161,7 @@ __As of OpenCoarrays 1.7.6, passing `FC=mpi_fortran_wrapper` and
141161
`CC=mpi_c_wrapper` is *DEPRECATED*. Please pass `FC=/path/to/gfortran`
142162
and `CC=/path/to/gcc`. If you are experimenting with the source to
143163
source translation capabilities, then please point `FC` and `CC` to
144-
your Fortran and C compilers of choice. In the case of CRAY, or a
164+
your Fortran and C compilers of choice. In the case of Cray, or a
145165
compiler in which MPI is *built-in* to the compiler, you still pass
146166
the `FC` and `CC` as the Fortran and C compiler, even though MPI is
147167
built-in.__
@@ -221,25 +241,26 @@ transfer support, uncomment the `-DSTRIDED` flag inside the [make.inc] file.
221241
Obtaining GCC, MPICH, and CMake
222242
-------------------------------
223243

224-
[GFortran Binaries] 5 binary builds are available at <https://gcc.gnu.org/wiki/GFortranBinaries>. Also,
225-
the Lubuntu Linux virtual machine available for download in the [Sourcery Store] includes
226-
builds of GCC 4.9, 5.2, and 6.0.
244+
[GFortran Binaries] binary builds are available at <https://gcc.gnu.org/wiki/GFortranBinaries>.
227245

228246
To build all prerequisites from source, including the current development branch of GCC,
229247
you might first try the running the provided [install.sh] script as described above in
230-
the [Installation Script] section. Or try building each prerequisite from source as
231-
follows:
248+
the [Installation Script] section or try building each prerequisite from source inside
249+
a bash shell as follows:
232250

233251
```
234-
cd prerequisites
235-
CC=gcc FC=gfortran CXX=g++ ./build flex
236-
./build gcc
237-
CC=gcc FC=gfortran CXX=g++ ./build mpich
238-
./build cmake
252+
export gcc_install_path=/desired/installation/destination
253+
./install.sh --package gcc --install-prefix "${gcc_install_path}"
254+
./install.sh --package mpich \
255+
--with-fortran "${gcc_install_path}"/bin/gfortran \
256+
--with-c "${gcc_install_path}"/bin/gcc \
257+
--with-cxx "${gcc_install_path}"/bin/g++
258+
./install.sh --pacakge cmake \
259+
--with-fortran "${gcc_install_path}"/bin/gfortran \
260+
--with-c "${gcc_install_path}"/bin/gcc \
261+
--with-cxx "${gcc_install_path}"/bin/g++
239262
```
240263

241-
where the second line builds the flex package that is required for building gcc from source.
242-
243264
[Links]: #
244265

245266
[End-User Installation]: #end-user-installation
@@ -273,5 +294,8 @@ where the second line builds the flex package that is required for building gcc
273294
[Installing GCC]: https://gcc.gnu.org/install/
274295
[Arch Linux]: https://www.archlinux.org
275296
[aur package]: https://aur.archlinux.org/packages/opencoarrays/
276-
[Releases]: https://github.com/sourceryinstitute/opencoarrays/releases
297+
[latest release]: https://github.com/sourceryinstitute/opencoarrays/releases/latest
277298
[pdf img]: https://img.shields.io/badge/PDF-INSTALL.md-6C2DC7.svg?style=flat-square "Download as PDF"
299+
[commit comment 20539810]: https://github.com/sourceryinstitute/opencoarrays/commit/26e99919fe732576f7277a0e1b83f43cc7c9d749#commitcomment-20539810
300+
[Homebrew]: http://brew.sh
301+
[dnf]: https://github.com/rpm-software-management/dnf

0 commit comments

Comments
 (0)