Compare commits
15 Commits
f/env-loca
...
features/o
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a542b0cfc0 | ||
|
|
0d02262bbc | ||
|
|
9beac03142 | ||
|
|
9551312e9d | ||
|
|
b282b66579 | ||
|
|
226a9b0e7f | ||
|
|
7aeee3339c | ||
|
|
38512d18e9 | ||
|
|
e75a07d155 | ||
|
|
9b3c4e0696 | ||
|
|
54f783e656 | ||
|
|
34441c9eaa | ||
|
|
932a9dfc57 | ||
|
|
3430c55b0a | ||
|
|
1a69d436e4 |
@@ -346,7 +346,7 @@ the Environment and then install the concretized specs.
|
||||
(see :ref:`build-jobs`). To speed up environment builds further, independent
|
||||
packages can be installed in parallel by launching more Spack instances. For
|
||||
example, the following will build at most four packages in parallel using
|
||||
three background jobs:
|
||||
three background jobs:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -394,7 +394,7 @@ version (and other constraints) passed as the spec argument to the
|
||||
|
||||
For packages with ``git`` attributes, git branches, tags, and commits can
|
||||
also be used as valid concrete versions (see :ref:`version-specifier`).
|
||||
This means that for a package ``foo``, ``spack develop foo@git.main`` will clone
|
||||
This means that for a package ``foo``, ``spack develop foo@git.main`` will clone
|
||||
the ``main`` branch of the package, and ``spack install`` will install from
|
||||
that git clone if ``foo`` is in the environment.
|
||||
Further development on ``foo`` can be tested by reinstalling the environment,
|
||||
@@ -630,6 +630,35 @@ The following two Environment manifests are identical:
|
||||
Spec matrices can be used to install swaths of software across various
|
||||
toolchains.
|
||||
|
||||
Note that ordering of matrices is important. For example, the
|
||||
following environments are identical:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
spack:
|
||||
specs:
|
||||
- matrix:
|
||||
- [hdf5@1.10.2+mpi]
|
||||
- [^mpich, ^openmpi]
|
||||
- ['%gcc']
|
||||
- matrix:
|
||||
- [hdf5@1.12.1+mpi]
|
||||
- ['%gcc']
|
||||
- [^mpich, ^openmpi]
|
||||
|
||||
spack:
|
||||
specs:
|
||||
- hdf5@1.10.2+mpi ^mpich%gcc
|
||||
- hdf5@1.10.2+mpi ^openmpi%gcc
|
||||
- hdf5@1.12.1+mpi %gcc ^mpich
|
||||
- hdf5@1.12.1+mpi %gcc ^openmpi
|
||||
|
||||
Notice how the first matrix applies the compiler constraints to the
|
||||
mpi dependencies, whereas the second matrix applies the compiler
|
||||
constraints directly to the root hdf5 node. This gives users the full
|
||||
breadth of expressiveness of the spec syntax through the matrix
|
||||
interface.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
Spec List References
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -1120,19 +1149,19 @@ index once every package is pushed. Note how this target uses the generated
|
||||
|
||||
SPACK ?= spack
|
||||
BUILDCACHE_DIR = $(CURDIR)/tarballs
|
||||
|
||||
|
||||
.PHONY: all
|
||||
|
||||
|
||||
all: push
|
||||
|
||||
|
||||
include env.mk
|
||||
|
||||
|
||||
example/push/%: example/install/%
|
||||
@mkdir -p $(dir $@)
|
||||
$(info About to push $(SPEC) to a buildcache)
|
||||
$(SPACK) -e . buildcache create --allow-root --only=package --directory $(BUILDCACHE_DIR) /$(HASH)
|
||||
@touch $@
|
||||
|
||||
|
||||
push: $(addprefix example/push/,$(example/SPACK_PACKAGE_IDS))
|
||||
$(info Updating the buildcache index)
|
||||
$(SPACK) -e . buildcache update-index --directory $(BUILDCACHE_DIR)
|
||||
|
||||
@@ -89,6 +89,11 @@ def cxx14_flag(self):
|
||||
return "-std=c++14"
|
||||
return "-h std=c++14"
|
||||
|
||||
@property
|
||||
def cxx17_flag(self):
|
||||
if self.is_clang_based:
|
||||
return "-std=c++17"
|
||||
|
||||
@property
|
||||
def c99_flag(self):
|
||||
if self.is_clang_based:
|
||||
|
||||
@@ -2265,15 +2265,12 @@ def _concretize_from_constraints(spec_constraints, tests=False):
|
||||
m += "concretization target. all specs must have a single name "
|
||||
m += "constraint for concretization."
|
||||
raise InvalidSpecConstraintError(m)
|
||||
spec_constraints.remove(root_spec[0])
|
||||
|
||||
invalid_constraints = []
|
||||
while True:
|
||||
# Attach all anonymous constraints to one named spec
|
||||
s = root_spec[0].copy()
|
||||
for c in spec_constraints:
|
||||
if c not in invalid_constraints:
|
||||
s.constrain(c)
|
||||
# Combine constraints into a single spec
|
||||
s = Spec(" ".join([str(c) for c in spec_constraints if c not in invalid_constraints]))
|
||||
|
||||
try:
|
||||
return s.concretized(tests=tests)
|
||||
except spack.spec.InvalidDependencyError as e:
|
||||
|
||||
@@ -51,7 +51,9 @@ def specs_as_constraints(self):
|
||||
constraints = []
|
||||
for item in self.specs_as_yaml_list:
|
||||
if isinstance(item, dict): # matrix of specs
|
||||
constraints.extend(_expand_matrix_constraints(item))
|
||||
expanded = _expand_matrix_constraints(item)
|
||||
for e in expanded:
|
||||
constraints.append([Spec(x) for x in e])
|
||||
else: # individual spec
|
||||
constraints.append([Spec(item)])
|
||||
self._constraints = constraints
|
||||
@@ -62,13 +64,11 @@ def specs_as_constraints(self):
|
||||
def specs(self):
|
||||
if self._specs is None:
|
||||
specs = []
|
||||
# This could be slightly faster done directly from yaml_list,
|
||||
# but this way is easier to maintain.
|
||||
for constraint_list in self.specs_as_constraints:
|
||||
spec = constraint_list[0].copy()
|
||||
for const in constraint_list[1:]:
|
||||
spec.constrain(const)
|
||||
specs.append(spec)
|
||||
for item in self.specs_as_yaml_list:
|
||||
if isinstance(item, dict): # matrix of specs
|
||||
specs.extend([Spec(" ".join(x)) for x in _expand_matrix_constraints(item)])
|
||||
else: # individual spec
|
||||
specs.append(Spec(item))
|
||||
self._specs = specs
|
||||
|
||||
return self._specs
|
||||
@@ -193,11 +193,7 @@ def _expand_matrix_constraints(matrix_config):
|
||||
for combo in itertools.product(*expanded_rows):
|
||||
# Construct a combined spec to test against excludes
|
||||
flat_combo = [constraint for constraint_list in combo for constraint in constraint_list]
|
||||
flat_combo = [Spec(x) for x in flat_combo]
|
||||
|
||||
test_spec = flat_combo[0].copy()
|
||||
for constraint in flat_combo[1:]:
|
||||
test_spec.constrain(constraint)
|
||||
test_spec = Spec(" ".join(flat_combo))
|
||||
|
||||
# Abstract variants don't have normal satisfaction semantics
|
||||
# Convert all variants to concrete types.
|
||||
@@ -213,7 +209,7 @@ def _expand_matrix_constraints(matrix_config):
|
||||
continue
|
||||
|
||||
if sigil:
|
||||
flat_combo[0] = Spec(sigil + str(flat_combo[0]))
|
||||
flat_combo[0] = sigil + flat_combo[0]
|
||||
|
||||
# Add to list of constraints
|
||||
results.append(flat_combo)
|
||||
|
||||
@@ -75,8 +75,8 @@ def test_env_change_spec(tmpdir, mock_packages, config):
|
||||
- desired_specs: ["mpileaks@2.1"]
|
||||
specs:
|
||||
- matrix:
|
||||
- [$compilers]
|
||||
- [$desired_specs]
|
||||
- [$compilers]
|
||||
"""
|
||||
|
||||
|
||||
|
||||
@@ -61,25 +61,25 @@ def test_spec_list_expansions(self):
|
||||
@pytest.mark.parametrize(
|
||||
"specs,expected",
|
||||
[
|
||||
# Constraints are ordered randomly
|
||||
# Constraints are ordered carefully to apply to appropriate node
|
||||
(
|
||||
[
|
||||
{
|
||||
"matrix": [
|
||||
["^zmpi"],
|
||||
["%gcc@4.5.0"],
|
||||
["hypre", "libelf"],
|
||||
["~shared"],
|
||||
["cflags=-O3", 'cflags="-g -O0"'],
|
||||
["^foo"],
|
||||
["^zmpi"],
|
||||
["%gcc@4.5.0"],
|
||||
["cflags=-O3", 'cflags="-g -O0"'],
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"hypre cflags=-O3 ~shared %gcc@4.5.0 ^foo ^zmpi",
|
||||
'hypre cflags="-g -O0" ~shared %gcc@4.5.0 ^foo ^zmpi',
|
||||
"libelf cflags=-O3 ~shared %gcc@4.5.0 ^foo ^zmpi",
|
||||
'libelf cflags="-g -O0" ~shared %gcc@4.5.0 ^foo ^zmpi',
|
||||
"hypre ~shared ^foo ^zmpi cflags=-O3 %gcc@4.5.0",
|
||||
'hypre ~shared ^foo ^zmpi cflags="-g -O0" %gcc@4.5.0',
|
||||
"libelf ~shared ^foo ^zmpi cflags=-O3 %gcc@4.5.0",
|
||||
'libelf ~shared ^foo ^zmpi cflags="-g -O0" %gcc@4.5.0',
|
||||
],
|
||||
),
|
||||
# A constraint affects both the root and a dependency
|
||||
|
||||
@@ -59,8 +59,6 @@ spack:
|
||||
|
||||
specs:
|
||||
- kokkos +rocm amdgpu_target=gfx90a
|
||||
- kokkos +wrapper +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
|
||||
# FAILURES
|
||||
@@ -109,14 +107,6 @@ spack:
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- kokkos +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
runner-attributes:
|
||||
tags: [ "nvidia-515.65.01", "cuda-11.7", "a100" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- kokkos +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
- raja +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
|
||||
50
var/spack/repos/builtin/packages/gsl-lite/package.py
Normal file
50
var/spack/repos/builtin/packages/gsl-lite/package.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class GslLite(CMakePackage):
|
||||
"""A single-file header-only version of ISO C++ Guidelines Support Library
|
||||
(GSL) for C++98, C++11, and later"""
|
||||
|
||||
homepage = "https://github.com/gsl-lite/gsl-lite"
|
||||
git = "https://github.com/gsl-lite/gsl-lite.git"
|
||||
url = "https://github.com/gsl-lite/gsl-lite/archive/refs/tags/v0.38.1.tar.gz"
|
||||
|
||||
maintainers("AlexanderRichert-NOAA", "climbfuji", "edwardhartnett", "Hang-Lei-NOAA")
|
||||
|
||||
version("0.40.0", commit="d6c8af99a1d95b3db36f26b4f22dc3bad89952de")
|
||||
version("0.39.0", commit="d0903fa87ff579c30f608bc363582e6563570342")
|
||||
version("0.38.1", sha256="c2fa2315fff312f3897958903ed4d4e027f73fa44235459ecb467ad7b7d62b18")
|
||||
version("0.38.0", sha256="5d25fcd31ea66dac9e14da1cad501d95450ccfcb2768fffcd1a4170258fcbc81")
|
||||
version("0.37.0", sha256="a31d51b73742bb234acab8d2411223cf299e760ed713f0840ffed0dabe57ca38")
|
||||
version("0.36.0", sha256="c052cc4547b33cedee6f000393a7005915c45c6c06b35518d203db117f75c71c")
|
||||
version("0.34.0", sha256="a7d5b2672b78704ca03df9ef65bc274d8f8cacad3ca950365eef9e25b50324c5")
|
||||
|
||||
variant("tests", default=False)
|
||||
variant("cuda_tests", default=False)
|
||||
variant("examples", default=False)
|
||||
variant("static_analysis_demos", default=False)
|
||||
variant("cmake_export_package_registry", default=False)
|
||||
variant("compat_header", default=False)
|
||||
variant("legacy_headers", default=False)
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define_from_variant("GSL_LITE_OPT_BUILD_TESTS", "tests"),
|
||||
self.define_from_variant("GSL_LITE_OPT_BUILD_CUDA_TESTS", "cuda_tests"),
|
||||
self.define_from_variant("GSL_LITE_OPT_BUILD_EXAMPLES", "examples"),
|
||||
self.define_from_variant(
|
||||
"GSL_LITE_LOPT_BUILD_STATIC_ANALYSIS_DEMOS", "static_analysis_demos"
|
||||
),
|
||||
self.define_from_variant(
|
||||
"CMAKE_EXPORT_PACKAGE_REGISTRY", "cmake_export_package_registry"
|
||||
),
|
||||
self.define_from_variant("GSL_LITE_OPT_INSTALL_COMPAT_HEADER", "compat_header"),
|
||||
self.define_from_variant("GSL_LITE_OPT_INSTALL_LEGACY_HEADERS", "legacy_headers"),
|
||||
]
|
||||
return args
|
||||
@@ -255,7 +255,7 @@ def build(self, pkg, spec, prefix):
|
||||
#
|
||||
self.coerce_to_spack("build")
|
||||
|
||||
if spec.satisfies("%clang") or spec.satisfies("%apple-clang"):
|
||||
if spec.satisfies("%clang") or spec.satisfies("%apple-clang") or spec.satisfies("%rocmcc"):
|
||||
tbb_compiler = "clang"
|
||||
elif spec.satisfies("%intel"):
|
||||
tbb_compiler = "icc"
|
||||
|
||||
@@ -16,6 +16,7 @@ class Libmonitor(AutotoolsPackage):
|
||||
maintainers("mwkrentel")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2023.02.13", commit="6db182b25202552f75a087116ab57193652d150f")
|
||||
version("2022.09.02", commit="4ae16dab0ba5fbda0ffe28df523613ea22cb85ae")
|
||||
version("2021.11.08", commit="22aa52c621534f12d401fa37f6963bfca7441e20")
|
||||
version("2021.04.27", commit="a2d1b6be23410ef1ad2c9d0006672453803243c2")
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -9584,6 +9584,10 @@ for cc_temp in $compiler""; do
|
||||
esac
|
||||
done
|
||||
cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+case $cc_basename in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
|
||||
+esac
|
||||
|
||||
|
||||
# Only perform the check for file, if the check method requires it
|
||||
@@ -10657,6 +10661,10 @@ _LT_EOF
|
||||
lf95*) # Lahey Fortran 8.1
|
||||
whole_archive_flag_spec=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
+ nagfor*)
|
||||
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||
+ compiler_needs_object=yes
|
||||
+ tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
tmp_addflag= ;;
|
||||
@@ -13415,6 +13423,10 @@ $RM -r conftest*
|
||||
esac
|
||||
done
|
||||
cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+case $cc_basename in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
|
||||
+esac
|
||||
|
||||
GCC=$G77
|
||||
if test -n "$compiler"; then
|
||||
@@ -14252,6 +14264,10 @@ _LT_EOF
|
||||
lf95*) # Lahey Fortran 8.1
|
||||
whole_archive_flag_spec_F77=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
+ nagfor*)
|
||||
+ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||
+ compiler_needs_object_F77=yes
|
||||
+ tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
tmp_addflag= ;;
|
||||
@@ -16142,6 +16158,10 @@ $RM -r conftest*
|
||||
esac
|
||||
done
|
||||
cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+case $cc_basename in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
|
||||
+esac
|
||||
|
||||
|
||||
if test -n "$compiler"; then
|
||||
@@ -17142,6 +17162,10 @@ _LT_EOF
|
||||
lf95*) # Lahey Fortran 8.1
|
||||
whole_archive_flag_spec_FC=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
+ nagfor*)
|
||||
+ whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||
+ compiler_needs_object_FC=yes
|
||||
+ tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
tmp_addflag= ;;
|
||||
--- a/ltmain.sh
|
||||
+++ b/ltmain.sh
|
||||
@@ -180,6 +180,24 @@ func_basename ()
|
||||
func_basename_result=`$ECHO "${1}" | $SED "$basename"`
|
||||
} # func_basename may be replaced by extended shell implementation
|
||||
|
||||
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
|
||||
+func_cc_basename ()
|
||||
+{
|
||||
+ for cc_temp in $*""; do
|
||||
+ case $cc_temp in
|
||||
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
|
||||
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
|
||||
+ \-*) ;;
|
||||
+ *) break;;
|
||||
+ esac
|
||||
+ done
|
||||
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
|
||||
# func_dirname_and_basename file append nondir_replacement
|
||||
# perform func_basename and func_dirname in a single function
|
||||
@@ -6422,6 +6440,13 @@ func_mode_link ()
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8007,6 +8032,14 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -1,96 +0,0 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -9034,6 +9034,12 @@ func_cc_basename ()
|
||||
esac
|
||||
done
|
||||
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+
|
||||
+ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90).
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
|
||||
+ esac
|
||||
}
|
||||
|
||||
# Check whether --enable-libtool-lock was given.
|
||||
@@ -11811,6 +11817,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
@@ -15663,6 +15671,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec_F77=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object_F77=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
@@ -18788,6 +18798,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec_FC=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object_FC=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
@@ -26086,6 +26098,12 @@ func_cc_basename ()
|
||||
esac
|
||||
done
|
||||
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
|
||||
+
|
||||
+ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90).
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) ;;
|
||||
+ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
|
||||
+ esac
|
||||
}
|
||||
|
||||
|
||||
--- a/ltmain.sh
|
||||
+++ b/ltmain.sh
|
||||
@@ -7868,6 +7868,13 @@ func_mode_link ()
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8890,7 +8897,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9502,6 +9510,14 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -37,14 +37,6 @@ class NetcdfFortran(AutotoolsPackage):
|
||||
depends_on("netcdf-c@4.7.4:", when="@4.5.3:") # nc_def_var_szip required
|
||||
depends_on("doxygen", when="+doc", type="build")
|
||||
|
||||
# The default libtool.m4 is too old to handle NAG compiler properly:
|
||||
# https://github.com/Unidata/netcdf-fortran/issues/94
|
||||
# Moreover, Libtool can't handle '-pthread' flag coming from libcurl,
|
||||
# doesn't inject convenience libraries into the shared ones, and is unable
|
||||
# to detect NAG when it is called with an MPI wrapper.
|
||||
patch("nag_libtool_2.4.2.patch", when="@:4.4.4%nag")
|
||||
patch("nag_libtool_2.4.6.patch", when="@4.4.5:%nag")
|
||||
|
||||
# Enable 'make check' for NAG, which is too strict.
|
||||
patch("nag_testing.patch", when="@4.4.5%nag")
|
||||
|
||||
@@ -136,54 +128,6 @@ def configure_args(self):
|
||||
|
||||
return config_args
|
||||
|
||||
@run_after("configure")
|
||||
def patch_libtool(self):
|
||||
"""AOCC support for NETCDF-F"""
|
||||
if "%aocc" in self.spec:
|
||||
# Libtool does not fully support the compiler toolchain, therefore
|
||||
# we have to patch the script. The C compiler normally gets
|
||||
# configured correctly, the variables of interest in the
|
||||
# 'BEGIN LIBTOOL CONFIG' section are set to non-empty values and,
|
||||
# therefore, are not affected by the replacements below. A more
|
||||
# robust solution would be to extend the filter_file function with
|
||||
# an additional argument start_at and perform the replacements
|
||||
# between the '# ### BEGIN LIBTOOL TAG CONFIG: FC' and
|
||||
# '# ### END LIBTOOL TAG CONFIG: FC' markers for the Fortran
|
||||
# compiler, and between the '# ### BEGIN LIBTOOL TAG CONFIG: F77'
|
||||
# and '# ### END LIBTOOL TAG CONFIG: F77' markers for the Fortran 77
|
||||
# compiler.
|
||||
|
||||
# How to pass a linker flag through the compiler:
|
||||
filter_file(r'^wl=""$', 'wl="{0}"'.format(self.compiler.linker_arg), "libtool")
|
||||
|
||||
# Additional compiler flags for building library objects (we need
|
||||
# this to enable shared libraries when building with ~pic). Note
|
||||
# that the following will set fc_pic_flag for both FC and F77, which
|
||||
# in the case of AOCC, should not be a problem. If it is, the
|
||||
# aforementioned modification of the filter_file function could be
|
||||
# a solution.
|
||||
filter_file(
|
||||
r'^pic_flag=""$', 'pic_flag=" {0}"'.format(self.compiler.fc_pic_flag), "libtool"
|
||||
)
|
||||
|
||||
# The following is supposed to tell the compiler to use the GNU
|
||||
# linker. However, the replacement does not happen (at least for
|
||||
# NetCDF-Fortran 4.5.3) because the replaced substring (i.e. the
|
||||
# first argument passed to the filter_file function) is not present
|
||||
# in the file. The flag should probably be added to 'ldflags' in the
|
||||
# flag_handler method above (another option is to add the flag to
|
||||
# 'ldflags' in compilers.yaml automatically as it was done for other
|
||||
# flags in https://github.com/spack/spack/pull/22219).
|
||||
filter_file(
|
||||
r"\${wl}-soname \$wl\$soname",
|
||||
r"-fuse-ld=ld -Wl,-soname,\$soname",
|
||||
"libtool",
|
||||
string=True,
|
||||
)
|
||||
|
||||
# TODO: resolve the NAG-related issues in a similar way: remove the
|
||||
# respective patch files and tune the generated libtool script instead.
|
||||
|
||||
@when("@:4.4.5")
|
||||
def check(self):
|
||||
with working_dir(self.build_directory):
|
||||
|
||||
@@ -89,7 +89,7 @@ class Octave(AutotoolsPackage, GNUMirrorPackage):
|
||||
# Optional dependencies
|
||||
depends_on("arpack-ng", when="+arpack")
|
||||
depends_on("curl", when="+curl")
|
||||
depends_on("fftw", when="+fftw")
|
||||
depends_on("fftw-api@3", when="+fftw")
|
||||
depends_on("fltk", when="+fltk")
|
||||
depends_on("fontconfig", when="+fontconfig")
|
||||
depends_on("freetype", when="+freetype")
|
||||
@@ -222,12 +222,13 @@ def configure_args(self):
|
||||
config_args.append("--without-curl")
|
||||
|
||||
if "+fftw" in spec:
|
||||
fftw_string = "fftw-api"
|
||||
config_args.extend(
|
||||
[
|
||||
"--with-fftw3-includedir=%s" % spec["fftw"].prefix.include,
|
||||
"--with-fftw3-libdir=%s" % spec["fftw"].prefix.lib,
|
||||
"--with-fftw3f-includedir=%s" % spec["fftw"].prefix.include,
|
||||
"--with-fftw3f-libdir=%s" % spec["fftw"].prefix.lib,
|
||||
"--with-fftw3-includedir=%s" % spec[fftw_string].prefix.include,
|
||||
"--with-fftw3-libdir=%s" % spec[fftw_string].prefix.lib,
|
||||
"--with-fftw3f-includedir=%s" % spec[fftw_string].prefix.include,
|
||||
"--with-fftw3f-libdir=%s" % spec[fftw_string].prefix.lib,
|
||||
]
|
||||
)
|
||||
else:
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
--- a/config/ltmain.sh
|
||||
+++ b/config/ltmain.sh
|
||||
@@ -7860,14 +7860,15 @@ func_mode_link ()
|
||||
func_source "$lib"
|
||||
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
- # and "-pthread" to "-Wl,-pthread" if NAG compiler
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
- case "$CC" in
|
||||
- nagfor*)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread'`;;
|
||||
- *)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
|
||||
- esac
|
||||
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8887,7 +8888,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9499,6 +9501,13 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -1,40 +0,0 @@
|
||||
--- a/config/ltmain.sh
|
||||
+++ b/config/ltmain.sh
|
||||
@@ -7862,6 +7862,13 @@ func_mode_link ()
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8881,7 +8888,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9493,6 +9501,13 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -1,49 +0,0 @@
|
||||
--- a/config/ltmain.sh
|
||||
+++ b/config/ltmain.sh
|
||||
@@ -7860,14 +7860,15 @@ func_mode_link ()
|
||||
func_source "$lib"
|
||||
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
- # and "-pthread" to "-Wl,-pthread" if NAG compiler
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
- case "$CC" in
|
||||
- nagfor*)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;;
|
||||
- *)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
|
||||
- esac
|
||||
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8887,7 +8888,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9499,6 +9501,13 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -1,49 +0,0 @@
|
||||
--- a/config/ltmain.sh
|
||||
+++ b/config/ltmain.sh
|
||||
@@ -7860,14 +7860,15 @@ func_mode_link ()
|
||||
func_source "$lib"
|
||||
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
- # and "-pthread" to "-Wl,-pthread" if NAG compiler
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
- case "$CC" in
|
||||
- *nagfor*)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;;
|
||||
- *)
|
||||
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
|
||||
- esac
|
||||
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8887,7 +8888,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9499,6 +9501,13 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -382,14 +382,6 @@ class Openmpi(AutotoolsPackage, CudaPackage):
|
||||
patch("btl_vader.patch", when="@3.0.1:3.0.2")
|
||||
patch("btl_vader.patch", when="@3.1.0:3.1.2")
|
||||
|
||||
# Make NAG compiler pass the -pthread option to the linker:
|
||||
# https://github.com/open-mpi/ompi/pull/6378
|
||||
# We support only versions based on Libtool 2.4.6.
|
||||
patch("nag_pthread/2.1.4_2.1.999_3.0.1_4.patch", when="@2.1.4:2.1,3.0.1:4%nag")
|
||||
patch("nag_pthread/2.1.2_2.1.3_3.0.0.patch", when="@2.1.2:2.1.3,3.0.0%nag")
|
||||
patch("nag_pthread/2.0.0_2.1.1.patch", when="@2.0.0:2.1.1%nag")
|
||||
patch("nag_pthread/1.10.4_1.10.999.patch", when="@1.10.4:1.10%nag")
|
||||
|
||||
# Fix MPI_Sizeof() in the "mpi" Fortran module for compilers that do not
|
||||
# support "IGNORE TKR" functionality (e.g. NAG).
|
||||
# The issue has been resolved upstream in two steps:
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
--- a/m4/libtool.m4
|
||||
+++ b/m4/libtool.m4
|
||||
@@ -5282,7 +5282,6 @@ _LT_EOF
|
||||
tmp_sharedflag='-shared'
|
||||
case $cc_basename,$host_cpu in
|
||||
pgcc*) # Portland Group C compiler
|
||||
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
tmp_addflag=' $pic_flag'
|
||||
;;
|
||||
pgf77* | pgf90* | pgf95* | pgfortran*)
|
||||
@@ -1,26 +0,0 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -11858,7 +11858,6 @@ _LT_EOF
|
||||
tmp_sharedflag='-shared'
|
||||
case $cc_basename,$host_cpu in
|
||||
pgcc*) # Portland Group C compiler
|
||||
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
tmp_addflag=' $pic_flag'
|
||||
;;
|
||||
pgf77* | pgf90* | pgf95* | pgfortran*)
|
||||
@@ -21326,7 +21325,6 @@ _LT_EOF
|
||||
tmp_sharedflag='-shared'
|
||||
case $cc_basename,$host_cpu in
|
||||
pgcc*) # Portland Group C compiler
|
||||
- whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
tmp_addflag=' $pic_flag'
|
||||
;;
|
||||
pgf77* | pgf90* | pgf95* | pgfortran*)
|
||||
@@ -25066,7 +25064,6 @@ _LT_EOF
|
||||
tmp_sharedflag='-shared'
|
||||
case $cc_basename,$host_cpu in
|
||||
pgcc*) # Portland Group C compiler
|
||||
- whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
tmp_addflag=' $pic_flag'
|
||||
;;
|
||||
pgf77* | pgf90* | pgf95* | pgfortran*)
|
||||
@@ -1,69 +0,0 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -11745,6 +11745,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
@@ -21030,6 +21032,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec_F77=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object_F77=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
@@ -24765,6 +24769,8 @@ _LT_EOF
|
||||
whole_archive_flag_spec_FC=
|
||||
tmp_sharedflag='--shared' ;;
|
||||
nagfor*) # NAGFOR 5.3
|
||||
+ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
|
||||
+ compiler_needs_object_FC=yes
|
||||
tmp_sharedflag='-Wl,-shared' ;;
|
||||
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
|
||||
tmp_sharedflag='-qmkshrobj'
|
||||
--- a/scripts/ltmain.sh
|
||||
+++ b/scripts/ltmain.sh
|
||||
@@ -7862,6 +7862,13 @@ func_mode_link ()
|
||||
# Convert "-framework foo" to "foo.ltframework"
|
||||
if test -n "$inherited_linker_flags"; then
|
||||
tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
|
||||
+
|
||||
+ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
|
||||
+ esac
|
||||
+
|
||||
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
|
||||
case " $new_inherited_linker_flags " in
|
||||
*" $tmp_inherited_linker_flag "*) ;;
|
||||
@@ -8881,7 +8888,8 @@ func_mode_link ()
|
||||
xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
|
||||
# On Darwin other compilers
|
||||
- case $CC in
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
nagfor*)
|
||||
verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
|
||||
;;
|
||||
@@ -9493,6 +9501,13 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
+ # Time to revert the changes made for nagfor.
|
||||
+ func_cc_basename $CC
|
||||
+ case $func_cc_basename_result in
|
||||
+ nagfor*)
|
||||
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
|
||||
+ esac
|
||||
+
|
||||
# move library search paths that coincide with paths to not yet
|
||||
# installed libraries to the beginning of the library search list
|
||||
new_libs=
|
||||
@@ -79,23 +79,6 @@ def url_for_version(self, version):
|
||||
# (see below).
|
||||
conflicts("+shared", when="@:1.9%nag+fortran")
|
||||
|
||||
# https://github.com/Parallel-NetCDF/PnetCDF/pull/59
|
||||
patch("nag_libtool.patch", when="@1.9:1.12.1%nag")
|
||||
|
||||
# We could apply the patch unconditionally. However, it fixes a problem
|
||||
# that manifests itself only when we build shared libraries with Spack on
|
||||
# a Cray system with PGI compiler. Based on the name of the $CC executable,
|
||||
# Libtool "thinks" that it works with PGI compiler directly but on a Cray
|
||||
# system it actually works with the Cray's wrapper. PGI compiler (at least
|
||||
# since the version 15.7) "understands" two formats of the
|
||||
# '--whole-archive' argument. Unluckily, Cray's wrapper "understands" only
|
||||
# one of them but Libtool switches to another one. The following patch
|
||||
# discards the switching.
|
||||
patch("cray_pgi_libtool_release.patch", when="@1.8:999%pgi+shared platform=cray")
|
||||
# Given that the bug manifests itself in rather specific conditions, it is
|
||||
# not reported upstream.
|
||||
patch("cray_pgi_libtool_master.patch", when="@master%pgi+shared platform=cray")
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
libraries = ["libpnetcdf"]
|
||||
|
||||
26
var/spack/repos/builtin/packages/py-fortls/package.py
Normal file
26
var/spack/repos/builtin/packages/py-fortls/package.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyFortls(PythonPackage):
|
||||
"""A Language Server for Fortran providing code completion, diagnostics, hovering and more."""
|
||||
|
||||
homepage = "https://fortls.fortran-lang.org"
|
||||
pypi = "fortls/fortls-2.13.0.tar.gz"
|
||||
|
||||
maintainers("RMeli")
|
||||
|
||||
version("2.13.0", sha256="23c5013e8dd8e1d65bf07be610d0827bc48aa7331a7a7ce13612d4c646d0db31")
|
||||
|
||||
depends_on("py-setuptools@45:", type="build")
|
||||
depends_on("py-packaging", type=("build", "run"))
|
||||
depends_on("py-setuptools-scm@6.2:+toml", type="build")
|
||||
depends_on("py-setuptools-scm-git-archive", type="build")
|
||||
|
||||
depends_on("py-json5", type=("build", "run"))
|
||||
depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7")
|
||||
depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.7")
|
||||
@@ -37,6 +37,7 @@ class PyMatplotlib(PythonPackage):
|
||||
"pylab",
|
||||
]
|
||||
|
||||
version("3.7.0", sha256="8f6efd313430d7ef70a38a3276281cb2e8646b3a22b3b21eb227da20e15e6813")
|
||||
version("3.6.3", sha256="1f4d69707b1677560cd952544ee4962f68ff07952fb9069ff8c12b56353cb8c9")
|
||||
version("3.6.2", sha256="b03fd10a1709d0101c054883b550f7c4c5e974f751e2680318759af005964990")
|
||||
version("3.6.1", sha256="e2d1b7225666f7e1bcc94c0bc9c587a82e3e8691da4757e357e5c2515222ee37")
|
||||
@@ -138,16 +139,12 @@ class PyMatplotlib(PythonPackage):
|
||||
# https://matplotlib.org/stable/devel/dependencies.html
|
||||
# Runtime dependencies
|
||||
# Mandatory dependencies
|
||||
extends("python", ignore=r"bin/nosetests.*$|bin/pbr$")
|
||||
depends_on("python@3.8:", when="@3.6:", type=("build", "link", "run"))
|
||||
depends_on("python@3.7:", when="@3.4:", type=("build", "link", "run"))
|
||||
depends_on("python@3.6:", when="@3.1:", type=("build", "link", "run"))
|
||||
depends_on("python@3.5:", when="@3:", type=("build", "link", "run"))
|
||||
depends_on("python@2.7:2.8,3.4:", when="@:2", type=("build", "link", "run"))
|
||||
depends_on("py-contourpy@1.0.1:", when="@3.6:", type=("build", "run"))
|
||||
depends_on("py-cycler@0.10:", type=("build", "run"))
|
||||
depends_on("py-fonttools@4.22:", when="@3.5:", type=("build", "run"))
|
||||
depends_on("py-kiwisolver@1.0.1:", type=("build", "run"), when="@2.2.0:")
|
||||
depends_on("py-numpy@1.20:", when="@3.7:", type=("build", "run"))
|
||||
depends_on("py-numpy@1.19:", when="@3.6:", type=("build", "run"))
|
||||
depends_on("py-numpy@1.17:", when="@3.5:", type=("build", "run"))
|
||||
depends_on("py-numpy@1.16:", when="@3.4:", type=("build", "run"))
|
||||
@@ -156,11 +153,13 @@ class PyMatplotlib(PythonPackage):
|
||||
depends_on("py-packaging@20:", when="@3.6:", type=("build", "run"))
|
||||
depends_on("py-packaging", when="@3.5:", type=("build", "run"))
|
||||
depends_on("pil@6.2:", when="@3.3:", type=("build", "run"))
|
||||
depends_on("py-pyparsing@2.3.1:", when="@3.7:", type=("build", "run"))
|
||||
depends_on("py-pyparsing@2.2.1:", when="@3.4:", type=("build", "run"))
|
||||
depends_on("py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:", type=("build", "run"))
|
||||
depends_on("py-python-dateutil@2.7:", when="@3.4:", type=("build", "run"))
|
||||
depends_on("py-python-dateutil@2.1:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"))
|
||||
depends_on("py-importlib-resources@3.2:", when="@3.7: ^python@:3.9", type=("build", "run"))
|
||||
|
||||
# Historical dependencies
|
||||
depends_on("py-pytz", type=("build", "run"), when="@:2")
|
||||
@@ -225,6 +224,7 @@ class PyMatplotlib(PythonPackage):
|
||||
# Dependencies for building matplotlib
|
||||
# Setup dependencies
|
||||
depends_on("py-certifi@2020.6.20:", when="@3.3.1:", type="build")
|
||||
depends_on("py-pybind11@2.6:", when="@3.7:", type="build")
|
||||
depends_on("py-setuptools-scm@7:", when="@3.6:", type="build")
|
||||
depends_on("py-setuptools-scm@4:6", when="@3.5", type="build")
|
||||
depends_on("py-setuptools-scm-git-archive", when="@3.5", type="build")
|
||||
|
||||
@@ -14,6 +14,8 @@ class PyRadiantMlhub(PythonPackage):
|
||||
|
||||
maintainers("adamjstewart")
|
||||
|
||||
version("0.5.5", sha256="93cabc3c8e9ba343cdb3b0bfaec01bf7a36aae75704fabfe96c8bf5cab9fa899")
|
||||
version("0.5.3", sha256="f111983910e41f2ce40bf401ccf9e33b393e52cc1989f8f8b74c6b4e2bdd0127")
|
||||
version("0.5.2", sha256="d310afce962508a44c60f5738fef164c50e78f76c3e85813653824b39a189ca3")
|
||||
version("0.5.1", sha256="b7daff4a127e96e27c64eda66e393d9727e61a87c887f86738753486cc44fa46")
|
||||
version("0.5.0", sha256="fff788aaa5f8afcb0f6eabff4147eaaf7de375f0a43ecaf2238033fc3a62e2c2")
|
||||
@@ -23,10 +25,9 @@ class PyRadiantMlhub(PythonPackage):
|
||||
version("0.3.0", sha256="dd66479f12317e7bf366abe8d692841485e9497918c30ab14cd6db9e69ce3dbb")
|
||||
version("0.2.2", sha256="0d9f634b7e29c7f7294b81a10cf712ac63251949a9c5a07aa6c64c0d5b77e1ba")
|
||||
version("0.2.1", sha256="75a2f096b09a87191238fe557dc64dda8c44156351b4026c784c848c7d84b6fb")
|
||||
version("0.2.0", sha256="4a3e4c301c5e74f282bbf77b7d65db5a1d6c2a4dc6d18637eff6e1228ca2eb9d")
|
||||
|
||||
depends_on("python@3.8:", when="@0.5:", type=("build", "run"))
|
||||
depends_on("python@3.7:", when="@0.3:", type=("build", "run"))
|
||||
depends_on("python@3.6:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-click@7.1.2:8", when="@0.3:", type=("build", "run"))
|
||||
depends_on("py-click@7.1.2:7.1", when="@:0.2", type=("build", "run"))
|
||||
@@ -48,4 +49,7 @@ class PyRadiantMlhub(PythonPackage):
|
||||
depends_on("py-tqdm@4.64:4", when="@0.5.0:0.5.1", type=("build", "run"))
|
||||
depends_on("py-tqdm@4.56:4", when="@0.3:0.4", type=("build", "run"))
|
||||
depends_on("py-tqdm@4.56", when="@:0.2", type=("build", "run"))
|
||||
depends_on("py-urllib3@1.26.11:1.26", when="@0.5.5:", type=("build", "run"))
|
||||
|
||||
# Historical dependencies
|
||||
depends_on("py-typing-extensions@3.7:", when="@0.4.1:0.4 ^python@:3.7", type=("build", "run"))
|
||||
|
||||
@@ -20,6 +20,7 @@ class PyRasterio(PythonPackage):
|
||||
maintainers("adamjstewart")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.3.6", sha256="c8b90eb10e16102d1ab0334a7436185f295de1c07f0d197e206d1c005fc33905")
|
||||
version("1.3.5", sha256="92358c3d4d5d6f3c7cd2812c8832d5175abce02b11bc101ac9548ff07163e8e2")
|
||||
version("1.3.4", sha256="5a8771405276ecf00b8ee927bd0a81ec21778dcfc97e4a37d0b388f10c9a41a8")
|
||||
version("1.3.3", sha256="b6fb1f12489f3a678c05ddcb78a74f0b6f63836219f51c0541e505f5e5208e7d")
|
||||
@@ -33,32 +34,32 @@ class PyRasterio(PythonPackage):
|
||||
version("1.0.24", sha256="4839479621045211f66868ec49625979693450bc2e476f23e7e8ac4804eaf452")
|
||||
version("1.0a12", sha256="47d460326e04c64590ff56952271a184a6307f814efc34fb319c12e690585f3c")
|
||||
|
||||
# From README.rst
|
||||
depends_on("python@3.8:", when="@1.3:", type=("build", "link", "run"))
|
||||
depends_on("python@3.6:3.9", when="@1.2", type=("build", "link", "run"))
|
||||
depends_on("python@2.7:2.8,3.5:3.8", when="@1.1", type=("build", "link", "run"))
|
||||
depends_on("python@2.7:2.8,3.5:3.7", when="@:1.0", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.18:", when="@1.3:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.15:", when="@1.2:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy", type=("build", "link", "run"))
|
||||
depends_on("gdal@3.1:", when="@1.3:")
|
||||
depends_on("gdal@2.4:3.3", when="@1.2.7:1.2")
|
||||
depends_on("gdal@2.3:3.2", when="@1.2.0:1.2.6")
|
||||
depends_on("gdal@1.11:3.2", when="@1.1.0:1.1")
|
||||
depends_on("gdal@1.11:3.0", when="@1.0.25:1.0")
|
||||
depends_on("gdal@1.11:2", when="@:1.0.24")
|
||||
|
||||
# From pyproject.toml
|
||||
depends_on("py-cython@0.29.29:", when="@1.3.3:", type="build")
|
||||
depends_on("py-cython@0.29.24:0.29", when="@1.3.0:1.3.2", type="build")
|
||||
|
||||
# From setup.py
|
||||
depends_on("python@3.8:", when="@1.3:", type=("build", "link", "run"))
|
||||
depends_on("python@3.6:3.9", when="@1.2", type=("build", "link", "run"))
|
||||
depends_on("python@2.7:2.8,3.5:3.8", when="@1.1", type=("build", "link", "run"))
|
||||
depends_on("python@2.7:2.8,3.5:3.7", when="@:1.0", type=("build", "link", "run"))
|
||||
depends_on("py-affine", type=("build", "run"))
|
||||
depends_on("py-attrs", type=("build", "run"))
|
||||
depends_on("py-certifi", when="@1.2:", type=("build", "run"))
|
||||
depends_on("py-click@4:", when="@1.2.4:", type=("build", "run"))
|
||||
depends_on("py-click@4:7", when="@:1.2.3", type=("build", "run"))
|
||||
depends_on("py-cligj@0.5:", type=("build", "run"))
|
||||
depends_on("py-numpy@1.18:", when="@1.3:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.15:", when="@1.2:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy", type=("build", "link", "run"))
|
||||
depends_on("py-snuggs@1.4.1:", type=("build", "run"))
|
||||
depends_on("py-click-plugins", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"))
|
||||
|
||||
# From README.rst and setup.py
|
||||
depends_on("gdal@3.1:", when="@1.3:")
|
||||
depends_on("gdal@2.4:3.3", when="@1.2.7:1.2")
|
||||
depends_on("gdal@2.3:3.2", when="@1.2.0:1.2.6")
|
||||
depends_on("gdal@1.11:3.2", when="@1.1.0:1.1")
|
||||
depends_on("gdal@1.11:3.0", when="@1.0.25:1.0")
|
||||
depends_on("gdal@1.11:2", when="@:1.0.24")
|
||||
|
||||
@@ -14,6 +14,7 @@ class Shtools(MakefilePackage):
|
||||
|
||||
maintainers("eschnett")
|
||||
|
||||
version("4.10.1", sha256="f4fb5c86841fe80136b520d2040149eafd4bc2d49da6b914d8a843b812f20b61")
|
||||
version("4.9.1", sha256="5c22064f9daf6e9aa08cace182146993aa6b25a6ea593d92572c59f4013d53c2")
|
||||
version("4.8", sha256="c36fc86810017e544abbfb12f8ddf6f101a1ac8b89856a76d7d9801ffc8dac44")
|
||||
version("4.5", sha256="1975a2a2bcef8c527d321be08c13c2bc479e0d6b81c468a3203f95df59be4f89")
|
||||
@@ -24,12 +25,12 @@ class Shtools(MakefilePackage):
|
||||
|
||||
# The Makefile expects the "other" libtool, not the GNU libtool we have in
|
||||
# Spack
|
||||
patch("nolibtool.patch")
|
||||
patch("nolibtool.patch", when="@:4.9")
|
||||
|
||||
variant("openmp", default=True, description="Enable OpenMP support")
|
||||
|
||||
depends_on("blas")
|
||||
depends_on("fftw")
|
||||
depends_on("fftw precision=double")
|
||||
depends_on("lapack")
|
||||
depends_on("py-flake8", type="test")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user