File: INSTALL.md

package info (click to toggle)
hypre 3.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 58,124 kB
  • sloc: ansic: 408,221; cpp: 62,971; sh: 12,091; fortran: 9,433; makefile: 3,327; perl: 2,994; awk: 147; python: 126
file content (113 lines) | stat: -rw-r--r-- 4,915 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!--
Copyright (c) 1998 Lawrence Livermore National Security, LLC and other
HYPRE Project Developers. See the top-level COPYRIGHT file for details.

SPDX-License-Identifier: (Apache-2.0 OR MIT)
-->

HYPRE Installation Information for Unix-based systems
=====================================================

The simplest way to build HYPRE is:

1. From within the `src` directory, type `configure` to configure the package
   for your system.

   While configure runs, it prints messages indicating which features it is
   checking for.  Two output files are created: config.status and config.log.
   The config.status file can be run to recreate the current configuration, and
   config.log is useful for debugging configure.  Upon successful completion,
   the file `config/Makefile.config` is created from its template
   `Makefile.config.in` and HYPRE is ready to be made.

2. Type `make install` to compile and install HYPRE.

3. You can remove the program binaries and object files from the source code by
   typing `make clean`.  To remove additional files created by configure, type
   `make distclean`.

Optional Features:

Configure has many options to allow the user to override and refine the defaults
of any system.  To display the available options, type `configure --help`.

The make step in building HYPRE is where the compiling, loading and creation of
libraries occurs.  Make has several options called targets, which can be listed
by running `make help`.

When building HYPRE without the install target, the libraries and include files
are copied into the directories, `src/hypre/lib` and `src/hypre/include`.

When building with the install target, the libraries and files are copied into
the directories specified by the configure option, --prefix=/usr/apps.  If none
were specified, the default directories are used, hypre/lib and hypre/include.


HYPRE Installation Information using CMake
==========================================

CMake is another way to build HYPRE that is particularly useful for building the
code on Windows machines.  CMake provides a uniform interface for setting
configuration options on different platforms.  It does not actually build the
code, but generates input for other "native" build systems such as Make (Unix
platforms) or Visual Studio (Windows).  Here are the basic steps:

1. First, ensure that CMake version 3.21.0 or later is installed on the system.

2. To build the library, run CMake on the top-level HYPRE source directory to
   generate files appropriate for the native build system.  To prevent writing
   over the Makefiles in HYPRE's configure/make system above, only out-of-source
   builds are currently allowed with CMake. The directory `build` is provided in
   the release for convenience, but alternative build directories may be created
   by the user:

   - Unix: From the `build` directory, type `cmake ../src`.

   - Windows: Set the source and build directories to `src` and `build`, then
     click on 'Configure' following by 'Generate'.

3. To complete the build of the library, compile with the native build system:

   - Unix: From the `build` directory, type `make install`.

   - Windows Visual Studio: Open the 'hypre' VS solution file generated by CMake
     and build the 'ALL_BUILD' target, then the 'INSTALL' target.

Optional Features:

Various configuration options can be set from within CMake.  Change these as
appropriate, then reconfigure/generate:

- Unix: From the `build` directory, type `ccmake ../src`, change options, then
  type `c` then `q`.

- Windows VS: Change options, then click on 'Configure' then 'Generate'.

Complete Build Instructions
===========================

For the latest, complete instructions (Autotools, CMake, GPU/Spack options, build
targets, etc.), please refer to the User Manual on Read the Docs:

- [Documentation home](https://hypre.readthedocs.io/en/latest)
- [General Information -- Building the library (Autotools and CMake)](https://hypre.readthedocs.io/en/latest/ch-misc.html#building-the-library)
- [Build System Options](https://hypre.readthedocs.io/en/latest/ch-misc.html#build-system-options)
- [GPU Build Options](https://hypre.readthedocs.io/en/latest/ch-misc.html#gpu-build-options)

ABI Compatibility Policy
========================

HYPRE versions follow the X.Y.Z scheme.

- Patch releases (Z) are intended to be ABI-compatible within the same major and minor version (X.Y).
- Major (X) and minor (Y) releases may introduce ABI changes and should not be assumed compatible.

Examples:
- Likely compatible: 2.22.0 ↔ 2.22.1 (same X.Y, patch-level updates).
- Not necessarily compatible:
  - 2.31.z ↔ 2.32.z (minor version differs)
  - 2.y.z  ↔ 3.y.z (major version differs)

Recommendations:
- If distributing binaries or building plugins, pin to an exact X.Y and allow any Z.
- When upgrading across X or Y, plan to rebuild and revalidate dependent binaries.