#if 0 # NOTE: The comments below cannot use tokens that will be intepreted # as C++ preprocessor directives. So when you read "if 0", the reader # must mentally prepend a # to the "if" token. # # This file is carefully constructed so that it can be a) run as a # Bourne shell script and b) compiled as a C/C++ header file. # # Specifically, this file is used in the following ways: # # 1. This file is executed as a Bourne shell script to assign version # numbers to shell variables in config/opal_get_version.* and # configure.ac. # 2. On case-insensitive filesystems, this file can get included by # C++ STL header files when compiling the MPI C++ bindings (i.e., # when they "include ", that will end up including this # file). # # Case #2 was discovered in # https://github.com/open-mpi/ompi/issues/9122. The obvious fix for # this issue would be to rename VERSION (e.g., VERSION.sh). However, # since the MPI C++ bindings were removed in Open MPI v5.0.0, this # issue issue only affects legacy Open MPI release series (namely: # v4.1.x and v4.0.x). As such, do something simple / safe to fix it: # protect the main body of this file with an "if" preprocessor # directive. # # 1. For case 1, C++ preprocessor directives become Bourne shell comments. # 2. For case 2, we "if 0" the main body of the file and in the "else" # block, "include_next" to get the "real" file. # # This is a bit of a gross (or clever, depending on your viewpoint) # hack, but it makes both cases work with minimal changes to the # legacy v4.0.x and v4.1.x release series. ############################################################################ # Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. # Copyright (c) 2008-2021 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2011 NVIDIA Corporation. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. # Copyright (c) 2017 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2019 Triad National Security, LLC. All rights # reserved. # Copyright (c) 2018-2020 IBM Corporation. All rights reserved. # Copyright (c) 2018 Research Organization for Information Science # and Technology (RIST). All rights reserved. # Copyright (c) 2020-2021 Amazon.com, Inc. or its affiliates. All Rights # reserved. # This is the VERSION file for Open MPI, describing the precise # version of Open MPI in this distribution. The various components of # the version number below are combined to form a single version # number string. # major, minor, and release are generally combined in the form # ... major=4 minor=1 release=4 # greek is generally used for alpha or beta release tags. If it is # non-empty, it will be appended to the version number. It does not # have to be numeric. Common examples include: a1 (alpha release 1), # b1 (beta release 1), rc2 (release candidate 2). The only # requirement is that it must be entirely printable ASCII characters # and have no white space. greek= # If repo_rev is empty, then the repository version number will be # obtained during "make dist" via the "git describe --tags --always" # command, or with the date (if "git describe" fails) in the form of # "date". repo_rev=v4.1.4 # If tarball_version is not empty, it is used as the version string in # the tarball filename, regardless of all other versions listed in # this file. For example, if tarball_version is empty, the tarball # filename will be of the form # openmpi-...tar.*. However, if # tarball_version is not empty, the tarball filename will be of the # form openmpi-.tar.*. tarball_version= # The date when this release was created date="May 26, 2022" # The shared library version of each of Open MPI's public libraries. # These versions are maintained in accordance with the "Library # Interface Versions" chapter from the GNU Libtool documentation. The # first Open MPI release to programatically specify these versions was # v1.3.4 (note that Libtool defaulted all prior releases to 0:0:0). # All changes in these version numbers are dictated by the Open MPI # release managers (not individual developers). Notes: # 1. Since these version numbers are associated with *releases*, the # version numbers maintained on the Open MPI GIT main (and developer # branches) is always 0:0:0 for all libraries. # 2. The version number of libmpi refers to the public MPI interfaces. # It does not refer to any internal interfaces. # 3. Similar to libmpi, the version numbers of the Fortran libraries # refer to the public MPI interfaces. For example, that there have # been typo fixes in the parameter types to mpif.h Fortran library # functions over time; these technically did not change the interface # because Fortran 77 does not link by parameter type. # 4. Similar to libmpi, libmpi_cxx's version number refers to the # public MPI interfaces. Note that this version number may or may not # be affected by changes to inlined functions in OMPI's # header-file-based C++ bindings implementation. # 5. The ORTE and OPAL libraries will change versions when their # public interfaces change (as relative to the layer(s) above them). # None of the ORTE and OPAL interfaces are public to MPI applications, # but they are "public" within the OMPI code base and select 3rd party # software packages. # Version numbers are described in the Libtool current:revision:age # format. libmpi_so_version=70:4:30 libmpi_cxx_so_version=70:1:30 libmpi_mpifh_so_version=70:0:30 libmpi_usempi_tkr_so_version=70:0:30 libmpi_usempi_ignore_tkr_so_version=70:0:30 libmpi_usempif08_so_version=70:0:30 libopen_rte_so_version=70:2:30 libopen_pal_so_version=70:2:30 libmpi_java_so_version=70:0:30 liboshmem_so_version=70:2:30 libompitrace_so_version=70:1:30 # "Common" components install standalone libraries that are run-time # linked by one or more components. So they need to be versioned as # well. Yuck; this somewhat breaks the # components-don't-affect-the-build-system abstraction. # OMPI layer libmca_ompi_common_ompio_so_version=70:4:29 libmca_ompi_common_monitoring_so_version=70:0:20 # ORTE layer libmca_orte_common_alps_so_version=70:0:30 # OPAL layer libmca_opal_common_cuda_so_version=70:0:30 libmca_opal_common_ofi_so_version=10:2:0 libmca_opal_common_sm_so_version=70:0:30 libmca_opal_common_ucx_so_version=70:2:30 libmca_opal_common_ugni_so_version=70:0:30 libmca_opal_common_verbs_so_version=70:0:30 #else #include_next #endif