Name: netcdf-cxx4 Version: 4.2 Release: 4%{?dist} Summary: NetCDF-4 C++ library Group: Applications/Engineering License: NetCDF URL: http://www.unidata.ucar.edu/software/netcdf/ Source0: http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx4-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: netcdf-devel #mpiexec segfaults if ssh is not present #https://trac.mcs.anl.gov/projects/mpich2/ticket/1576 BuildRequires: openssh-clients %global with_mpich2 1 %global with_openmpi 1 %if 0%{?rhel} %ifarch ppc64 # No mpich2 on ppc64 in EL %global with_mpich2 0 %endif %endif %ifarch s390 s390x # No openmpi on s390(x) %global with_openmpi 0 %endif %if %{with_mpich2} %global mpi_list mpich2 %endif %if %{with_openmpi} %global mpi_list %{?mpi_list} openmpi %endif %description netCDF-4 C++ library. %package devel Summary: Development files for netCDF-4 C++ API Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: pkgconfig Requires: netcdf-devel%{?_isa} %description devel Development files for netCDF-4 C++ API. %package static Summary: Static library for netCDF-4 C++ API Group: Development/Libraries Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static Static library for netCDF-4 C++ API. %if %{with_mpich2} %package mpich2 Summary: NetCDF mpich2 libraries Group: Development/Libraries Requires: mpich2 BuildRequires: mpich2-devel BuildRequires: netcdf-mpich2-devel %description mpich2 NetCDF parallel mpich2 libraries %package mpich2-devel Summary: NetCDF mpich2 development files Group: Development/Libraries Requires: %{name}-mpich2%{?_isa} = %{version}-%{release} Requires: mpich2 Requires: pkgconfig Requires: netcdf-mpich2-devel Requires: libcurl-devel %description mpich2-devel NetCDF parallel mpich2 development files %package mpich2-static Summary: NetCDF mpich2 static libraries Group: Development/Libraries Requires: %{name}-mpich2-devel%{?_isa} = %{version}-%{release} %description mpich2-static NetCDF parallel mpich2 static libraries %endif %if %{with_openmpi} %package openmpi Summary: NetCDF openmpi libraries Group: Development/Libraries Requires: openmpi BuildRequires: openmpi-devel BuildRequires: netcdf-openmpi-devel %description openmpi NetCDF parallel openmpi libraries %package openmpi-devel Summary: NetCDF openmpi development files Group: Development/Libraries Requires: %{name}-openmpi%{_isa} = %{version}-%{release} Requires: openmpi-devel Requires: pkgconfig Requires: netcdf-openmpi-devel Requires: libcurl-devel %description openmpi-devel NetCDF parallel openmpi development files %package openmpi-static Summary: NetCDF openmpi static libraries Group: Development/Libraries Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} %description openmpi-static NetCDF parallel openmpi static libraries %endif %prep %setup -q # Fix line endings sed -i -e 's/\r//' examples/*.cpp %build #Do out of tree builds %global _configure ../configure # Serial build mkdir build pushd build ln -s ../configure . %configure make %{?_smp_mflags} popd # MPI builds export CC=mpicc export CXX=mpicxx for mpi in %{mpi_list} do mkdir $mpi pushd $mpi module load $mpi-%{_arch} ln -s ../configure . %configure \ --libdir=%{_libdir}/$mpi/lib \ --bindir=%{_libdir}/$mpi/bin \ --sbindir=%{_libdir}/$mpi/sbin \ --includedir=%{_includedir}/$mpi-%{_arch} \ --datarootdir=%{_libdir}/$mpi/share \ --mandir=%{_libdir}/$mpi/share/man make %{?_smp_mflags} module purge popd done %install make -C build install DESTDIR=${RPM_BUILD_ROOT} /bin/rm ${RPM_BUILD_ROOT}%{_libdir}/*.la for mpi in %{mpi_list} do module load $mpi-%{_arch} make -C $mpi install DESTDIR=${RPM_BUILD_ROOT} rm $RPM_BUILD_ROOT/%{_libdir}/$mpi/lib/*.la module purge done %check make -C build check for mpi in mpich2 openmpi do module load $mpi-%{_arch} make -C $mpi check module purge done %clean rm -rf ${RPM_BUILD_ROOT} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %doc COPYRIGHT %{_libdir}/libnetcdf_c++4.so.* %files devel %doc examples %{_bindir}/ncxx4-config %{_includedir}/* %{_libdir}/libnetcdf_c++4.so %{_libdir}/pkgconfig/netcdf-cxx4.pc %files static %{_libdir}/libnetcdf_c++4.a %if %{with_mpich2} %files mpich2 %doc COPYRIGHT %{_libdir}/mpich2/lib/*.so.* %files mpich2-devel %{_libdir}/mpich2/bin/ncxx4-config %{_includedir}/mpich2-%{_arch}/* %{_libdir}/mpich2/lib/*.so %{_libdir}/mpich2/lib/pkgconfig/%{name}.pc %files mpich2-static %{_libdir}/mpich2/lib/*.a %endif %if %{with_openmpi} %files openmpi %doc COPYRIGHT %{_libdir}/openmpi/lib/*.so.* %files openmpi-devel %{_libdir}/openmpi/bin/ncxx4-config %{_includedir}/openmpi-%{_arch}/* %{_libdir}/openmpi/lib/*.so %{_libdir}/openmpi/lib/pkgconfig/%{name}.pc %files openmpi-static %{_libdir}/openmpi/lib/*.a %endif %changelog * Wed Mar 7 2012 Orion Poplawski - 4.2-4 - Fix line endings * Wed Mar 7 2012 Orion Poplawski - 4.2-3 - Build parallel versions - Ship examples with -devel * Mon Oct 3 2011 Orion Poplawski - 4.2-2 - Use %%{?_isa} in Requires - Make -static sub-package require the -devel package * Fri Sep 30 2011 Orion Poplawski - 4.2-1 - Initial package