diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..55c830f
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,8 @@
+
+ serial
+ openmpi
+ mvapich2
+ gnu-openmpi-hpc
+ gnu-mvapich2-hpc
+ gnu-hpc
+
diff --git a/baselibs.conf b/baselibs.conf
deleted file mode 100644
index cdc50b2..0000000
--- a/baselibs.conf
+++ /dev/null
@@ -1,34 +0,0 @@
-libhdf5-100
-libhdf5-100-openmpi
-libhdf5-100-mvapich2
-libhdf5_hl100
-libhdf5_hl100-mvapich2
-libhdf5_hl100-openmpi
-libhdf5_cpp100
-libhdf5_hl_cpp100
-libhdf5_fortran100
-libhdf5_fortran100-openmpi
-libhdf5_fortran100-mvapich2
-libhdf5hl_fortran100
-libhdf5hl_fortran100-mvapich2
-libhdf5hl_fortran100-openmpi
-hdf5-devel
- requires -
- requires "libhdf5-100- = "
- requires "libhdf5_hl100- = "
- requires "libhdf5_cpp100- = "
- requires "libhdf5_hl_cpp100- = "
- requires "libhdf5_fortran100- = "
- requires "libhdf5hl_fortran100- = "
-hdf5-openmpi-devel
- requires -openmpi-
- requires "libhdf5-100-openmpi- = "
- requires "libhdf5_hl100-openmpi- = "
- requires "libhdf5_fortran100-openmpi- = "
- requires "libhdf5hl_fortran100-openmpi- = "
-hdf5-mvapich2-devel
- requires -openmpi-
- requires "libhdf5-100-mvapich2- = "
- requires "libhdf5_hl100-mvapich2- = "
- requires "libhdf5_fortran100-mvapich2- = "
- requires "libhdf5hl_fortran100-mvapich2- = "
diff --git a/baselibs.conf.in b/baselibs.conf.in
deleted file mode 100644
index 76092a9..0000000
--- a/baselibs.conf.in
+++ /dev/null
@@ -1,34 +0,0 @@
-libhdf5-@sonum@
-libhdf5-@sonum@-openmpi
-libhdf5-@sonum@-mvapich2
-libhdf5_hl@sonum_HL@
-libhdf5_hl@sonum_HL@-mvapich2
-libhdf5_hl@sonum_HL@-openmpi
-libhdf5_cpp@sonum_CXX@
-libhdf5_hl_cpp@sonum_HL_CXX@
-libhdf5_fortran@sonum_F@
-libhdf5_fortran@sonum_F@-openmpi
-libhdf5_fortran@sonum_F@-mvapich2
-libhdf5hl_fortran@sonum_HL_F@
-libhdf5hl_fortran@sonum_HL_F@-mvapich2
-libhdf5hl_fortran@sonum_HL_F@-openmpi
-hdf5-devel
- requires -
- requires "libhdf5-@sonum@- = "
- requires "libhdf5_hl@sonum_HL@- = "
- requires "libhdf5_cpp@sonum_CXX@- = "
- requires "libhdf5_hl_cpp@sonum_HL_CXX@- = "
- requires "libhdf5_fortran@sonum_F@- = "
- requires "libhdf5hl_fortran@sonum_HL_F@- = "
-hdf5-openmpi-devel
- requires -openmpi-
- requires "libhdf5-@sonum@-openmpi- = "
- requires "libhdf5_hl@sonum_HL@-openmpi- = "
- requires "libhdf5_fortran@sonum_F@-openmpi- = "
- requires "libhdf5hl_fortran@sonum_HL_F@-openmpi- = "
-hdf5-mvapich2-devel
- requires -openmpi-
- requires "libhdf5-@sonum@-mvapich2- = "
- requires "libhdf5_hl@sonum_HL@-mvapich2- = "
- requires "libhdf5_fortran@sonum_F@-mvapich2- = "
- requires "libhdf5hl_fortran@sonum_HL_F@-mvapich2- = "
diff --git a/hdf5.changes b/hdf5.changes
index b80fa0f..25c7b2a 100644
--- a/hdf5.changes
+++ b/hdf5.changes
@@ -1,3 +1,10 @@
+-------------------------------------------------------------------
+Fri Sep 8 14:35:32 UTC 2017 - eich@suse.com
+
+- Convert package to multibuild.
+- Add HPC build using environment modules
+ (FATE#321717, FATE#321710).
+
-------------------------------------------------------------------
Tue Aug 29 12:03:27 UTC 2017 - hpj@urpla.net
diff --git a/hdf5.spec b/hdf5.spec
index ab0e1e6..aacb421 100644
--- a/hdf5.spec
+++ b/hdf5.spec
@@ -16,14 +16,115 @@
#
-%if 0%{?sles_version}
-%define _mvapich2 1
-%endif
-%if 0%{?suse_version}
-%define _openmpi 1
+%global flavor @BUILD_FLAVOR@%{nil}
+
+#
+%define _do_check 1
+%define use_sz2 0
+
+%define vers 1.10.0
+%define _vers 1_10_0
+%define short_ver 1.10
+%define src_ver %{version}-patch1
+%define pname hdf5
+
+%if "%{flavor}" == ""
+ExclusiveArch: do_not_build
+ %define package_name %pname
+%endif
+
+%if "%{flavor}" == "serial"
+%undefine suffix
+%undefine mpi_flavor
+%bcond_with hpc
+%endif
+
+%if "%{flavor}" == "openmpi"
+%global mpi_flavor %{flavor}
+%bcond_with hpc
+%endif
+
+%if "%{flavor}" == "mvapich2"
+%global mpi_flavor %{flavor}
+%bcond_with hpc
+%endif
+
+%if "%{flavor}" == "gnu-hpc"
+%bcond_without hpc
+%global compiler_family gnu
+%undefine c_f_ver
+%endif
+
+%if "%{flavor}" == "gnu-openmpi-hpc"
+%bcond_without hpc
+%define compiler_family gnu
+%undefine c_f_ver
+%global mpi_flavor openmpi
+%define mpi_vers 1
+%endif
+
+%if "%{flavor}" == "gnu-mvapich2-hpc"
+%bcond_without hpc
+%define compiler_family gnu
+%undefine c_f_ver
+%global mpi_flavor mvapich2
+%endif
+
+%if "%{flavor}" == "gnu6-hpc"
+%bcond_without hpc
+%define compiler_family gnu
+%define c_f_ver 6
+%undefine mpi_flavor
+%endif
+
+%if "%{flavor}" == "gnu6-openmpi-hpc"
+%bcond_without hpc
+%define compiler_family gnu
+%define c_f_ver 6
+%global mpi_flavor openmpi
+%define mpi_vers 1
+%endif
+
+%if "%{flavor}" == "gnu6-mvapich2-hpc"
+%bcond_without hpc
+%define compiler_family gnu
+%define c_f_ver 6
+%global mpi_flavor mvapich2
+%endif
+
+%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
+%{?with_hpc:%{!?compiler_family:%global compiler_family gnu}}
+%{?with_mpi:%{!?mpi_flavor:%global mpi_flavor openmpi}}
+
+%{?with_mpi:%global my_suffix -%{mpi_flavor}}
+
+%if %{with hpc}
+%{hpc_init -c %compiler_family %{?with_mpi:-m %mpi_flavor} %{?c_f_ver:-v %{c_f_ver}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}}
+%{?with_mpi:%global hpc_module_pname p%{pname}}
+ %define my_prefix %hpc_prefix
+ %define my_bindir %hpc_bindir
+ %define my_libdir %hpc_libdir
+ %define my_incdir %hpc_includedir
+ %define package_name %{hpc_package_name %_vers}
+ %define libname(l:s:) lib%{pname}%{-l*}%{hpc_package_name_tail %{?_vers}}
+%else
+ %if %{without mpi}
+ %define my_prefix %_prefix
+ %define my_bindir %_bindir
+ %define my_libdir %_libdir
+ %define my_incdir %_includedir
+ %else
+ %define my_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}
+ %define my_bindir %{my_prefix}/bin
+ %define my_libdir %{my_prefix}/%{_lib}/
+ %define my_incdir %{my_prefix}/include/
+ %endif
+ %if 0%{!?package_name:1}
+ %define package_name %pname%{?my_suffix}
+ %endif
+ %define libname(l:s:) lib%{pname}%{!-l:-}%{-l*}%{-s*}%{?my_suffix}
%endif
-%define _mpi %{?_openmpi:openmpi} %{?_mvapich2:mvapich2}
# TODO: The so numbers autodetected by update_so_version.sh
# do not match the so numbers that are actually buit.
%define sonum 100
@@ -34,19 +135,16 @@
%define sonum_HL_F 100
%define sonum_TOOLS 100
-Name: hdf5
-Version: 1.10.0
+Name: %{package_name}
+Version: %vers
Release: 0
-%define short_ver 1.10
-%define src_ver %{version}-patch1
Summary: Command-line programs for the HDF5 scientific data format
License: BSD-3-Clause
Group: Productivity/Scientific/Other
Url: http://www.hdfgroup.org/HDF5/
-Source0: http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%{short_ver}/hdf5-%{src_ver}/src/hdf5-%{src_ver}.tar.bz2
-Source1000: baselibs.conf
-Source1001: baselibs.conf.in
-Source1002: update_so_version.sh
+Source0: http://www.hdfgroup.org/ftp/HDF5/releases/%{pname}-%{short_ver}/%{pname}-%{src_ver}/src/%{pname}-%{src_ver}.tar.bz2
+Source100: _multibuild
+Source1000: update_so_version.sh
Patch0: hdf5-LD_LIBRARY_PATH.patch
Patch1: hdf5-non_void_return.patch
# not really needed but we want to get noticed if hdf5 doesn' t know our host
@@ -59,24 +157,34 @@ Patch6: hdf5-buildcompare.patch
Patch7: hdf5-mpi.patch
Patch8: hdf5_disable_testphdf5.patch
BuildRequires: fdupes
-BuildRequires: gcc-c++
-BuildRequires: gcc-fortran
BuildRequires: krb5-devel
+%if 0%{?use_sz2}
BuildRequires: libsz2-devel
+%endif
BuildRequires: openssl-devel
BuildRequires: zlib-devel
-%if 0%{?_openmpi}
-BuildRequires: openmpi-devel
-%endif
-%if 0%{?_mvapich2}
-BuildRequires: mvapich2-devel
-%endif
-Requires: libhdf5-%{sonum} = %{version}
-Requires: libhdf5_cpp%{sonum_CXX} = %{version}
-Requires: libhdf5_fortran%{sonum_F} = %{version}
-Requires: libhdf5_hl%{sonum_HL} = %{version}
-Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
+%if %{without hpc}
+BuildRequires: gcc-c++
+BuildRequires: gcc-fortran
+ %if %{with mpi}
+BuildRequires: %{flavor}-devel
+ %else
+Requires: lib%{pname}_cpp%{sonum_CXX} = %{version}
+Requires: lib%{pname}_hl_cpp%{sonum_HL_CXX} = %{version}
+ %endif
+Requires: lib%{pname}-%{sonum} = %{version}
+Requires: lib%{pname}_fortran%{sonum_F} = %{version}
+Requires: lib%{pname}_hl%{sonum_HL} = %{version}
+Requires: lib%{pname}hl_fortran%{sonum_HL_F} = %{version}
+%else # hpc
+%hpc_requires
+BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
+BuildRequires: lua-lmod
+BuildRequires: suse-hpc
+ %if %{with mpi}
+BuildRequires: %{mpi_flavor}%{?mpi_vers}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel
+ %endif
+%endif # ?hpc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -97,46 +205,19 @@ megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
-This package contains utility functions for working with HDF5 files.
-
-%package -n %{name}-openmpi
-Summary: Command-line programs for the HDF5 scientific data format
-Group: Productivity/Scientific/Other
-Requires: libhdf5-%{sonum}-openmpi = %{version}
-Requires: libhdf5_fortran%{sonum_F}-openmpi = %{version}
-Requires: libhdf5_hl%{sonum_HL}-openmpi = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F}-openmpi = %{version}
-
-%description -n %{name}-openmpi
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the openmpi version utility functions for working
+This package contains the %{flavor} version utility functions for working
with HDF5 files.
-%package -n %{name}-mvapich2
-Summary: Command-line programs for the HDF5 scientific data format
+%package -n %{libname -s %{sonum}}
+Summary: Shared libraries for the HDF5 scientific data format
+# To avoid unresolvable errors due to multiple providers of the library
Group: Productivity/Scientific/Other
-Requires: libhdf5-%{sonum}-mvapich2 = %{version}
-Requires: libhdf5_fortran%{sonum_F}-mvapich2 = %{version}
-Requires: libhdf5_hl%{sonum_HL}-mvapich2 = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F}-mvapich2 = %{version}
+Provides: %{libname} = %{version}
+Obsoletes: %{libname} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?with_hpc:Requires: %{name}-module = %version}
-%description -n %{name}-mvapich2
+%description -n %{libname -s %{sonum}}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -154,17 +235,52 @@ megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
-This package contains the mvapich2 version utility functions for working
-with HDF5 files.
+This package contains the %{flavor} version of the HDF5 runtime libraries.
-%package -n libhdf5-%{sonum}
+%{?with_hpc:%{hpc_master_package -l -n lib%{pname}%{hpc_package_name_tail}}}
+
+%package -n %{libname -l _hl -s %{sonum_HL}}
+Summary: High-level shared libraries for the HDF5 scientific data format
+# To avoid unresolvable errors due to multiple providers of the library
+Group: Productivity/Scientific/Other
+Provides: %{libname -l _hl} = %{version}
+Obsoletes: %{libname -l _hl} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?with_hpc:Requires: %{name}-module = %version}
+
+%description -n %{libname -l _hl -s %{sonum_HL}}
+HDF5 is a data model, library, and file format for storing and
+managing data. It supports an unlimited variety of datatypes, and
+is designed for flexible and efficient I/O and for high volume and
+complex data. HDF5 is portable and is extensible, allowing
+applications to evolve in their use of HDF5.
+
+The HDF5 technology suite is designed to organize, store, discover,
+access, analyze, share, and preserve diverse, complex data in
+continuously evolving heterogeneous computing and storage environments.
+
+HDF5 supports all types of data stored digitally, regardless of origin
+or size. Petabytes of remote sensing data collected by satellites,
+terabytes of computational results from nuclear testing models, and
+megabytes of high-resolution MRI brain scans are stored in HDF5 files,
+together with metadata necessary for efficient data sharing,
+processing, visualization, and archiving.
+
+This package contains the %{flavor} version of the high-level HDF5
+runtime libraries.
+
+%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl%{hpc_package_name_tail}}}
+
+%package -n %{libname -l _cpp -s %{sonum_CXX}}
Summary: Shared libraries for the HDF5 scientific data format
# To avoid unresolvable errors due to multiple providers of the library
Group: Productivity/Scientific/Other
-Provides: libhdf5 = %{version}
-Obsoletes: libhdf5 < %{version}
+Provides: %{libname -l _cpp} = %{version}
+Obsoletes: %{libname -l _cpp} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?with_hpc:Requires: %{name}-module = %version}
-%description -n libhdf5-%{sonum}
+%description -n %{libname -l _cpp -s %{sonum_CXX}}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -184,68 +300,18 @@ processing, visualization, and archiving.
This package contains the HDF5 runtime libraries.
-%package -n libhdf5-%{sonum}-openmpi
-Summary: Shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5-openmpi = %{version}
-Obsoletes: libhdf5-openmpi < %{version}
+%{!?with_mpi:%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_cpp%{hpc_package_name_tail}}}}
-%description -n libhdf5-%{sonum}-openmpi
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the openmpi version of the HDF5 runtime libraries.
-
-%package -n libhdf5-%{sonum}-mvapich2
-Summary: Shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5-mvapich2 = %{version}
-Obsoletes: libhdf5-mvapich2 < %{version}
-
-%description -n libhdf5-%{sonum}-mvapich2
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the mvapich2 version of the HDF5 runtime libraries.
-
-%package -n libhdf5_hl%{sonum_HL}
+%package -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}}
Summary: High-level shared libraries for the HDF5 scientific data format
# To avoid unresolvable errors due to multiple providers of the library
Group: Productivity/Scientific/Other
-Provides: libhdf5_hl = %{version}
-Obsoletes: libhdf5_hl < %{version}
+Provides: %{libname -l _hl_cpp} = %{version}
+Obsoletes: %{libname -l _hl_cpp} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?with_hpc:Requires: %{name}-module = %version}
-%description -n libhdf5_hl%{sonum_HL}
+%description -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -265,70 +331,18 @@ processing, visualization, and archiving.
This package contains the the high-level HDF5 runtime libraries.
-%package -n libhdf5_hl%{sonum_HL}-openmpi
-Summary: High-level shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5_hl-openmpi = %{version}
-Obsoletes: libhdf5_hl-openmpi < %{version}
+%{!?with_mpi:%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl_cpp%{hpc_package_name_tail}}}}
-%description -n libhdf5_hl%{sonum_HL}-openmpi
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the openmpi version of the high-level HDF5
-runtime libraries.
-
-%package -n libhdf5_hl%{sonum_HL}-mvapich2
-Summary: High-level shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5_hl-mvapich2 = %{version}
-Obsoletes: libhdf5_hl-mvapich2 < %{version}
-
-%description -n libhdf5_hl%{sonum_HL}-mvapich2
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the mvapich2 version of the high-level HDF5
-runtime libraries.
-
-%package -n libhdf5_cpp%{sonum_CXX}
+%package -n %{libname -l _fortran -s %{sonum_F}}
Summary: Shared libraries for the HDF5 scientific data format
# To avoid unresolvable errors due to multiple providers of the library
Group: Productivity/Scientific/Other
-Provides: libhdf5_cpp = %{version}
-Obsoletes: libhdf5_cpp < %{version}
+Provides: %{libname -l _fortran} = %{version}
+Obsoletes: %{libname -l _fortran} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?with_hpc:Requires: %{name}-module = %version}
-%description -n libhdf5_cpp%{sonum_CXX}
+%description -n %{libname -l _fortran -s %{sonum_F}}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -346,16 +360,20 @@ megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
-This package contains the HDF5 runtime libraries.
+This package contains the %{flavor} version of the HDF5 runtime libraries.
-%package -n libhdf5_hl_cpp%{sonum_HL_CXX}
+%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_fortran%{hpc_package_name_tail}}}
+
+%package -n %{libname -l hl_fortran -s %{sonum_HL_F}}
Summary: High-level shared libraries for the HDF5 scientific data format
# To avoid unresolvable errors due to multiple providers of the library
Group: Productivity/Scientific/Other
-Provides: libhdf5_hl_cpp = %{version}
-Obsoletes: libhdf5_hl_cpp < %{version}
+Provides: %{libname -l hl_fortran} = %{version}
+Obsoletes: %{libname -l hl_fortran} < %{version}
+%{?with_hpc:Provides: libhdf5%{?with_mpi:-%{mpi_flavor}}-hpc = %{version}}
+%{?whit_hpc:Requires: %{name}-module = %version}
-%description -n libhdf5_hl_cpp%{sonum_HL_CXX}
+%description -n %{libname -l hl_fortran -s %{sonum_HL_F}}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -373,177 +391,16 @@ megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
-This package contains the the high-level HDF5 runtime libraries.
-
-%package -n libhdf5_fortran%{sonum_F}
-Summary: Shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5_fortran = %{version}
-Obsoletes: libhdf5_fortran < %{version}
-
-%description -n libhdf5_fortran%{sonum_F}
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the HDF5 runtime libraries.
-
-%package -n libhdf5_fortran%{sonum_F}-openmpi
-Summary: Shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5_fortran-openmpi = %{version}
-Obsoletes: libhdf5_fortran-openmpi < %{version}
-
-%description -n libhdf5_fortran%{sonum_F}-openmpi
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the openmpi version of the HDF5 runtime libraries.
-
-%package -n libhdf5_fortran%{sonum_F}-mvapich2
-Summary: Shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5_fortran-mvapich2 = %{version}
-Obsoletes: libhdf5_fortran-mvapich2 < %{version}
-
-%description -n libhdf5_fortran%{sonum_F}-mvapich2
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the mvapich2 version of the HDF5 runtime libraries.
-
-%package -n libhdf5hl_fortran%{sonum_HL_F}
-Summary: High-level shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5hl_fortran = %{version}
-Obsoletes: libhdf5hl_fortran < %{version}
-
-%description -n libhdf5hl_fortran%{sonum_HL_F}
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the the high-level HDF5 runtime libraries.
-
-%package -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
-Summary: High-level shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5hl_fortran-openmpi = %{version}
-Obsoletes: libhdf5hl_fortran-openmpi < %{version}
-
-%description -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the openmpi version of the high-level HDF5
+This package contains the %{flavor} version of the high-level HDF5
runtime libraries.
-%package -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
-Summary: High-level shared libraries for the HDF5 scientific data format
-# To avoid unresolvable errors due to multiple providers of the library
-Group: Productivity/Scientific/Other
-Provides: libhdf5hl_fortran-mvapich2 = %{version}
-Obsoletes: libhdf5hl_fortran-mvapich2 < %{version}
+%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl_fortran%{hpc_package_name_tail}}}
-%description -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains the mvapich2 version of the high-level HDF5
-runtime libraries.
-
-%package devel-data
+%package -n %{pname}-devel-data
Summary: Development data files for %{name}
Group: Development/Libraries/Other
-%description devel-data
+%description -n %{pname}-devel-data
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -565,18 +422,23 @@ This package contains generic files needed to create projects that use
any version of HDF5.
%package devel
-Summary: Development files for %{name}
-Group: Development/Libraries/Other
+Summary: Development files for %{name}%{?my_suffix}
+Group: Development/Libraries/Parallel
+%if %{without mpi}
+Requires: %{libname -l _cpp -s %{sonum_CXX}} = %{version}
+Requires: %{libname -l _hl_cpp -s %{sonum_HL_CXX}} = %{version}
+%endif
Requires: %{name} = %{version}
-Requires: %{name}-devel-data = %{version}
+Requires: %{pname}-devel-data = %{version}
+%if 0%{?use_sz2}
Requires: libsz2-devel
+%endif
+Requires: %{libname -s %{sonum}} = %{version}
# Required by Fortran programs?
-Requires: libhdf5-%{sonum} = %{version}
-Requires: libhdf5_cpp%{sonum_CXX} = %{version}
-Requires: libhdf5_fortran%{sonum_F} = %{version}
-Requires: libhdf5_hl%{sonum_HL} = %{version}
-Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
+Requires: %{libname -l _fortran -s %{sonum_F}} = %{version}
+Requires: %{libname -l _hl -s %{sonum_HL}} = %{version}
+Requires: %{libname -l hl_fortran -s %{sonum_HL_F}} = %{version}
+%{?with_hpc:%hpc_requires_devel}
%description devel
HDF5 is a data model, library, and file format for storing and
@@ -597,78 +459,14 @@ together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains all files needed to create projects that use
-HDF5.
+the %{flavor} version of HDF5.
-%package openmpi-devel
-Summary: Development files for %{name}-openmpi
-Group: Development/Libraries/Parallel
-Requires: %{name}-devel-data = %{version}
-Requires: %{name}-openmpi = %{version}
-Requires: libsz2-devel
-# Required by Fortran programs?
-Requires: libhdf5-%{sonum}-openmpi = %{version}
-Requires: libhdf5_fortran%{sonum_F}-openmpi = %{version}
-Requires: libhdf5_hl%{sonum_HL}-openmpi = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F}-openmpi = %{version}
-
-%description openmpi-devel
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains all files needed to create projects that use
-the openmpi version of HDF5.
-
-%package mvapich2-devel
-Summary: Development files for %{name}-mvapich2
-Group: Development/Libraries/Parallel
-Requires: %{name}-devel-data = %{version}
-Requires: %{name}-mvapich2 = %{version}
-Requires: libsz2-devel
-# Required by Fortran programs?
-Requires: libhdf5-%{sonum}-mvapich2 = %{version}
-Requires: libhdf5_fortran%{sonum_F}-mvapich2 = %{version}
-Requires: libhdf5_hl%{sonum_HL}-mvapich2 = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F}-mvapich2 = %{version}
-
-%description mvapich2-devel
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package contains all files needed to create projects that use
-the mvapich2 version of HDF5.
+%{?with_hpc:%{hpc_master_package devel}}
%package devel-static
-Summary: Static development files for %{name}
-Group: Development/Libraries/Other
-Requires: %{name}-devel = %{version}
+Summary: Static development files for %{name}%{?my_suffix}
+Group: Development/Libraries/Parallel
+Requires: %{name}%{?my_suffix}-devel = %{version}
%description devel-static
HDF5 is a data model, library, and file format for storing and
@@ -688,69 +486,19 @@ megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
-This package provides the static libraries for HDF5.
+This package provides the static libraries for the %{flavor} version of HDF5.
-%package openmpi-devel-static
-Summary: Static development files for %{name}-openmpi
-Group: Development/Libraries/Parallel
-Requires: %{name}-openmpi-devel = %{version}
-
-%description openmpi-devel-static
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package provides the static libraries for the openmpi version of HDF5.
-
-%package mvapich2-devel-static
-Summary: Static development files for %{name}-mvapich2
-Group: Development/Libraries/Parallel
-Requires: %{name}-mvapich2-devel = %{version}
-
-%description mvapich2-devel-static
-HDF5 is a data model, library, and file format for storing and
-managing data. It supports an unlimited variety of datatypes, and
-is designed for flexible and efficient I/O and for high volume and
-complex data. HDF5 is portable and is extensible, allowing
-applications to evolve in their use of HDF5.
-
-The HDF5 technology suite is designed to organize, store, discover,
-access, analyze, share, and preserve diverse, complex data in
-continuously evolving heterogeneous computing and storage environments.
-
-HDF5 supports all types of data stored digitally, regardless of origin
-or size. Petabytes of remote sensing data collected by satellites,
-terabytes of computational results from nuclear testing models, and
-megabytes of high-resolution MRI brain scans are stored in HDF5 files,
-together with metadata necessary for efficient data sharing,
-processing, visualization, and archiving.
-
-This package provides the static libraries for the mvapich2 version of HDF5.
-
-%package examples
+%package -n %{pname}-examples
Summary: Examples for %{name}
Group: Documentation/Other
-Requires: libhdf5-%{sonum} = %{version}
-Requires: libhdf5_cpp%{sonum_CXX} = %{version}
-Requires: libhdf5_fortran%{sonum_F} = %{version}
-Requires: libhdf5_hl%{sonum_HL} = %{version}
-Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
-Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
+Requires: %{libname -l _cpp -s %{sonum_CXX}} = %{version}
+Requires: %{libname -l _fortran -s %{sonum_F}} = %{version}
+Requires: %{libname -l _hl -s %{sonum_HL}} = %{version}
+Requires: %{libname -l _hl_cpp -s %{sonum_HL_CXX}} = %{version}
+Requires: %{libname -l hl_fortran -s %{sonum_HL_F}} = %{version}
+Requires: %{libname -s %{sonum}} = %{version}
-%description examples
+%description -n %{pname}-examples
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
@@ -770,8 +518,38 @@ processing, visualization, and archiving.
This package provides examples of HDF5 library use.
+%if %{with hpc}
+%package module
+Summary: Module files for %{name}%{?my_suffix}
+Group: Development/Libraries/Parallel
+Provides: %{name}-module = %version
+BuildArch: noarch
+
+%description module
+HDF5 is a data model, library, and file format for storing and
+managing data. It supports an unlimited variety of datatypes, and
+is designed for flexible and efficient I/O and for high volume and
+complex data. HDF5 is portable and is extensible, allowing
+applications to evolve in their use of HDF5.
+
+The HDF5 technology suite is designed to organize, store, discover,
+access, analyze, share, and preserve diverse, complex data in
+continuously evolving heterogeneous computing and storage environments.
+
+HDF5 supports all types of data stored digitally, regardless of origin
+or size. Petabytes of remote sensing data collected by satellites,
+terabytes of computational results from nuclear testing models, and
+megabytes of high-resolution MRI brain scans are stored in HDF5 files,
+together with metadata necessary for efficient data sharing,
+processing, visualization, and archiving.
+
+This package contains the environment module needed for the HDF5
+library packages.
+%endif
+
%prep
-%setup -q -n %{name}-%{version}-patch1
+%{?with_hpc: %hpc_debug}
+%setup -q -n %{pname}-%{version}-patch1
%patch0 -p1 -b .LD_LIBRARY_PATH
%patch1 -p0 -b .non_void_return
%patch2 -p0 -b .abort_unknown_host_config
@@ -783,21 +561,15 @@ This package provides examples of HDF5 library use.
%patch7 -p1
%patch8 -p1
-echo "prepare parallel builds: %{_mpi}"
-for build_dir in build %{_mpi}; do
- mkdir $build_dir
- ln -s ../configure $build_dir
-done
-
%build
+
+%{?with_hpc:%hpc_setup}
+%{?with_hpc:%hpc_debug}
+
export CC=gcc
export CXX=g++
export F9X=gfortran
export CFLAGS="%{optflags}"
-# workaround for known gcc issue, see RELEASE.txt
-if gcc --version |grep -q " 4\.[68]"; then
- export CFLAGS="${CFLAGS/-O2/-O0}"
-fi
%ifarch %arm
# we want to have useful H5_CFLAGS on arm too
test -e config/linux-gnueabi || cp config/linux-gnu config/linux-gnueabi
@@ -813,70 +585,70 @@ test -e config/linux-gnueabi || cp config/linux-gnu config/linux-gnueabi
# C++ code is thread-safe. Since our users are going to be
# accessing this through other programs, this doesn't matter.
-pushd build
+%if %{without hpc}
+ %if %{with mpi}
+export CC="%{my_bindir}/mpicc"
+export FC="%{my_bindir}/mpif90"
+export F77="%{my_bindir}/mpif77"
+export LD_LIBRARY_PATH="%{my_libdir}"
+ %endif
%configure \
+ %if %{with mpi}
+ --prefix=%{my_prefix} \
+ --exec-prefix=%{_prefix} \
+ --bindir=%{my_bindir} \
+ --libdir=%{my_libdir} \
+ --includedir=%{my_incdir} \
+ --datadir=%{_datadir} \
+ %endif
--docdir=%{_docdir}/%{name} \
+%else
+%global _hpc_exec_prefix %hpc_exec_prefix
+%global hpc_exec_prefix %_prefix
+ %if %{with mpi}
+export CC=mpicc
+export CXX=mpicxx
+export F77=mpif77
+export FC=mpif90
+export MPICC=mpicc
+export MPIFC=mpifc
+export MPICXX=mpicxx
+ %endif
+%hpc_configure \
+%define hpc_exec_prefix %{expand:%_hpc_exec_prefix}
+%endif
--disable-dependency-tracking \
--enable-fortran \
- --enable-fortran2003 \
--enable-unsupported \
--enable-hl \
--enable-shared \
- --enable-cxx \
--enable-threadsafe \
--enable-build-mode=production \
+%if %{with mpi}
+ --enable-parallel \
+%else
+ --enable-cxx \
+ %if 0%{?use_sz2}
--with-szlib \
+ %endif
+%endif
--with-pthread
make V=1 %{?_smp_mflags}
-popd
-
-for mpi in %{_mpi};
-do
-pushd $mpi
-export CC="%{_libdir}/mpi/gcc/$mpi/bin/mpicc"
-export FC="%{_libdir}/mpi/gcc/$mpi/bin/mpif90"
-export F77="%{_libdir}/mpi/gcc/$mpi/bin/mpif77"
-export LD_LIBRARY_PATH="%{_libdir}/mpi/gcc/$mpi/%{_lib}"
-%configure \
- --docdir=%{_docdir}/%{name} \
- --prefix=%{_libdir}/mpi/gcc/$mpi \
- --exec-prefix=%{_libdir}/mpi/gcc/$mpi \
- --bindir=%{_libdir}/mpi/gcc/$mpi/bin \
- --libdir=%{_libdir}/mpi/gcc/$mpi/%{_lib} \
- --datadir=%{_libdir}/mpi/gcc/$mpi/share \
- --includedir=%{_libdir}/mpi/gcc/$mpi/include \
- --disable-dependency-tracking \
- --enable-fortran \
- --enable-fortran2003 \
- --enable-unsupported \
- --enable-hl \
- --enable-shared \
- --enable-threadsafe \
- --enable-parallel \
- --enable-build-mode=production \
- --with-pthread
-
-make %{?_smp_mflags}
-popd
-done
%install
-# install serial and parallel builds, (the serial one will win in case of
-# duplicate files)
-for build_dir in %{_mpi} build; do
- make install DESTDIR=%{buildroot} -C "$build_dir"
-done
+%{?with_hpc:%hpc_setup}
+%{?with_hpc:%hpc_debug}
+
+make install DESTDIR=%{buildroot}
find %{buildroot} -type f -name "*.la" -delete -print
+
+%if %{without mpi}
find %{buildroot}%{_datadir}/hdf5_examples -type f \
| grep -v ".sh$" | xargs chmod 644
-# delete examples from parallel builds
-rm -rf %{buildroot}%{_libdir}/mpi/gcc/*/share/hdf5_examples
-%if 0%{?suse_version} >= 1110
-%fdupes -s %{buildroot}/%{_datadir}
-%endif
+ %if %{without hpc}
# rpm macro for version checking
mkdir -p %{buildroot}%{_sysconfdir}/rpm
cat > %{buildroot}%{_sysconfdir}/rpm/macros.hdf5 < %{buildroot}%{_sysconfdir}/rpm/macros.hdf5 <= 1110
+%fdupes -s %{buildroot}/%{_datadir}
+%endif
+
+%if %{without hpc}
+# baselib looks different for different flavors - generate it on the fly
+cat > %{_sourcedir}/baselib.conf <
+ requires "libhdf5-%{sonum}%{?my_suffix}- = "
+ requires "libhdf5_hl%{sonum_HL}%{?my_suffix}- = "
+ requires "libhdf5_fortran%{sonum_HL_F}%{?my_suffix}- = "
+%if %{without mpi}
+ requires "libhdf5_cpp%{sonum_CXX}%{?my_suffix}- = "
+ requires "libhdf5_hl_cpp%{sonum_HL_CXX}%{?my_suffix}- = "
+%endif
+EOF
+%else
+%{hpc_write_pkgconfig -n hdf5 -l libhdf5}
+%{hpc_write_pkgconfig -n hdf5_hl -l libhdf5_hl}
+%{hpc_write_pkgconfig -n hdf5_fortran -l libhdf5_fortran}
+%{hpc_write_pkgconfig -n hdf5_hl_fortran -l libhdfhl_fortran}
+%if %{without mpi}
+%{hpc_write_pkgconfig -n hdf5_cpp -l libhdf5_cpp}
+%{hpc_write_pkgconfig -n hdf5_hl_cpp -l libhdf5_hl_cpp}
+%endif
+
+%hpc_write_modules_files
+#%%Module1.0#####################################################################
+
+proc ModulesHelp { } {
+
+puts stderr " "
+puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler toolchain."
+puts stderr "\nVersion %{version}\n"
+
+}
+module-whatis "Name: %{pname} built with %{compiler_family} toolchain"
+module-whatis "Version: %{version}"
+module-whatis "Category: runtime library"
+module-whatis "Description: %{summary}"
+module-whatis "%{url}"
+
+set version %{version}
+
+prepend-path PATH %{hpc_bindir}
+prepend-path LD_LIBRARY_PATH %{hpc_libdir}
+
+setenv %{hpc_upcase %pname}_DIR %{hpc_prefix}
+setenv %{hpc_upcase %pname}_BIN %{hpc_bindir}
+setenv %{hpc_upcase %pname}_LIB %{hpc_libdir}
+
+if {[file isdirectory %{hpc_includedir}]} {
+prepend-path LIBRARY_PATH %{hpc_libdir}
+prepend-path CPATH %{hpc_includedir}
+prepend-path C_INCLUDE_PATH %{hpc_includedir}
+prepend-path CPLUS_INCLUDE_PATH %{hpc_includedir}
+prepend-path INCLUDE %{hpc_includedir}
+
+setenv %{hpc_upcase %pname}_INC %{hpc_includedir}
+}
+
+family "%pname"
+
+EOF
+%endif
+
+%if 0%{?_do_check}
%check
%if 0%{?qemu_user_space_build}
# default timeout is 1200 seconds
export HDF5_ALARM_SECONDS=3600
%endif
-make %{?_smp_mflags} -C build check
+%if %{with mpi}
export HDF5_Make_Ignore=yes
-for mpi in %{_mpi}; do
- make -C $mpi check
-done
-
-%post -n libhdf5-%{sonum} -p /sbin/ldconfig
-%postun -n libhdf5-%{sonum} -p /sbin/ldconfig
-%post -n libhdf5_hl%{sonum_HL} -p /sbin/ldconfig
-%postun -n libhdf5_hl%{sonum_HL} -p /sbin/ldconfig
-%post -n libhdf5_cpp%{sonum_CXX} -p /sbin/ldconfig
-%postun -n libhdf5_cpp%{sonum_CXX} -p /sbin/ldconfig
-%post -n libhdf5_hl_cpp%{sonum_HL_CXX} -p /sbin/ldconfig
-%postun -n libhdf5_hl_cpp%{sonum_HL_CXX} -p /sbin/ldconfig
-%post -n libhdf5_fortran%{sonum_F} -p /sbin/ldconfig
-%postun -n libhdf5_fortran%{sonum_F} -p /sbin/ldconfig
-%post -n libhdf5hl_fortran%{sonum_HL_F} -p /sbin/ldconfig
-%postun -n libhdf5hl_fortran%{sonum_HL_F} -p /sbin/ldconfig
-
-%if 0%{?_openmpi}
-%post -n libhdf5-%{sonum}-openmpi -p /sbin/ldconfig
-%postun -n libhdf5-%{sonum}-openmpi -p /sbin/ldconfig
-%post -n libhdf5_hl%{sonum_HL}-openmpi -p /sbin/ldconfig
-%postun -n libhdf5_hl%{sonum_HL}-openmpi -p /sbin/ldconfig
-%post -n libhdf5_fortran%{sonum_F}-openmpi -p /sbin/ldconfig
-%postun -n libhdf5_fortran%{sonum_F}-openmpi -p /sbin/ldconfig
-%post -n libhdf5hl_fortran%{sonum_HL_F}-openmpi -p /sbin/ldconfig
-%postun -n libhdf5hl_fortran%{sonum_HL_F}-openmpi -p /sbin/ldconfig
+%endif
+%{?with_hpc:%hpc_setup}
+make %{?_smp_mflags} check
%endif
-%if 0%{?_mvapich2}
-%post -n libhdf5-%{sonum}-mvapich2 -p /sbin/ldconfig
-%postun -n libhdf5-%{sonum}-mvapich2 -p /sbin/ldconfig
-%post -n libhdf5_hl%{sonum_HL}-mvapich2 -p /sbin/ldconfig
-%postun -n libhdf5_hl%{sonum_HL}-mvapich2 -p /sbin/ldconfig
-%post -n libhdf5_fortran%{sonum_F}-mvapich2 -p /sbin/ldconfig
-%postun -n libhdf5_fortran%{sonum_F}-mvapich2 -p /sbin/ldconfig
-%post -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2 -p /sbin/ldconfig
-%postun -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2 -p /sbin/ldconfig
+%if %{without mpi}
+%post -n %{libname -l _cpp -s %{sonum_CXX}} -p /sbin/ldconfig
+%postun -n %{libname -l _cpp -s %{sonum_CXX}} -p /sbin/ldconfig
+%post -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} -p /sbin/ldconfig
+%postun -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} -p /sbin/ldconfig
%endif
-%files
-%defattr(-,root,root)
-%{_bindir}/gif2h5
-%{_bindir}/h52gif
-%{_bindir}/h5clear
-%{_bindir}/h5copy
-%{_bindir}/h5debug
-%{_bindir}/h5diff
-%{_bindir}/h5dump
-%{_bindir}/h5format_convert
-%{_bindir}/h5import
-%{_bindir}/h5jam
-%{_bindir}/h5ls
-%{_bindir}/h5mkgrp
-%{_bindir}/h5perf_serial
-%{_bindir}/h5redeploy
-%{_bindir}/h5repack
-%{_bindir}/h5repart
-%{_bindir}/h5stat
-%{_bindir}/h5unjam
-%{_bindir}/h5watch
+%post -n %{libname -s %{sonum}} -p /sbin/ldconfig
+%postun -n %{libname -s %{sonum}} -p /sbin/ldconfig
+%post -n %{libname -l _hl -s %{sonum_HL}} -p /sbin/ldconfig
+%postun -n %{libname -l _hl -s %{sonum_HL}} -p /sbin/ldconfig
+%post -n %{libname -l _fortran -s %{sonum_F}} -p /sbin/ldconfig
+%postun -n %{libname -l _fortran -s %{sonum_F}} -p /sbin/ldconfig
+%post -n %{libname -l hl_fortran -s %{sonum_HL_F}} -p /sbin/ldconfig
+%postun -n %{libname -l hl_fortran -s %{sonum_HL_F}} -p /sbin/ldconfig
-%files -n libhdf5-%{sonum}
-%defattr(-,root,root)
-%doc COPYING ACKNOWLEDGMENTS README.txt
-%doc release_docs/HISTORY-1_8_0-1_10_0.txt
-%doc release_docs/RELEASE.txt
-%defattr(0755,root,root)
-%{_libdir}/libhdf5.so.%{sonum}
-%{_libdir}/libhdf5.so.%{sonum}.*
+%if %{with hpc}
+%postun module
+%hpc_module_delete_if_default
+%endif
-%files -n libhdf5_hl%{sonum_HL}
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/libhdf5_hl.so.%{sonum_HL}
-%{_libdir}/libhdf5_hl.so.%{sonum_HL}.*
-
-%files -n libhdf5_cpp%{sonum_CXX}
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/libhdf5_cpp.so.%{sonum_CXX}
-%{_libdir}/libhdf5_cpp.so.%{sonum_CXX}.*
-
-%files -n libhdf5_hl_cpp%{sonum_HL_CXX}
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}
-%{_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}.*
-
-%files -n libhdf5_fortran%{sonum_F}
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/libhdf5_fortran.so.%{sonum_F}
-%{_libdir}/libhdf5_fortran.so.%{sonum_F}.*
-
-%files -n libhdf5hl_fortran%{sonum_HL_F}
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}
-%{_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
-
-%files devel-data
-%defattr(-,root,root,-)
-%config(noreplace) %{_sysconfdir}/rpm/macros.hdf5
-
-%files devel
-%defattr(-,root,root)
-%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt
-%doc release_docs/RELEASE.txt
-%doc ACKNOWLEDGMENTS README.txt
-%{_bindir}/h5c++
-%{_bindir}/h5cc
-%{_bindir}/h5fc
-%{_includedir}/*.h
-%{_libdir}/*.so
-%{_libdir}/*.settings
-%{_includedir}/*.mod
-
-%files devel-static
-%defattr(-,root,root)
-%{_libdir}/*.a
-
-%files examples
+%if %{without mpi}
+%files -n %{pname}-examples
%defattr(-,root,root)
%{_datadir}/hdf5_examples
-%if 0%{?_openmpi}
-%files -n %{name}-openmpi
-%defattr(-,root,root)
-%{_libdir}/mpi/gcc/openmpi/bin/gif2h5
-%{_libdir}/mpi/gcc/openmpi/bin/h52gif
-%{_libdir}/mpi/gcc/openmpi/bin/h5clear
-%{_libdir}/mpi/gcc/openmpi/bin/h5copy
-%{_libdir}/mpi/gcc/openmpi/bin/h5debug
-%{_libdir}/mpi/gcc/openmpi/bin/h5diff
-%{_libdir}/mpi/gcc/openmpi/bin/h5dump
-%{_libdir}/mpi/gcc/openmpi/bin/h5format_convert
-%{_libdir}/mpi/gcc/openmpi/bin/h5import
-%{_libdir}/mpi/gcc/openmpi/bin/h5jam
-%{_libdir}/mpi/gcc/openmpi/bin/h5ls
-%{_libdir}/mpi/gcc/openmpi/bin/h5mkgrp
-%{_libdir}/mpi/gcc/openmpi/bin/h5perf
-%{_libdir}/mpi/gcc/openmpi/bin/h5perf_serial
-%{_libdir}/mpi/gcc/openmpi/bin/h5redeploy
-%{_libdir}/mpi/gcc/openmpi/bin/h5repack
-%{_libdir}/mpi/gcc/openmpi/bin/h5repart
-%{_libdir}/mpi/gcc/openmpi/bin/h5stat
-%{_libdir}/mpi/gcc/openmpi/bin/h5unjam
-%{_libdir}/mpi/gcc/openmpi/bin/ph5diff
-%{_libdir}/mpi/gcc/openmpi/bin/h5watch
+ %if 0%{without hpc}
-%files -n libhdf5-%{sonum}-openmpi
+%files -n %{pname}-devel-data
+%defattr(-,root,root,-)
+%config(noreplace) %{_sysconfdir}/rpm/macros.hdf5
+ %endif
+%endif # flavor == serial
+
+%files -n %{name}
+%defattr(-,root,root)
+%{?with_hpc:%dir %my_bindir}
+%{my_bindir}/gif2h5
+%{my_bindir}/h52gif
+%{my_bindir}/h5clear
+%{my_bindir}/h5copy
+%{my_bindir}/h5debug
+%{my_bindir}/h5diff
+%{my_bindir}/h5dump
+%{my_bindir}/h5format_convert
+%{my_bindir}/h5import
+%{my_bindir}/h5jam
+%{my_bindir}/h5ls
+%{my_bindir}/h5mkgrp
+%if %{with mpi}
+%{my_bindir}/ph5diff
+%{my_bindir}/h5perf
+%endif
+%{my_bindir}/h5perf_serial
+%{my_bindir}/h5redeploy
+%{my_bindir}/h5repack
+%{my_bindir}/h5repart
+%{my_bindir}/h5stat
+%{my_bindir}/h5unjam
+%{my_bindir}/h5watch
+
+%files -n %{libname -s %{sonum}}
%defattr(-,root,root)
%doc COPYING ACKNOWLEDGMENTS README.txt
+##
+%if %{without mpi}
+%doc release_docs/HISTORY-1_8_0-1_10_0.txt
+%doc release_docs/RELEASE.txt
+%endif
%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5.so.%{sonum}
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5.so.%{sonum}.*
+%{?whith_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5.so.%{sonum}
+%{my_libdir}/libhdf5.so.%{sonum}.*
-%files -n libhdf5_hl%{sonum_HL}-openmpi
+%files -n %{libname -l _hl -s %{sonum_HL}}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_hl.so.%{sonum_HL}
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_hl.so.%{sonum_HL}.*
+%{?with_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5_hl.so.%{sonum_HL}
+%{my_libdir}/libhdf5_hl.so.%{sonum_HL}.*
-%files -n libhdf5_fortran%{sonum_F}-openmpi
+%if %{without mpi}
+%files -n %{libname -l _cpp -s %{sonum_CXX}}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_fortran.so.%{sonum_F}
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_fortran.so.%{sonum_F}.*
+%{?with_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5_cpp.so.%{sonum_CXX}
+%{my_libdir}/libhdf5_cpp.so.%{sonum_CXX}.*
-%files -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
+%files -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
+%{?with_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}
+%{my_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}.*
+%endif # flavor == serial
-%files openmpi-devel
+%files -n %{libname -l _fortran -s %{sonum_F}}
%defattr(-,root,root)
-%{_libdir}/mpi/gcc/openmpi/bin/h5pcc
-%{_libdir}/mpi/gcc/openmpi/bin/h5pfc
-%{_libdir}/mpi/gcc/openmpi/include/*.h
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.so
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.settings
-%{_libdir}/mpi/gcc/openmpi/include/*.mod
+%doc COPYING
+%defattr(0755,root,root)
+%{?with_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5_fortran.so.%{sonum_F}
+%{my_libdir}/libhdf5_fortran.so.%{sonum_F}.*
-%files openmpi-devel-static
+%files -n %{libname -l hl_fortran -s %{sonum_HL_F}}
%defattr(-,root,root)
-%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.a
+%doc COPYING
+%defattr(0755,root,root)
+%{?with_hpc:%hpc_dirs}
+%{my_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}
+%{my_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
+
+%if %{with hpc}
+%files module
+%defattr(-,root,root)
+%hpc_modules_files
%endif
-%if 0%{?_mvapich2}
-%files -n %{name}-mvapich2
+%files devel
%defattr(-,root,root)
-%{_libdir}/mpi/gcc/mvapich2/bin/gif2h5
-%{_libdir}/mpi/gcc/mvapich2/bin/h52gif
-%{_libdir}/mpi/gcc/mvapich2/bin/h5copy
-%{_libdir}/mpi/gcc/mvapich2/bin/h5debug
-%{_libdir}/mpi/gcc/mvapich2/bin/h5diff
-%{_libdir}/mpi/gcc/mvapich2/bin/h5dump
-%{_libdir}/mpi/gcc/mvapich2/bin/h5import
-%{_libdir}/mpi/gcc/mvapich2/bin/h5jam
-%{_libdir}/mpi/gcc/mvapich2/bin/h5ls
-%{_libdir}/mpi/gcc/mvapich2/bin/h5mkgrp
-%{_libdir}/mpi/gcc/mvapich2/bin/h5perf
-%{_libdir}/mpi/gcc/mvapich2/bin/h5perf_serial
-%{_libdir}/mpi/gcc/mvapich2/bin/h5redeploy
-%{_libdir}/mpi/gcc/mvapich2/bin/h5repack
-%{_libdir}/mpi/gcc/mvapich2/bin/h5repart
-%{_libdir}/mpi/gcc/mvapich2/bin/h5stat
-%{_libdir}/mpi/gcc/mvapich2/bin/h5unjam
-%{_libdir}/mpi/gcc/mvapich2/bin/ph5diff
-
-%files -n libhdf5-%{sonum}-mvapich2
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5.so.%{sonum}
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5.so.%{sonum}.*
-
-%files -n libhdf5_hl%{sonum_HL}-mvapich2
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_hl.so.%{sonum_HL}
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_hl.so.%{sonum_HL}.*
-
-%files -n libhdf5_fortran%{sonum_F}-mvapich2
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_fortran.so.%{sonum_F}
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_fortran.so.%{sonum_F}.*
-
-%files -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
-%defattr(-,root,root)
-%doc COPYING
-%defattr(0755,root,root)
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
-
-%files mvapich2-devel
-%defattr(-,root,root)
-%{_libdir}/mpi/gcc/mvapich2/bin/h5pcc
-%{_libdir}/mpi/gcc/mvapich2/bin/h5pfc
-%{_libdir}/mpi/gcc/mvapich2/include/*.h
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.so
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.settings
-%{_libdir}/mpi/gcc/mvapich2/include/*.mod
-
-%files mvapich2-devel-static
-%defattr(-,root,root)
-%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.a
+##
+%{?with_hpc:%dir %{my_incdir}}
+%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt
+%doc release_docs/RELEASE.txt
+%doc ACKNOWLEDGMENTS README.txt
+%{?with_hpc:%{hpc_pkgconfig_file -n hdf5}}
+%{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_hl}}
+%{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_fortran}}
+%{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_hl_fortran}}
+%if %{without mpi}
+%{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_cpp}}
+%{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_hl_cpp}}
+%{my_bindir}/h5c++
+%{my_bindir}/h5cc
+%{my_bindir}/h5fc
+%else
+%{my_bindir}/h5pcc
+%{my_bindir}/h5pfc
%endif
+%{my_incdir}/*.h
+%{my_libdir}/*.so
+%{my_libdir}/*.settings
+%{my_incdir}/*.mod
+
+%files devel-static
+%defattr(-,root,root)
+%{my_libdir}/*.a
%changelog
diff --git a/update_so_version.sh b/update_so_version.sh
index e50077e..4d94ae5 100644
--- a/update_so_version.sh
+++ b/update_so_version.sh
@@ -13,8 +13,8 @@ dbg()
cleanup()
{
- rm -f lt_vers.sh sonum_spec.sed sonum_baselibs.sed
- rm -f hdf5.spec.tmp baselibs.conf.tmp
+ rm -f lt_vers.sh sonum_spec.sed
+ rm -f hdf5.spec.tmp
}
## We are going to parse these variables from tarball:
@@ -54,9 +54,8 @@ for infix in "" _CXX _F _HL _HL_CXX _HL_F _TOOLS; do
test "${!var}" -gt 0 || exit_error "$var='${!var}' bad or undefined"
dbg "update $var=${!var}"
def_sonum="sonum${infix}"
- # create sed scripts for spec file and baselibs
+ # create sed scripts for spec file
echo "s/^%define $def_sonum .*/%define $def_sonum ${!var}/" >> sonum_spec.sed
- echo "s/@${def_sonum}@/${!var}/g" >> sonum_baselibs.sed
done
# update spec file if needed
@@ -68,13 +67,4 @@ else
echo "hdf5.spec updated" >&2
fi
-# update baselibs if needed
-sed -f sonum_baselibs.sed baselibs.conf.in > baselibs.conf.tmp
-if diff -q baselibs.conf.tmp baselibs.conf &>/dev/null; then
- dbg "baselibs.conf was up-to-date"
-else
- mv baselibs.conf.tmp baselibs.conf
- echo "baselibs.conf updated" >&2
-fi
-
cleanup