diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..cc488c0 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,17 @@ +libhdf5-0 +hdf5-devel + requires - + requires "libhdf5-0- = " + requires "libhdf5_hl0- = " +libhdf5-0-openmpi +libhdf5_hl-0-openmpi +hdf5-openmpi-devel + requires -openmpi- + requires "libhdf5-0-openmpi- = " + requires "libhdf5_hl0-openmpi- = " +libhdf5-0-mvapich2 +libhdf5_hl-0-mvapich2 +hdf5-mvapich2-devel + requires -openmpi- + requires "libhdf5-0-mvapich2- = " + requires "libhdf5_hl0-mvapich2- = " diff --git a/hdf5.changes b/hdf5.changes index 261400b..1877123 100644 --- a/hdf5.changes +++ b/hdf5.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Sep 7 17:24:21 UTC 2012 - scorot@free.fr + +- parallel versions for openmpi and mvapich2 +- add baselibs.conf + ------------------------------------------------------------------- Wed Jun 20 09:39:44 UTC 2012 - sweet_f_a@gmx.de diff --git a/hdf5.spec b/hdf5.spec index 2a79dcd..5acf91f 100644 --- a/hdf5.spec +++ b/hdf5.spec @@ -19,6 +19,12 @@ %define hdf5_libver 0 %define libname libhdf5 +%if 0%{?sles_version} +%define _mpi openmpi mvapich2 +%else +%define _mpi openmpi +%endif + Name: hdf5 Version: 1.8.9 Release: 0 @@ -45,6 +51,10 @@ BuildRequires: zlib-devel %if 0%{?suse_version} >= 1110 BuildRequires: fdupes %endif +BuildRequires: openmpi-devel +%if 0%{?sles_version} +BuildRequires: mvapich2-devel +%endif %description HDF5 is a general purpose library and file format for storing scientific data. @@ -118,6 +128,144 @@ Requires: %{libname}_hl%{hdf5_libver} = %{version} %description examples Examples of HDF5 library use. + +%package -n %{name}-openmpi +Summary: A general purpose library and file format for storing scientific data +Group: Development/Libraries/Other + +%description -n %{name}-openmpi +HDF5 is a general purpose library and file format for storing scientific data. +HDF5 can store two primary objects: datasets and groups. A dataset is +essentially a multidimensional array of data elements, and a group is a +structure for organizing objects in an HDF5 file. Using these two basic +objects, one can create and store almost any kind of scientific data +structure, such as images, arrays of vectors, and structured and unstructured +grids. You can also mix and match them in HDF5 files according to your needs. + +%package -n %{libname}-%{hdf5_libver}-openmpi +Summary: HDF 5 runtime libraries +Group: System/Libraries + +%description -n %{libname}-%{hdf5_libver}-openmpi +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains the HDF 5 runtime libraries. + +%package -n %{libname}_hl%{hdf5_libver}-openmpi +Summary: HDF 5 runtimelibraries +Group: System/Libraries + +%description -n %{libname}_hl%{hdf5_libver}-openmpi +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains the HDF 5 runtime libraries. + +%package openmpi-devel +Summary: Hierarchical Data File Format Version 5 +Group: Development/Libraries/Parallel +Requires: %{name}-openmpi = %{version} +# Required by Fortran programs? +Requires: %{libname}-%{hdf5_libver}-openmpi = %{version} +Requires: %{libname}_hl%{hdf5_libver}-openmpi = %{version} + +%description openmpi-devel +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains all files needed to create projects that use +hdf5. + +%package openmpi-devel-static +Summary: Hierarchical Data File Format Version 5 - static libraries +Group: Development/Libraries/C and C++ +Requires: hdf5-openmpi-devel + +%description openmpi-devel-static +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package provides the static libraries. + + +%if 0%{?sles_version} +%package -n %{name}-mvapich2 +Summary: A general purpose library and file format for storing scientific data +Group: Development/Libraries/Other + +%description -n %{name}-mvapich2 +HDF5 is a general purpose library and file format for storing scientific data. +HDF5 can store two primary objects: datasets and groups. A dataset is +essentially a multidimensional array of data elements, and a group is a +structure for organizing objects in an HDF5 file. Using these two basic +objects, one can create and store almost any kind of scientific data +structure, such as images, arrays of vectors, and structured and unstructured +grids. You can also mix and match them in HDF5 files according to your needs. + +%package -n %{libname}-%{hdf5_libver}-mvapich2 +Summary: HDF 5 runtime libraries +Group: System/Libraries + +%description -n %{libname}-%{hdf5_libver}-mvapich2 +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains the HDF 5 runtime libraries. + +%package -n %{libname}_hl%{hdf5_libver}-mvapich2 +Summary: HDF 5 runtimelibraries +Group: System/Libraries + +%description -n %{libname}_hl%{hdf5_libver}-mvapich2 +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains the HDF 5 runtime libraries. + +%package mvapich2-devel +Summary: Hierarchical Data File Format Version 5 +Group: Development/Libraries/Parallel +Requires: %{name}-mvapich2 = %{version} +# Required by Fortran programs? +Requires: %{libname}-%{hdf5_libver}-mvapich2 = %{version} +Requires: %{libname}_hl%{hdf5_libver}-mvapich2 = %{version} + +%description mvapich2-devel +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package contains all files needed to create projects that use +hdf5. + +%package mvapich2-devel-static +Summary: Hierarchical Data File Format Version 5 - static libraries +Group: Development/Libraries/C and C++ +Requires: hdf5-mvapich2-devel + +%description mvapich2-devel-static +The HDF project involves the development and support of software and +file formats for scientific data management. The HDF software includes +I/O libraries and tools for analyzing, visualizing, and converting +scientific data. + +This package provides the static libraries. +%endif + %prep %setup -q %patch0 -p1 -b .LD_LIBRARY_PATH @@ -127,6 +275,13 @@ Examples of HDF5 library use. %patch4 -p0 -b .tests-arm %endif +set -- * +for mpi in %_mpi +do + mkdir $mpi + cp -ap "$@" $mpi +done + %build export CC=gcc export CXX=g++ @@ -146,6 +301,32 @@ export CFLAGS="${RPM_OPT_FLAGS/O2/O0}" make %{?_smp_mflags} +for mpi in %_mpi; +do +cd $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 \ + --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 \ +%if 0%{?suse_version} > 1140 + --enable-fortran \ +%endif + --enable-hl \ + --enable-shared \ + --enable-parallel \ + --with-pthread + +make %{?_smp_mflags} +cd .. +done + %install %makeinstall docdir=%{buildroot}%{_docdir} rm -rf %{buildroot}/%{_libdir}/*.la @@ -169,6 +350,15 @@ cat > %{buildroot}%{_sysconfdir}/rpm/macros.hdf5 < 1140 +%{_libdir}/mpi/gcc/openmpi/%_lib/libhdf5_fortran.so.* +%endif + +%files -n libhdf5_hl%{hdf5_libver}-openmpi +%defattr(0755,root,root) +%{_libdir}/mpi/gcc/openmpi/%_lib/libhdf5_hl.so.* +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/openmpi/%_lib/libhdf5hl_fortran.so.* +%endif + +%files openmpi-devel +%defattr(-,root,root) +%{_libdir}/mpi/gcc/openmpi/bin/h5pcc +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/openmpi/bin/h5pfc +%endif +%{_libdir}/mpi/gcc/openmpi/include/*.h +%{_libdir}/mpi/gcc/openmpi/%_lib/*.so +%{_libdir}/mpi/gcc/openmpi/%_lib/*.settings +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/openmpi/include/*.mod +%endif + +%files openmpi-devel-static +%defattr(-,root,root) +%{_libdir}/mpi/gcc/openmpi/%_lib/*.a + +%if 0%{?sles_version} +%files -n %{name}-mvapich2 +%defattr(-,root,root) +%doc COPYING MANIFEST README.txt release_docs/RELEASE.txt +%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt release_docs/HISTORY-1_8.txt +%doc release_docs/RELEASE.txt +%{_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 %{libname}-%{hdf5_libver}-mvapich2 +%defattr(0755,root,root) +%{_libdir}/mpi/gcc/mvapich2/%_lib/libhdf5.so.* +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/mvapich2/%_lib/libhdf5_fortran.so.* +%endif + +%files -n libhdf5_hl%{hdf5_libver}-mvapich2 +%defattr(0755,root,root) +%{_libdir}/mpi/gcc/mvapich2/%_lib/libhdf5_hl.so.* +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/mvapich2/%_lib/libhdf5hl_fortran.so.* +%endif + +%files mvapich2-devel +%defattr(-,root,root) +%{_libdir}/mpi/gcc/mvapich2/bin/h5pcc +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/mvapich2/bin/h5pfc +%endif +%{_libdir}/mpi/gcc/mvapich2/include/*.h +%{_libdir}/mpi/gcc/mvapich2/%_lib/*.so +%{_libdir}/mpi/gcc/mvapich2/%_lib/*.settings +%if 0%{?suse_version} > 1140 +%{_libdir}/mpi/gcc/mvapich2/include/*.mod +%endif + +%files mvapich2-devel-static +%defattr(-,root,root) +%{_libdir}/mpi/gcc/mvapich2/%_lib/*.a +%endif + %changelog