Blame adios.spec

Bernhard M. Wiedemann 8952ca
#
bf2a78
# spec file for package adios
Bernhard M. Wiedemann 8952ca
#
bf2a78
# Copyright (c) 2024 SUSE LLC
Bernhard M. Wiedemann 8952ca
#
Bernhard M. Wiedemann 8952ca
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann 8952ca
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann 8952ca
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann 8952ca
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann 8952ca
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann 8952ca
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann 8952ca
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann 8952ca
# published by the Open Source Initiative.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann 8952ca
#
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann 8952ca
%global flavor @BUILD_FLAVOR@%{nil}
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann 8952ca
%define pname adios
Bernhard M. Wiedemann 8952ca
%define vers 1.13.1
Bernhard M. Wiedemann 8952ca
%define _vers %(echo %{vers} | tr . _)
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if "%{flavor}" == ""
Bernhard M. Wiedemann 8952ca
ExclusiveArch:  do_not_build
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann e00190
# No netcdf on s390.
Bernhard M. Wiedemann e00190
ExcludeArch:    s390 s390x
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
%if 0%{?sle_version} >= 150200
Bernhard M. Wiedemann e00190
%define DisOMPI1 ExclusiveArch:  do_not_build
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
%if !0%{?is_opensuse} && 0%{?sle_version:1} && 0%{?sle_version} < 150200
Bernhard M. Wiedemann 8952ca
%define DisOMPI3 ExclusiveArch:  do_not_build
Bernhard M. Wiedemann 8952ca
%endif
d6c152
%if 0%{?sle_version:1} && 0%{?sle_version} < 150300
d6c152
%define DisOMPI4 ExclusiveArch:  do_not_build
d6c152
%endif
Bernhard M. Wiedemann 8952ca
d6c152
%if "%{flavor}" == "openmpi4"
d6c152
%{?DisOMPI4}
d6c152
%global mpi_flavor openmpi
d6c152
%define mpi_ver 4
d6c152
%bcond_with hpc
d6c152
%endif
d6c152
757175
%if "%{flavor}" == "openmpi5"
757175
%{?DisOMPI5}
Bernhard M. Wiedemann 8952ca
%global mpi_flavor openmpi
757175
%define mpi_ver 5
757175
%bcond_with hpc
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
757175
%if "%{flavor}" == "gnu-openmpi4-hpc"
757175
%{?DisOMPI4}
Bernhard M. Wiedemann 8952ca
%bcond_without hpc
Bernhard M. Wiedemann 8952ca
%define compiler_family gnu
Bernhard M. Wiedemann 8952ca
%undefine c_f_ver
Bernhard M. Wiedemann 8952ca
%global mpi_flavor openmpi
757175
%define mpi_ver 4
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
757175
%if "%{flavor}" == "gnu-openmpi5-hpc"
757175
%{?DisOMPI5}
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%undefine c_f_ver
d6c152
%global mpi_flavor openmpi
757175
%define mpi_ver 5
d6c152
%endif
d6c152
Bernhard M. Wiedemann 8952ca
%if "%{flavor}" == "gnu-mvapich2-hpc"
Bernhard M. Wiedemann 8952ca
%bcond_without hpc
Bernhard M. Wiedemann 8952ca
%define compiler_family gnu
Bernhard M. Wiedemann 8952ca
%undefine c_f_ver
Bernhard M. Wiedemann 8952ca
%global mpi_flavor mvapich2
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if "%{flavor}" == "gnu-mpich-hpc"
Bernhard M. Wiedemann 8952ca
%bcond_without hpc
Bernhard M. Wiedemann 8952ca
%define compiler_family gnu
Bernhard M. Wiedemann 8952ca
%undefine c_f_ver
Bernhard M. Wiedemann 8952ca
%global mpi_flavor mpich
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann e00190
# All the HPC builds are below
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu7-openmpi4-hpc"
757175
%{?DisOMPI4}
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 7
Bernhard M. Wiedemann e00190
%global mpi_flavor openmpi
757175
%define mpi_ver 4
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu7-openmpi5-hpc"
757175
%{?DisOMPI5}
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 7
d6c152
%global mpi_flavor openmpi
757175
%define mpi_ver 5
d6c152
%endif
d6c152
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu7-mvapich2-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 7
Bernhard M. Wiedemann e00190
%global mpi_flavor mvapich2
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu7-mpich-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 7
Bernhard M. Wiedemann e00190
%global mpi_flavor mpich
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu8-openmpi4-hpc"
757175
%{?DisOMPI4}
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 8
Bernhard M. Wiedemann e00190
%global mpi_flavor openmpi
757175
%define mpi_ver 4
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu8-openmpi5-hpc"
757175
%{?DisOMPI5}
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 8
Bernhard M. Wiedemann e00190
%global mpi_flavor openmpi
757175
%define mpi_ver 5
d6c152
%endif
d6c152
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu8-mvapich2-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 8
Bernhard M. Wiedemann e00190
%global mpi_flavor mvapich2
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu8-mpich-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 8
Bernhard M. Wiedemann e00190
%global mpi_flavor mpich
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu9-openmpi4-hpc"
757175
%{?DisOMPI4}
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 9
Bernhard M. Wiedemann e00190
%global mpi_flavor openmpi
757175
%define mpi_ver 4
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
757175
%if "%{flavor}" == "gnu9-openmpi5-hpc"
757175
%{?DisOMPI5}
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 9
d6c152
%global mpi_flavor openmpi
757175
%define mpi_ver 5
d6c152
%endif
d6c152
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu9-mvapich2-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 9
Bernhard M. Wiedemann e00190
%global mpi_flavor mvapich2
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
%if "%{flavor}" == "gnu9-mpich-hpc"
Bernhard M. Wiedemann e00190
%bcond_without hpc
Bernhard M. Wiedemann e00190
%define compiler_family gnu
Bernhard M. Wiedemann e00190
%define c_f_ver 9
Bernhard M. Wiedemann e00190
%global mpi_flavor mpich
Bernhard M. Wiedemann e00190
%endif
d6c152
#
d6c152
757175
%if "%{flavor}" == "gnu10-openmpi4-hpc"
757175
%{?DisOMPI4}
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 10
d6c152
%global mpi_flavor openmpi
757175
%define mpi_ver 4
d6c152
%endif
d6c152
757175
%if "%{flavor}" == "gnu10-openmpi5-hpc"
757175
%{?DisOMPI5}
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 10
d6c152
%global mpi_flavor openmpi
757175
%define mpi_ver 5
d6c152
%endif
d6c152
d6c152
%if "%{flavor}" == "gnu10-mvapich2-hpc"
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 10
d6c152
%global mpi_flavor mvapich2
d6c152
%endif
d6c152
d6c152
%if "%{flavor}" == "gnu10-mpich-hpc"
d6c152
%bcond_without hpc
d6c152
%define compiler_family gnu
d6c152
%define c_f_ver 10
d6c152
%global mpi_flavor mpich
d6c152
%endif
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann 8952ca
%if !0%{?is_opensuse} && !0%{?with_hpc:1}
Bernhard M. Wiedemann 8952ca
ExclusiveArch:  do_not_build
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
Bernhard M. Wiedemann 8952ca
%{?with_mpi:%{!?mpi_flavor:%global mpi_flavor openmpi}}
Bernhard M. Wiedemann e00190
Bernhard M. Wiedemann e00190
# openmpi 1 was called just "openmpi" in Leap 15.x/SLE15
Bernhard M. Wiedemann e00190
%if 0%{?suse_version} >= 1550 || "%{mpi_flavor}" != "openmpi"  || "%{mpi_ver}" != "1"
Bernhard M. Wiedemann e00190
%define mpi_ext %{?mpi_ver}
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if %{with hpc}
Bernhard M. Wiedemann e00190
 %{hpc_init %{?compiler_family:-c %{compiler_family} %{?c_f_ver:-v %{c_f_ver}}} %{?with_mpi:-m %{?mpi_flavor}} %{?mpi_ver:-V %{?mpi_ver}} %{?ext:-e %{ext}}}
Bernhard M. Wiedemann 269c6d
 %{hpc_modules_init phdf5 netcdf}
Bernhard M. Wiedemann 8952ca
 %global hpc_module_pname %{pname}
Bernhard M. Wiedemann 8952ca
 %define pkg_prefix %{hpc_prefix}
Bernhard M. Wiedemann 8952ca
 %define pkg_bindir %{hpc_bindir}
Bernhard M. Wiedemann 8952ca
 %define pkg_libdir %{hpc_libdir}
Bernhard M. Wiedemann 8952ca
 %define pkg_incdir %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
 %define pkg_datadir %{hpc_datadir}
Bernhard M. Wiedemann 8952ca
 %define pkg_sysconfdir %{hpc_prefix}/etc/
Bernhard M. Wiedemann 8952ca
 %define pkg_skeldir %{hpc_prefix}/etc/skel/
Bernhard M. Wiedemann 8952ca
 %define package_name   %{hpc_package_name %{_vers}}
Bernhard M. Wiedemann 8952ca
 %define libname(l:s:)   lib%{pname}%{-l*}%{hpc_package_name_tail %{?_vers}}
Bernhard M. Wiedemann 8952ca
%else
Bernhard M. Wiedemann e00190
 %global pkg_suffix %{?mpi_flavor:-%{mpi_flavor}%{?mpi_ext}}
Bernhard M. Wiedemann e00190
 %define pkg_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}%{?mpi_ext}
Bernhard M. Wiedemann 8952ca
 %define pkg_bindir %{pkg_prefix}/bin/
Bernhard M. Wiedemann 8952ca
 %define pkg_libdir %{pkg_prefix}/%{_lib}/
Bernhard M. Wiedemann 8952ca
 %define pkg_incdir %{pkg_prefix}/include/
Bernhard M. Wiedemann 8952ca
 %define pkg_datadir %{pkg_prefix}/share/
Bernhard M. Wiedemann 8952ca
 %define pkg_sysconfdir %{pkg_prefix}/etc/
Bernhard M. Wiedemann 8952ca
 %define pkg_skeldir %{pkg_prefix}/etc/skel/
Bernhard M. Wiedemann 8952ca
 %define package_name   %{pname}%{?pkg_suffix}
Bernhard M. Wiedemann 8952ca
 %define libname(l:s:)   lib%{pname}%{!-l:%{-s:-}}%{-l*}%{-s*}%{?pkg_suffix}
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
d6c152
%if 0%{?suse_version} >= 1500
d6c152
%define my_py_version 3
d6c152
%endif
d6c152
Bernhard M. Wiedemann e00190
Name:           %{package_name}
Bernhard M. Wiedemann e00190
Version:        %{vers}
Bernhard M. Wiedemann e00190
Release:        0
Bernhard M. Wiedemann e00190
Summary:        The Adaptable IO System (ADIOS)
757175
License:        BSD-2-Clause AND BSD-3-Clause AND LGPL-2.1-or-later
Bernhard M. Wiedemann e00190
Group:          Productivity/Scientific/Other
Bernhard M. Wiedemann e00190
URL:            https://www.olcf.ornl.gov/center-projects/adios/
Bernhard M. Wiedemann e00190
Source0:        https://users.nccs.gov/~pnorbert/adios-%{version}.tar.gz
Bernhard M. Wiedemann e00190
Patch0:         adios-correct-func-ret.patch
d6c152
Patch1:         Fix-code-to-be-python3-compliant.patch
Bernhard M. Wiedemann 8952ca
%{?with_hpc:BuildRequires:  suse-hpc >= 0.3}
Bernhard M. Wiedemann e00190
BuildRequires:  autoconf
Bernhard M. Wiedemann e00190
BuildRequires:  fdupes
Bernhard M. Wiedemann e00190
BuildRequires:  libbz2-devel
Bernhard M. Wiedemann e00190
BuildRequires:  liblz4-devel
d6c152
BuildRequires:  python%{?my_py_version}
Bernhard M. Wiedemann e00190
BuildRequires:  zlib-devel
Bernhard M. Wiedemann e00190
%if %{without hpc}
Bernhard M. Wiedemann e00190
BuildRequires:  %{mpi_flavor}%{?mpi_ext}-devel
Bernhard M. Wiedemann 8952ca
BuildRequires:  gcc-c++
Bernhard M. Wiedemann 8952ca
BuildRequires:  gcc-fortran
Bernhard M. Wiedemann 8952ca
BuildRequires:  hdf5%{?pkg_suffix}-devel
Bernhard M. Wiedemann 8952ca
BuildRequires:  netcdf%{?pkg_suffix}-devel
Bernhard M. Wiedemann e00190
%else # hpc
Bernhard M. Wiedemann 8952ca
BuildRequires:  %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
Bernhard M. Wiedemann 8952ca
BuildRequires:  %{mpi_flavor}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel
Bernhard M. Wiedemann 8952ca
BuildRequires:  hdf5-%{compiler_family}%{?c_f_ver}%{?with_mpi:-%{mpi_flavor}%{?mpi_ver}}-hpc-devel
Bernhard M. Wiedemann 8952ca
BuildRequires:  lua-lmod
Bernhard M. Wiedemann e00190
BuildRequires:  netcdf-%{compiler_family}%{?c_f_ver}%{?with_mpi:-%{mpi_flavor}%{?mpi_ver}}-hpc-devel
Bernhard M. Wiedemann 8952ca
%{hpc_requires}
Bernhard M. Wiedemann 8952ca
%endif  # ?hpc
d6c152
Requires:       python%{?my_py_version}-PyYAML
d6c152
Requires:       python%{?my_py_version}-xml
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%description
Bernhard M. Wiedemann 8952ca
The Adaptable IO System (ADIOS) provides a way for scientists to
Bernhard M. Wiedemann 8952ca
describe the data in their code that may need to be written, read, or
Bernhard M. Wiedemann 8952ca
processed outside of the running simulation. By providing an external
Bernhard M. Wiedemann 8952ca
to the code XML file describing the various elements, their types,
Bernhard M. Wiedemann 8952ca
and how one wishes to process them for a particular run, the routines
Bernhard M. Wiedemann 8952ca
in the host code (either FORTRAN or C) can transparently change how
Bernhard M. Wiedemann 8952ca
they process the data.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%{?with_hpc:%hpc_master_package -L}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%package devel
Bernhard M. Wiedemann 8952ca
Summary:        Development files for %{name}
Bernhard M. Wiedemann 8952ca
Group:          Development/Libraries/Parallel
Bernhard M. Wiedemann 8952ca
Requires:       %{name} = %{version}
Bernhard M. Wiedemann 8952ca
Requires:       %{name}-devel-static = %{version}
Bernhard M. Wiedemann e00190
%if %{without hpc}
Bernhard M. Wiedemann e00190
Requires:       hdf5%{?pkg_suffix}-devel
Bernhard M. Wiedemann e00190
Requires:       netcdf%{?pkg_suffix}-devel
Bernhard M. Wiedemann e00190
%if "%{mpi_family}%{?mpi_ext}" == "openmpi1"
Bernhard M. Wiedemann e00190
Provides:       %{pname}%-openmpi-devel
Bernhard M. Wiedemann e00190
%endif
Bernhard M. Wiedemann e00190
%else # hpc
d6c152
%{requires_eq hdf5-%{compiler_family}%{?c_f_ver}%{?with_mpi:-%{mpi_flavor}%{?mpi_ver}}-hpc-devel}
Bernhard M. Wiedemann 8952ca
Requires:       lua-lmod
d6c152
%{requires_eq netcdf-%{compiler_family}%{?c_f_ver}%{?with_mpi:-%{mpi_flavor}%{?mpi_ver}}-hpc-devel}
Bernhard M. Wiedemann 8952ca
%hpc_requires_devel
Bernhard M. Wiedemann e00190
%endif  # ?hpc
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%description devel
Bernhard M. Wiedemann 8952ca
The Adaptable IO System (ADIOS) provides a way for scientists to
Bernhard M. Wiedemann 8952ca
describe the data in their code that may need to be written, read, or
Bernhard M. Wiedemann 8952ca
processed outside of the running simulation.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
This package contains all files needed to create projects that use
Bernhard M. Wiedemann 8952ca
the %{flavor} version of ADIOS.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%{?with_hpc:%{hpc_master_package -L devel}}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%package devel-static
Bernhard M. Wiedemann 8952ca
Summary:        Static libraries for %{name}
Bernhard M. Wiedemann 8952ca
Group:          Development/Libraries/Parallel
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%description devel-static
Bernhard M. Wiedemann 8952ca
The Adaptable IO System (ADIOS) provides a way for scientists to
Bernhard M. Wiedemann 8952ca
describe the data in their code that may need to be written, read, or
Bernhard M. Wiedemann 8952ca
processed outside of the running simulation.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann e00190
This package contains all the static libraries needed to create projects
Bernhard M. Wiedemann 8952ca
that use the %{flavor} version of ADIOS.
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%{?with_hpc:%{hpc_master_package -L devel-static}}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%prep
bf2a78
%autosetup -p1 -n %{pname}-%{version}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%build
Bernhard M. Wiedemann 8952ca
%{?with_hpc:%hpc_setup}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
export CC=gcc
Bernhard M. Wiedemann 8952ca
export CXX=g++
Bernhard M. Wiedemann 8952ca
export F77=gfortran
Bernhard M. Wiedemann 8952ca
export F9X=gfortran
Bernhard M. Wiedemann 8952ca
export FC=gfortran
Bernhard M. Wiedemann 8952ca
export MPICC=mpicc
Bernhard M. Wiedemann 8952ca
export MPICXX=mpicxx
Bernhard M. Wiedemann 8952ca
export MPIFC=mpif90
Bernhard M. Wiedemann e00190
export CFLAGS="-fPIC %{optflags}"
Bernhard M. Wiedemann 269c6d
%if 0%{?suse_version} >= 1550 || 0%{?c_f_ver} >= 10
Bernhard M. Wiedemann 269c6d
# https://github.com/ornladios/ADIOS/issues/206
Bernhard M. Wiedemann 269c6d
export FCFLAGS="-fPIC %{optflags} -fallow-argument-mismatch"
Bernhard M. Wiedemann 269c6d
%else
Bernhard M. Wiedemann e00190
export FCFLAGS="-fPIC %{optflags}"
Bernhard M. Wiedemann 269c6d
%endif
Bernhard M. Wiedemann 8952ca
export LDFLAGS="-pie"
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if %{without hpc}
Bernhard M. Wiedemann 8952ca
export MPICC="%{pkg_bindir}/mpicc"
Bernhard M. Wiedemann 8952ca
export MPIFC="%{pkg_bindir}/mpif90"
Bernhard M. Wiedemann 8952ca
export PATH=${PATH}:%{pkg_bindir}
Bernhard M. Wiedemann 8952ca
export LDFLAGS="${LDFLAGS} -L%{pkg_libdir}"
Bernhard M. Wiedemann 8952ca
export LD_LIBRARY_PATH="%{pkg_libdir}"
Bernhard M. Wiedemann 8952ca
%configure \
Bernhard M. Wiedemann 8952ca
  --prefix=%{pkg_prefix} \
Bernhard M. Wiedemann 8952ca
  --exec-prefix=%{_prefix} \
Bernhard M. Wiedemann 8952ca
  --bindir=%{pkg_bindir} \
Bernhard M. Wiedemann 8952ca
  --libdir=%{pkg_libdir} \
Bernhard M. Wiedemann 8952ca
  --includedir=%{pkg_incdir} \
Bernhard M. Wiedemann 8952ca
  --sysconfdir=%{pkg_sysconfdir} \
Bernhard M. Wiedemann 8952ca
  --datadir=%{pkg_datadir} \
Bernhard M. Wiedemann 8952ca
  --docdir=%{_docdir}/%{name} \
Bernhard M. Wiedemann 8952ca
%else
Bernhard M. Wiedemann 8952ca
%{hpc_setup}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%global _hpc_exec_prefix %{hpc_exec_prefix}
Bernhard M. Wiedemann 8952ca
%global hpc_exec_prefix %{_prefix}
Bernhard M. Wiedemann 8952ca
%{hpc_configure} \
Bernhard M. Wiedemann 8952ca
  --sysconfdir=%{pkg_sysconfdir} \
Bernhard M. Wiedemann 8952ca
%define hpc_exec_prefix %{expand:%_hpc_exec_prefix}
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
  --enable-fortran \
Bernhard M. Wiedemann 8952ca
  --with-phdf5="%{pkg_prefix}" \
Bernhard M. Wiedemann 8952ca
  --with-netcdf="%{pkg_prefix}" \
Bernhard M. Wiedemann 8952ca
  --with-zlib="%{_prefix}" \
Bernhard M. Wiedemann 8952ca
  --with-bzip2="%{_libdir}" \
Bernhard M. Wiedemann 8952ca
  --with-lz4="%{_libdir}" \
Bernhard M. Wiedemann 8952ca
  --without-evpath \
Bernhard M. Wiedemann 8952ca
  --without-fastbit \
Bernhard M. Wiedemann 8952ca
  --without-ffs \
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
make V=1 %{?_smp_mflags}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%install
Bernhard M. Wiedemann 8952ca
%if %{with hpc}
Bernhard M. Wiedemann 8952ca
%{hpc_setup}
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
%make_install
d6c152
for i in %{buildroot}/%{pkg_bindir}/{skel,*.py} %{buildroot}/%{pkg_libdir}/python/*.py; do
d6c152
    sed -e '1s@^\(#!.*\)\(python\)[23]*\( *.*\)@\1\2%{?my_py_version}\3@' -e '1s@/\env @/@' -i $i
d6c152
done
Bernhard M. Wiedemann 8952ca
%fdupes -s %{buildroot}/%{pkg_skeldir}/templates
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if %{with hpc}
Bernhard M. Wiedemann 8952ca
%{hpc_write_modules_files}
Bernhard M. Wiedemann 8952ca
#%%Module1.0#####################################################################
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
proc ModulesHelp { } {
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
puts stderr " "
Bernhard M. Wiedemann 8952ca
puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler"
Bernhard M. Wiedemann 8952ca
puts stderr "toolchain and the %{mpi_flavor} MPI stack."
Bernhard M. Wiedemann 8952ca
puts stderr "\nVersion %{version}\n"
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
}
Bernhard M. Wiedemann 8952ca
module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_flavor} MPI"
Bernhard M. Wiedemann 8952ca
module-whatis "Version: %{version}"
Bernhard M. Wiedemann 8952ca
module-whatis "Category: runtime library"
Bernhard M. Wiedemann 8952ca
module-whatis "Description: %{SUMMARY}"
Bernhard M. Wiedemann 8952ca
module-whatis "%{url}"
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
set     version                     %{version}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
depends-on phdf5
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
prepend-path    PATH                %{hpc_bindir}
Bernhard M. Wiedemann 8952ca
prepend-path    LD_LIBRARY_PATH     %{hpc_libdir}
Bernhard M. Wiedemann 8952ca
prepend-path    PYTHONPATH          %{hpc_libdir}/python
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
setenv          %{hpc_upcase %{pname}}_DIR        %{hpc_prefix}
Bernhard M. Wiedemann 8952ca
setenv          %{hpc_upcase %{pname}}_BIN        %{hpc_bindir}
Bernhard M. Wiedemann 8952ca
setenv          %{hpc_upcase %{pname}}_LIB        %{hpc_libdir}
Bernhard M. Wiedemann 8952ca
setenv          %{hpc_upcase %{pname}}_ETC        %{hpc_prefix}/etc
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
if {[file isdirectory  %{hpc_includedir}]} {
Bernhard M. Wiedemann 8952ca
prepend-path    LIBRARY_PATH        %{hpc_libdir}
Bernhard M. Wiedemann 8952ca
prepend-path    INCLUDE             %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
prepend-path    CPATH               %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
prepend-path    C_INCLUDE_PATH      %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
prepend-path    CPLUS_INCLUDE_PATH  %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
setenv          %{hpc_upcase %{pname}}_INC        %{hpc_includedir}
Bernhard M. Wiedemann 8952ca
}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
EOF
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%files
Bernhard M. Wiedemann 8952ca
%if %{with hpc}
Bernhard M. Wiedemann 8952ca
%{hpc_dirs}
Bernhard M. Wiedemann 8952ca
%{hpc_modules_files}
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
%{pkg_bindir}
d6c152
%{!?with_hpc:%config} %{pkg_sysconfdir}/*
Bernhard M. Wiedemann 8952ca
%dir %{pkg_prefix}/etc
Bernhard M. Wiedemann 8952ca
%{pkg_skeldir}
Bernhard M. Wiedemann 8952ca
%{pkg_libdir}/python
Bernhard M. Wiedemann 8952ca
%license COPYING
Bernhard M. Wiedemann 8952ca
%doc AUTHORS KNOWN_BUGS NEWS README.md TODO
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%files devel
Bernhard M. Wiedemann 8952ca
%{pkg_incdir}
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%files devel-static
Bernhard M. Wiedemann 8952ca
%{pkg_libdir}/*.a
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%if %{with hpc}
757175
%postun
Bernhard M. Wiedemann 8952ca
%hpc_module_delete_if_default
Bernhard M. Wiedemann 8952ca
%endif
Bernhard M. Wiedemann 8952ca
Bernhard M. Wiedemann 8952ca
%changelog