impi-devel 2021.17.1__py2.py3-none-manylinux_2_28_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- impi_devel-2021.17.1.data/data/bin/mpicc +81 -0
- impi_devel-2021.17.1.data/data/bin/mpicxx +81 -0
- impi_devel-2021.17.1.data/data/bin/mpif77 +740 -0
- impi_devel-2021.17.1.data/data/bin/mpif90 +884 -0
- impi_devel-2021.17.1.data/data/bin/mpifc +81 -0
- impi_devel-2021.17.1.data/data/bin/mpigcc +683 -0
- impi_devel-2021.17.1.data/data/bin/mpigxx +687 -0
- impi_devel-2021.17.1.data/data/bin/mpiicc +42 -0
- impi_devel-2021.17.1.data/data/bin/mpiicpc +42 -0
- impi_devel-2021.17.1.data/data/bin/mpiicpx +573 -0
- impi_devel-2021.17.1.data/data/bin/mpiicx +582 -0
- impi_devel-2021.17.1.data/data/bin/mpiifort +46 -0
- impi_devel-2021.17.1.data/data/bin/mpiifx +738 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/10.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/11.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/12.4.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/13.3.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/14.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/15.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/7.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/8.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/gfortran/9.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/10.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/11.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/12.4.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/13.3.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/14.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/15.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/7.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/8.2.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/gfortran/9.1.0/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/ilp64/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_f08.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_callbacks.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_compile_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_link_constants.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_f08_types.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/mpi_sizeofs.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/pmpi_base.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi/pmpi_f08.mod +0 -0
- impi_devel-2021.17.1.data/data/include/mpi.h +4224 -0
- impi_devel-2021.17.1.data/data/include/mpi_abi.h +2057 -0
- impi_devel-2021.17.1.data/data/include/mpicxx.h +2796 -0
- impi_devel-2021.17.1.data/data/include/mpif.h +651 -0
- impi_devel-2021.17.1.data/data/include/mpio.h +767 -0
- impi_devel-2021.17.1.data/data/include/mpiof.h +113 -0
- impi_devel-2021.17.1.data/data/opt/mpi/bin/mpiptx +0 -0
- impi_devel-2021.17.1.data/data/share/doc/mpi/licensing/license.txt +72 -0
- impi_devel-2021.17.1.data/data/share/doc/mpi/licensing/third-party-programs.txt +1476 -0
- impi_devel-2021.17.1.dist-info/LICENSE.txt +25 -0
- impi_devel-2021.17.1.dist-info/METADATA +23 -0
- impi_devel-2021.17.1.dist-info/RECORD +133 -0
- impi_devel-2021.17.1.dist-info/WHEEL +6 -0
- impi_devel-2021.17.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,738 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#
|
|
3
|
+
# Copyright Intel Corporation.
|
|
4
|
+
#
|
|
5
|
+
# This software and the related documents are Intel copyrighted materials, and
|
|
6
|
+
# your use of them is governed by the express license under which they were
|
|
7
|
+
# provided to you (License). Unless the License provides otherwise, you may
|
|
8
|
+
# not use, modify, copy, publish, distribute, disclose or transmit this
|
|
9
|
+
# software or the related documents without Intel's prior written permission.
|
|
10
|
+
#
|
|
11
|
+
# This software and the related documents are provided as is, with no express
|
|
12
|
+
# or implied warranties, other than those that are expressly stated in the
|
|
13
|
+
# License.
|
|
14
|
+
#.
|
|
15
|
+
# (C) 2006 by Argonne National Laboratory.
|
|
16
|
+
#
|
|
17
|
+
# COPYRIGHT
|
|
18
|
+
#
|
|
19
|
+
# The following is a notice of limited availability of the code, and disclaimer
|
|
20
|
+
# which must be included in the prologue of the code and in all source listings
|
|
21
|
+
# of the code.
|
|
22
|
+
#
|
|
23
|
+
# Copyright Notice
|
|
24
|
+
# 1998--2020, Argonne National Laboratory
|
|
25
|
+
#
|
|
26
|
+
# Permission is hereby granted to use, reproduce, prepare derivative works, and
|
|
27
|
+
# to redistribute to others. This software was authored by:
|
|
28
|
+
#
|
|
29
|
+
# Mathematics and Computer Science Division
|
|
30
|
+
# Argonne National Laboratory, Argonne IL 60439
|
|
31
|
+
#
|
|
32
|
+
# (and)
|
|
33
|
+
#
|
|
34
|
+
# Department of Computer Science
|
|
35
|
+
# University of Illinois at Urbana-Champaign
|
|
36
|
+
#
|
|
37
|
+
#
|
|
38
|
+
# GOVERNMENT LICENSE
|
|
39
|
+
#
|
|
40
|
+
# Portions of this material resulted from work developed under a U.S.
|
|
41
|
+
# Government Contract and are subject to the following license: the Government
|
|
42
|
+
# is granted for itself and others acting on its behalf a paid-up, nonexclusive,
|
|
43
|
+
# irrevocable worldwide license in this computer software to reproduce, prepare
|
|
44
|
+
# derivative works, and perform publicly and display publicly.
|
|
45
|
+
#
|
|
46
|
+
# DISCLAIMER
|
|
47
|
+
#
|
|
48
|
+
# This computer code material was prepared, in part, as an account of work
|
|
49
|
+
# sponsored by an agency of the United States Government. Neither the United
|
|
50
|
+
# States, nor the University of Chicago, nor any of their employees, makes any
|
|
51
|
+
# warranty express or implied, or assumes any legal liability or responsibility
|
|
52
|
+
# for the accuracy, completeness, or usefulness of any information, apparatus,
|
|
53
|
+
# product, or process disclosed, or represents that its use would not infringe
|
|
54
|
+
# privately owned rights.
|
|
55
|
+
#
|
|
56
|
+
# EXTERNAL CONTRIBUTIONS
|
|
57
|
+
#
|
|
58
|
+
# Portions of this code have been contributed under the above license by:
|
|
59
|
+
#
|
|
60
|
+
# * Intel Corporation
|
|
61
|
+
# * Cray
|
|
62
|
+
# * IBM Corporation
|
|
63
|
+
# * Microsoft Corporation
|
|
64
|
+
# * Mellanox Technologies Ltd.
|
|
65
|
+
# * DataDirect Networks.
|
|
66
|
+
# * Oak Ridge National Laboratory
|
|
67
|
+
# * Sun Microsystems, Lustre group
|
|
68
|
+
# * Dolphin Interconnect Solutions Inc.
|
|
69
|
+
# * Institut Polytechnique de Bordeaux
|
|
70
|
+
#
|
|
71
|
+
# .
|
|
72
|
+
#
|
|
73
|
+
# mpif90
|
|
74
|
+
# Simple script to compile and/or link MPI programs.
|
|
75
|
+
# This script knows the default flags and libraries, and can handle
|
|
76
|
+
# alternative C compilers and the associated flags and libraries.
|
|
77
|
+
# The important terms are:
|
|
78
|
+
# includedir, libdir - Directories containing an *installed* mpich2
|
|
79
|
+
# prefix, execprefix - Often used to define includedir and libdir
|
|
80
|
+
# FC - Fortran 90 compiler
|
|
81
|
+
# WRAPPER_FCFLAGS - Any special flags needed to compile
|
|
82
|
+
# WRAPPER_LDFLAGS - Any special flags needed to link
|
|
83
|
+
# MPILIBNAME - Name of the MPI library
|
|
84
|
+
# MPI_OTHERLIBS - Other libraries needed in order to link
|
|
85
|
+
# FC_OTHER_LIBS - Yet more libraries, needed just with F90
|
|
86
|
+
#
|
|
87
|
+
# We assume that (a) the C compiler can both compile and link programs
|
|
88
|
+
#
|
|
89
|
+
# Handling of command-line options:
|
|
90
|
+
# This is a little tricky because some options may contain blanks.
|
|
91
|
+
#
|
|
92
|
+
# Special issues with shared libraries - todo
|
|
93
|
+
#
|
|
94
|
+
# --------------------------------------------------------------------------
|
|
95
|
+
|
|
96
|
+
# Set the default values of all variables.
|
|
97
|
+
#
|
|
98
|
+
# Directory locations: Fixed for any MPI implementation.
|
|
99
|
+
# Set from the directory arguments to configure (e.g., --prefix=/usr/local)
|
|
100
|
+
prefix=I_MPI_SUBSTITUTE_INSTALLDIR
|
|
101
|
+
# The environment variable I_MPI_ROOT may be used to override installation folder path
|
|
102
|
+
if [ -n "${I_MPI_ROOT}" ] ; then
|
|
103
|
+
prefix="${I_MPI_ROOT}";
|
|
104
|
+
fi
|
|
105
|
+
|
|
106
|
+
sysconfdir=${prefix}/etc
|
|
107
|
+
includedir=${prefix}/include
|
|
108
|
+
libdir=${prefix}/lib
|
|
109
|
+
if [ ! -f "${I_MPI_ROOT}/lib/mpi/debug/libmpi.so" ]; then
|
|
110
|
+
release_lib_dir="/release"
|
|
111
|
+
debug_lib_dir="/debug"
|
|
112
|
+
modincdir="${prefix}/include"
|
|
113
|
+
else
|
|
114
|
+
release_lib_dir=""
|
|
115
|
+
debug_lib_dir="/mpi/debug"
|
|
116
|
+
sysconfdir=${prefix}/opt/mpi/etc
|
|
117
|
+
modincdir="${prefix}/include/mpi"
|
|
118
|
+
fi
|
|
119
|
+
MPILIBDIR=${release_lib_dir}
|
|
120
|
+
|
|
121
|
+
# The environment variable I_MPI_COMPILER_CONFIG_DIR may be used to override
|
|
122
|
+
# folder where *.conf files are place
|
|
123
|
+
if [ -n "$I_MPI_COMPILER_CONFIG_DIR" ] ; then
|
|
124
|
+
sysconfdir=$I_MPI_COMPILER_CONFIG_DIR;
|
|
125
|
+
fi
|
|
126
|
+
#
|
|
127
|
+
# Default settings for compiler, flags, and libraries
|
|
128
|
+
# Determined by a combination of environment variables and tests within
|
|
129
|
+
# configure (e.g., determining whehter -lsocket is needee)
|
|
130
|
+
FC="ifx"
|
|
131
|
+
FCCPP=""
|
|
132
|
+
#
|
|
133
|
+
# Fortran 90 Compiler characteristics
|
|
134
|
+
FCINC="-I"
|
|
135
|
+
# f90modinc specifies how to add a directory to the search path for modules.
|
|
136
|
+
# Some compilers (Intel ifc version 5) do not support this concept, and
|
|
137
|
+
# instead need
|
|
138
|
+
# a specific list of files that contain module names and directories.
|
|
139
|
+
# The FCMODINCSPEC is a more general approach that uses <dir> and <file>
|
|
140
|
+
# for the directory and file respectively.
|
|
141
|
+
FCMODINC="-I"
|
|
142
|
+
FCMODINCSPEC=""
|
|
143
|
+
FCEXT="f90"
|
|
144
|
+
#
|
|
145
|
+
FCFLAGS=""
|
|
146
|
+
LDFLAGS="-ldl"
|
|
147
|
+
MPILIBNAME="mpi"
|
|
148
|
+
|
|
149
|
+
# MPIVERSION is the version of the Intel(R) MPI Library for which mpiifort is intended
|
|
150
|
+
MPIVERSION="2021.17"
|
|
151
|
+
#
|
|
152
|
+
#
|
|
153
|
+
# Internal variables
|
|
154
|
+
# Show is set to echo to cause the compilation command to be echoed instead
|
|
155
|
+
# of executed.
|
|
156
|
+
Show=
|
|
157
|
+
static_mpi=no
|
|
158
|
+
strip_debug_info=
|
|
159
|
+
handle_executable=
|
|
160
|
+
executable=a.out
|
|
161
|
+
ilp64=no
|
|
162
|
+
no_ilp64=
|
|
163
|
+
no_rpath=no
|
|
164
|
+
verbose=no
|
|
165
|
+
#
|
|
166
|
+
# End of initialization of variables
|
|
167
|
+
#---------------------------------------------------------------------
|
|
168
|
+
# Environment Variables.
|
|
169
|
+
# The environment variables I_MPI_F90, MPICH_F90 may be used to override the
|
|
170
|
+
# default choices. I_MPI_F90 has higher priority than MPICH_F90.
|
|
171
|
+
# In addition, if there is a file $sysconfdir/mpif90-$FCname.conf,
|
|
172
|
+
# where FCname is the name of the compiler with all spaces replaced by hyphens
|
|
173
|
+
# (e.g., "f90 -64" becomes "f90--64", that file is sources, allowing other
|
|
174
|
+
# changes to the compilation environment. See the variables used by the
|
|
175
|
+
# script (defined above)
|
|
176
|
+
|
|
177
|
+
if [ -n "$I_MPI_F90" ] ; then
|
|
178
|
+
FC="$I_MPI_F90"
|
|
179
|
+
FCname=$(echo $FC | sed 's/ /-/g')
|
|
180
|
+
if [ -s $sysconfdir/mpif90-$(basename $FCname).conf ] ; then
|
|
181
|
+
. $sysconfdir/mpif90-$(basename $FCname).conf
|
|
182
|
+
fi
|
|
183
|
+
else
|
|
184
|
+
if [ -n "$MPICH_F90" ] ; then
|
|
185
|
+
FC="$MPICH_F90"
|
|
186
|
+
FCname=$(echo $FC | sed 's/ /-/g')
|
|
187
|
+
if [ -s $sysconfdir/mpif90-$(basename $FCname).conf ] ; then
|
|
188
|
+
. $sysconfdir/mpif90-$(basename $FCname).conf
|
|
189
|
+
fi
|
|
190
|
+
fi
|
|
191
|
+
fi
|
|
192
|
+
if [ -n "$I_MPI_DEBUG_INFO_STRIP" ] ; then
|
|
193
|
+
for comp_val in "0" "off" "no" "disable"
|
|
194
|
+
do
|
|
195
|
+
if [ "$I_MPI_DEBUG_INFO_STRIP" = "$comp_val" ] ; then
|
|
196
|
+
strip_debug_info=no
|
|
197
|
+
break
|
|
198
|
+
fi
|
|
199
|
+
done
|
|
200
|
+
fi
|
|
201
|
+
# Allow a profiling option to be selected through an environment variable
|
|
202
|
+
if [ -n "$MPIF90_PROFILE" ] ; then
|
|
203
|
+
profConf=$MPIF90_PROFILE
|
|
204
|
+
fi
|
|
205
|
+
if [ -n "$I_MPI_F90_PROFILE" ] ; then
|
|
206
|
+
profConf=$I_MPI_F90_PROFILE
|
|
207
|
+
fi
|
|
208
|
+
if [ -n "$MPIFC_PROFILE" ] ; then
|
|
209
|
+
profConf=$MPIFC_PROFILE
|
|
210
|
+
fi
|
|
211
|
+
if [ -n "$I_MPI_FC_PROFILE" ] ; then
|
|
212
|
+
profConf=$I_MPI_FC_PROFILE
|
|
213
|
+
fi
|
|
214
|
+
|
|
215
|
+
# Override default mpi library
|
|
216
|
+
if [ -n "$I_MPI_LINK" ] ; then
|
|
217
|
+
mpilib_override=$I_MPI_LINK
|
|
218
|
+
fi
|
|
219
|
+
|
|
220
|
+
#
|
|
221
|
+
# ------------------------------------------------------------------------
|
|
222
|
+
# Argument processing.
|
|
223
|
+
#
|
|
224
|
+
# Look through the arguments for arguments that indicate compile only.
|
|
225
|
+
# If these are *not* found, add the library options
|
|
226
|
+
|
|
227
|
+
linking=yes
|
|
228
|
+
allargs=""
|
|
229
|
+
cppflags=""
|
|
230
|
+
prevarg=""
|
|
231
|
+
for arg in "$@" ; do
|
|
232
|
+
# Set addarg to no if this arg should be ignored by the C compiler
|
|
233
|
+
addarg=yes
|
|
234
|
+
qarg=$arg
|
|
235
|
+
if [ "x$handle_executable" = "xyes" ] ; then
|
|
236
|
+
executable=$arg
|
|
237
|
+
handle_executable=
|
|
238
|
+
fi
|
|
239
|
+
case "$arg" in
|
|
240
|
+
# ----------------------------------------------------------------
|
|
241
|
+
# Compiler options that affect whether we are linking or no
|
|
242
|
+
-c|-S|-E|-M|-MM)
|
|
243
|
+
# The compiler links by default
|
|
244
|
+
linking=no
|
|
245
|
+
;;
|
|
246
|
+
-o )
|
|
247
|
+
handle_executable=yes
|
|
248
|
+
addarg=yes
|
|
249
|
+
;;
|
|
250
|
+
# ----------------------------------------------------------------
|
|
251
|
+
# Options that control how we use mpif90 (e.g., -show,
|
|
252
|
+
# -f90=* -config=*
|
|
253
|
+
-echo)
|
|
254
|
+
addarg=no
|
|
255
|
+
set -x
|
|
256
|
+
;;
|
|
257
|
+
-f90=*)
|
|
258
|
+
FC=$(echo A$arg | sed -e 's/A-f90=//g')
|
|
259
|
+
if [ "$#" -eq "1" ] ; then
|
|
260
|
+
echo "Error: extra arguments required"
|
|
261
|
+
echo "usage: $(basename $0) -f90=<name> -v"
|
|
262
|
+
exit 1
|
|
263
|
+
fi
|
|
264
|
+
addarg=no
|
|
265
|
+
;;
|
|
266
|
+
-show)
|
|
267
|
+
addarg=no
|
|
268
|
+
Show=echo
|
|
269
|
+
;;
|
|
270
|
+
-show_env)
|
|
271
|
+
show_env=yes
|
|
272
|
+
;;
|
|
273
|
+
-config=*)
|
|
274
|
+
addarg=no
|
|
275
|
+
FCname=$(echo A$arg | sed -e 's/A-config=//g')
|
|
276
|
+
if [ -s "$sysconfdir/mpif90-$FCname.conf" ] ; then
|
|
277
|
+
. "$sysconfdir/mpif90-$FCname.conf"
|
|
278
|
+
else
|
|
279
|
+
echo "Configuration file mpif90-$FCname.conf not found"
|
|
280
|
+
fi
|
|
281
|
+
;;
|
|
282
|
+
-compile-info|-compile_info)
|
|
283
|
+
# -compile_info included for backward compatibility
|
|
284
|
+
Show=echo
|
|
285
|
+
addarg=no
|
|
286
|
+
;;
|
|
287
|
+
-link-info|-link_info)
|
|
288
|
+
# -link_info included for backward compatibility
|
|
289
|
+
Show=echo
|
|
290
|
+
addarg=no
|
|
291
|
+
;;
|
|
292
|
+
-v)
|
|
293
|
+
# Pass this argument to the compiler as well.
|
|
294
|
+
if [ "$#" -eq 1 ]; then
|
|
295
|
+
linking=no
|
|
296
|
+
fi
|
|
297
|
+
verbose=yes
|
|
298
|
+
;;
|
|
299
|
+
-V)
|
|
300
|
+
# Pass this argument to the compiler to query the compiler version.
|
|
301
|
+
echo "$(basename $0) for the Intel(R) MPI Library $MPIVERSION for Linux*"
|
|
302
|
+
echo "Copyright Intel Corporation."
|
|
303
|
+
if [ "$#" -eq 1 ]; then
|
|
304
|
+
linking=no
|
|
305
|
+
fi
|
|
306
|
+
;;
|
|
307
|
+
-profile=*)
|
|
308
|
+
# Pass the name of a profiling configuration. As
|
|
309
|
+
# a special case, lib<name>.so or lib<name>.la may be used
|
|
310
|
+
# if the library is in $libdir
|
|
311
|
+
profConf=$(echo A$arg | sed -e 's/A-profile=//g')
|
|
312
|
+
addarg=no
|
|
313
|
+
# Loading the profConf file is handled below
|
|
314
|
+
;;
|
|
315
|
+
-help)
|
|
316
|
+
# Print mini-help if started without parameters
|
|
317
|
+
echo "Simple script to compile and/or link MPI programs."
|
|
318
|
+
echo "Usage: $(basename $0) [options] <files>"
|
|
319
|
+
echo "----------------------------------------------------------------------------"
|
|
320
|
+
echo "The following options are supported:"
|
|
321
|
+
echo " -fc=<name> | -f90=<name>"
|
|
322
|
+
echo " specify a FORTRAN compiler name: i.e. -fc=ifort"
|
|
323
|
+
echo " -echo print the scripts during their execution"
|
|
324
|
+
echo " -show show command lines without real calling"
|
|
325
|
+
echo " -show_env show environment variables"
|
|
326
|
+
echo " -config=<name> specify a configuration file: i.e. -config=ifort for mpif90-ifort.conf file"
|
|
327
|
+
echo " -v print version info of $(basename $0) and its native compiler"
|
|
328
|
+
echo " -profile=<name> specify a profile configuration file (an MPI profiling"
|
|
329
|
+
echo " library): i.e. -profile=myprofile for the myprofile.cfg file."
|
|
330
|
+
echo " As a special case, lib<name>.so or lib<name>.a may be used"
|
|
331
|
+
echo " if the library is found"
|
|
332
|
+
echo " -check_mpi link against the Intel(R) Trace Collector (-profile=vtmc)."
|
|
333
|
+
echo " -static_mpi link the Intel(R) MPI Library statically"
|
|
334
|
+
echo " -mt_mpi link the thread safe version of the Intel(R) MPI Library"
|
|
335
|
+
echo " -ilp64 link the ILP64 support of the Intel(R) MPI Library"
|
|
336
|
+
echo " -no_ilp64 disable ILP64 support explicitly"
|
|
337
|
+
echo " -fast the same as -static_mpi + pass -fast option to a compiler."
|
|
338
|
+
echo " -t or -trace"
|
|
339
|
+
echo " link against the Intel(R) Trace Collector"
|
|
340
|
+
echo " -trace-imbalance"
|
|
341
|
+
echo " link against the Intel(R) Trace Collector imbalance library"
|
|
342
|
+
echo " (-profile=vtim)"
|
|
343
|
+
echo " -dynamic_log link against the Intel(R) Trace Collector dynamically"
|
|
344
|
+
echo " -static use static linkage method"
|
|
345
|
+
echo " -nostrip turn off the debug information stripping during static linking"
|
|
346
|
+
echo " -O enable optimization"
|
|
347
|
+
echo " -link_mpi=<name>"
|
|
348
|
+
echo " link against the specified version of the Intel(R) MPI Library"
|
|
349
|
+
echo " i.e -link_mpi=opt|opt_mt|dbg|dbg_mt"
|
|
350
|
+
echo " -norpath disable rpath for compiler wrapper of the Intel(R) MPI Library"
|
|
351
|
+
echo "All other options will be passed to the compiler without changing."
|
|
352
|
+
echo "----------------------------------------------------------------------------"
|
|
353
|
+
echo "The following environment variables are used:"
|
|
354
|
+
echo " I_MPI_ROOT the Intel(R) MPI Library installation directory path"
|
|
355
|
+
echo " I_MPI_F90 or MPICH_F90"
|
|
356
|
+
echo " the path/name of the underlying compiler to be used"
|
|
357
|
+
echo " I_MPI_FC_PROFILE or I_MPI_F90_PROFILE or MPIF90_PROFILE"
|
|
358
|
+
echo " the name of profile file (without extension)"
|
|
359
|
+
echo " I_MPI_COMPILER_CONFIG_DIR"
|
|
360
|
+
echo " the folder which contains configuration files *.conf"
|
|
361
|
+
echo " I_MPI_TRACE_PROFILE"
|
|
362
|
+
echo " specify a default profile for the -trace option"
|
|
363
|
+
echo " I_MPI_CHECK_PROFILE"
|
|
364
|
+
echo " specify a default profile for the -check_mpi option"
|
|
365
|
+
echo " I_MPI_LINK specify the version of the Intel(R) MPI Library"
|
|
366
|
+
echo " I_MPI_DEBUG_INFO_STRIP"
|
|
367
|
+
echo " turn on/off the debug information stripping during static linking"
|
|
368
|
+
echo "----------------------------------------------------------------------------"
|
|
369
|
+
exit 0
|
|
370
|
+
;;
|
|
371
|
+
-nolinkage)
|
|
372
|
+
# This internal option is used by wrapper driver scripts mpicc, mpicxx, mpifc when -v option is used.
|
|
373
|
+
linking=no
|
|
374
|
+
addarg=no
|
|
375
|
+
;;
|
|
376
|
+
-g)
|
|
377
|
+
MPILIBDIR=${release_lib_dir}
|
|
378
|
+
;;
|
|
379
|
+
-static_mpi)
|
|
380
|
+
static_mpi=yes
|
|
381
|
+
FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
|
|
382
|
+
addarg=no
|
|
383
|
+
;;
|
|
384
|
+
-static)
|
|
385
|
+
static_mpi=yes
|
|
386
|
+
FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
|
|
387
|
+
addarg=yes
|
|
388
|
+
;;
|
|
389
|
+
-mt_mpi)
|
|
390
|
+
addarg=no
|
|
391
|
+
;;
|
|
392
|
+
-ilp64)
|
|
393
|
+
ilp64=yes
|
|
394
|
+
addarg=no
|
|
395
|
+
;;
|
|
396
|
+
-i8)
|
|
397
|
+
if [ -z "$no_ilp64" ] ; then
|
|
398
|
+
ilp64=yes
|
|
399
|
+
fi
|
|
400
|
+
addarg=yes
|
|
401
|
+
;;
|
|
402
|
+
-integer-size)
|
|
403
|
+
addarg=yes
|
|
404
|
+
;;
|
|
405
|
+
32|64)
|
|
406
|
+
if [ "$prevarg" = "-integer-size" ]; then
|
|
407
|
+
if [ $arg -eq 64 ]; then
|
|
408
|
+
if [ -z "$no_ilp64" ] ; then
|
|
409
|
+
ilp64=yes
|
|
410
|
+
fi
|
|
411
|
+
fi
|
|
412
|
+
fi
|
|
413
|
+
addarg=yes
|
|
414
|
+
;;
|
|
415
|
+
-no_ilp64)
|
|
416
|
+
no_ilp64=yes
|
|
417
|
+
ilp64=no
|
|
418
|
+
addarg=no
|
|
419
|
+
;;
|
|
420
|
+
-check_mpi)
|
|
421
|
+
if [ -z "$profConf" ]; then
|
|
422
|
+
if [ -z "$I_MPI_CHECK_PROFILE" ]; then
|
|
423
|
+
profConf="vtmc"
|
|
424
|
+
else
|
|
425
|
+
profConf="$I_MPI_CHECK_PROFILE"
|
|
426
|
+
fi
|
|
427
|
+
else
|
|
428
|
+
echo "Warning: the -check_mpi option will be ignored because the profile was set."
|
|
429
|
+
fi
|
|
430
|
+
addarg=no
|
|
431
|
+
;;
|
|
432
|
+
-trace-imbalance)
|
|
433
|
+
if [ -z "$profConf" ]; then
|
|
434
|
+
profConf="vtim"
|
|
435
|
+
else
|
|
436
|
+
echo "Warning: the -trace-imbalance option will be ignored because the profile was set."
|
|
437
|
+
fi
|
|
438
|
+
addarg=no
|
|
439
|
+
;;
|
|
440
|
+
-t | -trace | -t=* | -trace=* )
|
|
441
|
+
if [ -z "$profConf" ]; then
|
|
442
|
+
if [ -z "$I_MPI_TRACE_PROFILE" ]; then
|
|
443
|
+
profConf="vt"
|
|
444
|
+
else
|
|
445
|
+
profConf="$I_MPI_TRACE_PROFILE"
|
|
446
|
+
fi
|
|
447
|
+
else
|
|
448
|
+
echo "Warning: the -trace option will be ignored because the profile was set."
|
|
449
|
+
fi
|
|
450
|
+
# Disable strip to prevent debug symbols into separate dbg file in case of static linking IMPI-1493
|
|
451
|
+
strip_debug_info=no
|
|
452
|
+
addarg=no
|
|
453
|
+
;;
|
|
454
|
+
-fast)
|
|
455
|
+
echo "Warning: the -fast option forces static linkage method for the Intel(R) MPI Library."
|
|
456
|
+
static_mpi=yes
|
|
457
|
+
FCFLAGS="$FCFLAGS -Xlinker --export-dynamic"
|
|
458
|
+
;;
|
|
459
|
+
-fc=*)
|
|
460
|
+
FC=$(echo A$arg | sed -e 's/A-fc=//g')
|
|
461
|
+
if [ "$#" -eq "1" ] ; then
|
|
462
|
+
echo "Error: extra arguments required"
|
|
463
|
+
echo "usage: $(basename $0) -fc=<name> -v"
|
|
464
|
+
exit 1
|
|
465
|
+
fi
|
|
466
|
+
addarg=no
|
|
467
|
+
;;
|
|
468
|
+
-link_mpi=* )
|
|
469
|
+
mpilib_override=$(echo A$arg | sed -e 's/A-link_mpi=//g')
|
|
470
|
+
addarg=no
|
|
471
|
+
;;
|
|
472
|
+
-nostrip )
|
|
473
|
+
strip_debug_info=no
|
|
474
|
+
addarg=no
|
|
475
|
+
;;
|
|
476
|
+
-norpath )
|
|
477
|
+
no_rpath=yes
|
|
478
|
+
addarg=no
|
|
479
|
+
;;
|
|
480
|
+
# Other arguments. We are careful to handle arguments with
|
|
481
|
+
# quotes (we try to quote all arguments in case they include
|
|
482
|
+
# any spaces)
|
|
483
|
+
*\"*)
|
|
484
|
+
qarg="'$arg'"
|
|
485
|
+
case $arg in
|
|
486
|
+
-D*)
|
|
487
|
+
cppflags="$cppflags $qarg"
|
|
488
|
+
;;
|
|
489
|
+
-I*)
|
|
490
|
+
cppflags="$cppflags $qarg"
|
|
491
|
+
;;
|
|
492
|
+
esac
|
|
493
|
+
;;
|
|
494
|
+
*\'*)
|
|
495
|
+
qarg=$(echo \"$arg\")
|
|
496
|
+
case $arg in
|
|
497
|
+
-D*)
|
|
498
|
+
cppflags="$cppflags $qarg"
|
|
499
|
+
;;
|
|
500
|
+
-I*)
|
|
501
|
+
cppflags="$cppflags $qarg"
|
|
502
|
+
;;
|
|
503
|
+
esac
|
|
504
|
+
;;
|
|
505
|
+
-D*)
|
|
506
|
+
qarg="'$arg'"
|
|
507
|
+
cppflags="$cppflags $qarg"
|
|
508
|
+
;;
|
|
509
|
+
-I*)
|
|
510
|
+
qarg="'$arg'"
|
|
511
|
+
cppflags="$cppflags $qarg"
|
|
512
|
+
;;
|
|
513
|
+
# The following are special args used to handle .F files when the
|
|
514
|
+
# Fortran compiler itself does not handle these options
|
|
515
|
+
*.F|*.F90|.fpp|.FPP)
|
|
516
|
+
# If FCCPP is not empty, then we need to do the following:
|
|
517
|
+
# If any input files have the .F or .F90 extension, then
|
|
518
|
+
# If FCCPP = false, then
|
|
519
|
+
# generate an error message and exit
|
|
520
|
+
# Use FCCPP to convert the file from .F to .f, using
|
|
521
|
+
# $TMPDIR/f$$-$count.f as the output file name
|
|
522
|
+
# Replace the input file with this name in the args
|
|
523
|
+
# This is needed only for very broken systems
|
|
524
|
+
|
|
525
|
+
if [ -n "$FCCPP" ] ; then
|
|
526
|
+
if [ "$FCCPP" = "false" ] ; then
|
|
527
|
+
echo "This Fortran compiler does not accept .F or .F90 files"
|
|
528
|
+
exit 1
|
|
529
|
+
fi
|
|
530
|
+
addarg=no
|
|
531
|
+
# Remove and directory names and extension
|
|
532
|
+
ext=$(expr "$arg" : '.*\(\..*\)')
|
|
533
|
+
bfile=$(basename $arg $ext)
|
|
534
|
+
#
|
|
535
|
+
TMPDIR=${TMPDIR:-/tmp}
|
|
536
|
+
# Make sure that we use a valid extension for the temp file.
|
|
537
|
+
tmpfile=$TMPDIR/f$$-$bfile.$FCEXT
|
|
538
|
+
if $FCCPP $cppflags $arg > $tmpfile ; then
|
|
539
|
+
# Add this file to the commandline list
|
|
540
|
+
count=$((count + 1))
|
|
541
|
+
allargs[${#allargs}]="$tmpfile"
|
|
542
|
+
rmfiles="$rmfiles $tmpfile"
|
|
543
|
+
else
|
|
544
|
+
echo "Aborting compilation because of failure in preprocessing step"
|
|
545
|
+
echo "for file $arg ."
|
|
546
|
+
exit 1
|
|
547
|
+
fi
|
|
548
|
+
fi
|
|
549
|
+
# Otherwise, just accept the argument
|
|
550
|
+
;;
|
|
551
|
+
*)
|
|
552
|
+
qarg="'$arg'"
|
|
553
|
+
;;
|
|
554
|
+
# - end of special handling for .F files
|
|
555
|
+
|
|
556
|
+
esac
|
|
557
|
+
if [ $addarg = yes ] ; then
|
|
558
|
+
allargs="$allargs $qarg"
|
|
559
|
+
fi
|
|
560
|
+
prevarg="$arg"
|
|
561
|
+
done
|
|
562
|
+
|
|
563
|
+
if [ $# -eq 0 ] ; then
|
|
564
|
+
echo "Error: Command line argument is needed!"
|
|
565
|
+
"$0" -help
|
|
566
|
+
exit 1
|
|
567
|
+
fi
|
|
568
|
+
|
|
569
|
+
if [ -n "$mpilib_override" ] ; then
|
|
570
|
+
case "$mpilib_override" in
|
|
571
|
+
opt )
|
|
572
|
+
MPILIBDIR=${release_lib_dir}
|
|
573
|
+
;;
|
|
574
|
+
opt_mt )
|
|
575
|
+
MPILIBDIR=${release_lib_dir}
|
|
576
|
+
;;
|
|
577
|
+
dbg )
|
|
578
|
+
MPILIBDIR=${debug_lib_dir}
|
|
579
|
+
;;
|
|
580
|
+
dbg_mt )
|
|
581
|
+
MPILIBDIR=${debug_lib_dir}
|
|
582
|
+
;;
|
|
583
|
+
* )
|
|
584
|
+
echo "Warning: incorrect library version specified. Automatically selected library will be used."
|
|
585
|
+
;;
|
|
586
|
+
esac
|
|
587
|
+
fi
|
|
588
|
+
# -----------------------------------------------------------------------
|
|
589
|
+
|
|
590
|
+
if [ "$static_mpi" = yes ] ; then
|
|
591
|
+
mpilibs="${libdir}/libmpifort.a ${libdir}${MPILIBDIR}/lib${MPILIBNAME}.a"
|
|
592
|
+
I_MPI_OTHERLIBS=""
|
|
593
|
+
MPI_OTHERLIBS=" -lrt -lpthread "
|
|
594
|
+
if [ "$ilp64" = yes ]; then
|
|
595
|
+
mpilibs="${libdir}${MPILIBDIR}/libmpi_ilp64.a $mpilibs"
|
|
596
|
+
fi
|
|
597
|
+
if [ "x$strip_debug_info" = "x" ] ; then
|
|
598
|
+
strip_debug_info=yes
|
|
599
|
+
fi
|
|
600
|
+
else
|
|
601
|
+
mpilibs="-lmpifort -l$MPILIBNAME"
|
|
602
|
+
I_MPI_OTHERLIBS=""
|
|
603
|
+
MPI_OTHERLIBS=" -lrt -lpthread "
|
|
604
|
+
if [ "$ilp64" = yes ]; then
|
|
605
|
+
mpilibs="-lmpi_ilp64 $mpilibs"
|
|
606
|
+
fi
|
|
607
|
+
fi
|
|
608
|
+
# Derived variables. These are assembled from variables set from the
|
|
609
|
+
# default, environment, configuration file (if any) and command-line
|
|
610
|
+
# options (if any)
|
|
611
|
+
|
|
612
|
+
#
|
|
613
|
+
# The library lib${MPILIBNAME}f90 contains the f90-specific features,
|
|
614
|
+
# such as the module objects and the routines defined by them
|
|
615
|
+
# (MPI_SIZEOF is handled in lib${MPILIBNAME)f90, for example).
|
|
616
|
+
|
|
617
|
+
#
|
|
618
|
+
# Handle the case of a profile switch
|
|
619
|
+
if [ -n "$profConf" ] ; then
|
|
620
|
+
profConffile=
|
|
621
|
+
if [ -s "$libdir/lib$profConf.a" -o -s "$libdir/lib$profConf.so" ] ; then
|
|
622
|
+
mpilibs="-l$profConf $mpilibs"
|
|
623
|
+
elif [ -s "$sysconfdir/$profConf.conf" ] ; then
|
|
624
|
+
profConffile="$sysconfdir/$profConf.conf"
|
|
625
|
+
elif [ -s "$profConf.conf" ] ; then
|
|
626
|
+
profConffile="$profConf.conf"
|
|
627
|
+
else
|
|
628
|
+
echo "Profiling configuration file $profConf.conf not found in $sysconfdir"
|
|
629
|
+
fi
|
|
630
|
+
if [ -n "$profConffile" -a -s "$profConffile" ] ; then
|
|
631
|
+
. $profConffile
|
|
632
|
+
if [ -n "$PROFILE_INCPATHS" ] ; then
|
|
633
|
+
FCFLAGS="$PROFILE_INCPATHS $FCFLAGS"
|
|
634
|
+
fi
|
|
635
|
+
if [ -n "$PROFILE_PRELIB" ] ; then
|
|
636
|
+
mpilibs="$PROFILE_PRELIB $mpilibs"
|
|
637
|
+
fi
|
|
638
|
+
if [ -n "$PROFILE_POSTLIB" ] ; then
|
|
639
|
+
mpilibs="$mpilibs $PROFILE_POSTLIB"
|
|
640
|
+
fi
|
|
641
|
+
fi
|
|
642
|
+
fi
|
|
643
|
+
|
|
644
|
+
# Construct the line to add the include directory (not all compilers
|
|
645
|
+
# use -I, unfortunately)
|
|
646
|
+
if [ -z "${FCINC}" ] ; then
|
|
647
|
+
# If there is no path, add a link to the mpif.h file.
|
|
648
|
+
# There *must* be a way to provide the path the any modules (there
|
|
649
|
+
# may be too many to link)
|
|
650
|
+
if [ ! -r mpif.h ] ; then
|
|
651
|
+
trap "$Show rm -f mpif.h" 0
|
|
652
|
+
# This should really be the (related) f77includedir (see mpif77).
|
|
653
|
+
$Show ln -s ${includedir}/mpif.h mpif.h
|
|
654
|
+
# Remember to remove this file
|
|
655
|
+
rmfiles="$rmfiles mpif.h"
|
|
656
|
+
fi
|
|
657
|
+
FCINCDIRS=
|
|
658
|
+
else
|
|
659
|
+
# Normally, FCINC is just -I, but some compilers have used different
|
|
660
|
+
# command line arguments
|
|
661
|
+
FCINCDIRS="${FCINC}\"${includedir}\" ${FCINC}\"${modincdir}\""
|
|
662
|
+
fi
|
|
663
|
+
|
|
664
|
+
# Handle the specification of the directory containing the modules
|
|
665
|
+
# For now, these are in the includedir (no choice argument supported)
|
|
666
|
+
if [ "$ilp64" = yes ] ; then
|
|
667
|
+
moduledir="$modincdir/ilp64"
|
|
668
|
+
else
|
|
669
|
+
moduledir="$modincdir"
|
|
670
|
+
fi
|
|
671
|
+
modulelib=${MPILIBNAME}f90
|
|
672
|
+
if [ -n "$FCMODINCSPEC" ] ; then
|
|
673
|
+
newarg=`echo A"$FCMODINCSPEC" | \
|
|
674
|
+
sed -e 's/^A//' -e 's%<dir>%'"$moduledir%g" -e 's/<file>/mpi/g'`
|
|
675
|
+
FCMODDIRS="$newarg"
|
|
676
|
+
FCMODLIBS="-l$modulelib"
|
|
677
|
+
elif [ -n "$FCMODINC" ] ; then
|
|
678
|
+
FCMODDIRS="${FCMODINC}\"${moduledir}\""
|
|
679
|
+
FCMODLIBS="-l$modulelib"
|
|
680
|
+
fi
|
|
681
|
+
|
|
682
|
+
#
|
|
683
|
+
# A temporary statement to invoke the compiler
|
|
684
|
+
# Place the -L before any args incase there are any mpi libraries in there.
|
|
685
|
+
# Eventually, we'll want to move this after any non-MPI implementation
|
|
686
|
+
# libraries
|
|
687
|
+
|
|
688
|
+
if [ "${show_env}" = "yes" ]; then
|
|
689
|
+
env | more
|
|
690
|
+
exit 0
|
|
691
|
+
fi
|
|
692
|
+
|
|
693
|
+
if [ "$no_rpath" = "yes" ]; then
|
|
694
|
+
rpath_opt="-Xlinker --enable-new-dtags"
|
|
695
|
+
else
|
|
696
|
+
rpath_opt="-Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker \"${libdir}${MPILIBDIR}\" -Xlinker -rpath -Xlinker \"${libdir}\""
|
|
697
|
+
fi
|
|
698
|
+
if [ "$linking" = yes ] ; then
|
|
699
|
+
cmd_line="$FC $FCFLAGS $allargs $FCMODDIRS $FCINCDIRS -L\"${libdir}${MPILIBDIR}\" -L\"${libdir}\" $rpath_opt $mpilibs $I_MPI_OTHERLIBS $LDFLAGS $MPI_OTHERLIBS"
|
|
700
|
+
if [ "$Show" = echo ] ; then
|
|
701
|
+
echo $cmd_line
|
|
702
|
+
else
|
|
703
|
+
if [ "$verbose" = yes ]; then
|
|
704
|
+
echo mpiifx generated: $cmd_line
|
|
705
|
+
fi
|
|
706
|
+
eval `echo $cmd_line`
|
|
707
|
+
fi
|
|
708
|
+
rc=$?
|
|
709
|
+
if [ $rc -eq 0 -a "x$strip_debug_info" = "xyes" ] ; then
|
|
710
|
+
$Show objcopy --only-keep-debug ${executable} ${executable}.dbg
|
|
711
|
+
$Show objcopy --strip-debug ${executable}
|
|
712
|
+
$Show objcopy --add-gnu-debuglink=${executable}.dbg ${executable}
|
|
713
|
+
fi
|
|
714
|
+
else
|
|
715
|
+
cmd_line="$FC $FCFLAGS $allargs $FCMODDIRS $FCINCDIRS"
|
|
716
|
+
if [ "$Show" = echo ] ; then
|
|
717
|
+
echo $cmd_line
|
|
718
|
+
else
|
|
719
|
+
if [ "$verbose" = yes ]; then
|
|
720
|
+
echo mpiifx generated: $cmd_line
|
|
721
|
+
fi
|
|
722
|
+
eval `echo $cmd_line`
|
|
723
|
+
fi
|
|
724
|
+
rc=$?
|
|
725
|
+
fi
|
|
726
|
+
if [ -n "$rmfiles" ] ; then
|
|
727
|
+
for file in $rmfiles ; do
|
|
728
|
+
objfile=`basename $file .f`
|
|
729
|
+
if [ -s "${objfile}.o" ] ; then
|
|
730
|
+
# Rename
|
|
731
|
+
destfile=`echo $objfile | sed -e "s/.*$$-//"`
|
|
732
|
+
mv -f ${objfile}.o ${destfile}.o
|
|
733
|
+
fi
|
|
734
|
+
rm -f $file
|
|
735
|
+
done
|
|
736
|
+
rm -f $rmfiles
|
|
737
|
+
fi
|
|
738
|
+
exit $rc
|