netcdf/netcdf.spec
2020-03-11 17:37:53 +08:00

163 lines
5.4 KiB
RPMSpec

Name: netcdf
Version: 4.4.1.1
Release: 11
Summary: Unidata network Common Data Format Libraries
License: NetCDF
URL: http://www.unidata.ucar.edu/software/netcdf/
Source0: https://github.com/Unidata/netcdf-c/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: libtool chrpath doxygen hdf-static hdf5-devel gawk libcurl-devel
BuildRequires: m4 zlib-devel openssh-clients mpich-devel hdf5-mpich-devel >= 1.8.4
BuildRequires: openssh-clients openmpi-devel hdf5-openmpi-devel >= 1.8.4
Requires: hdf5 = %{_hdf5_version} hdf5-mpich = %{_hdf5_version} hdf5-openmpi = %{_hdf5_version}
Provides: %{name}-mpich2 = %{version}-%{release} %{name}-mpich = %{version}-%{release}
Provides: %{name}-openmpi = %{version}-%{release}
Obsoletes: %{name}-mpich2 < 4.3.0-4 %{name}-mpich < %{version}-%{release}
Obsoletes: %{name}-openmpi < %{version}-%{release}
%description
NetCDF (Network Common Data Form) is a set of software libraries and machine-independent data formats
that support the creation, accessand sharing of array-oriented scientific data.
It is also a community standard for sharing scientific data.
The Unidata Program Center supports and maintains netCDF programming interfaces for C, C++, Java and Fortran.
Programming interfaces are also available for Python, IDL, MATLAB, R, Ruby and Perl.
%package devel
Summary: Development files for netcdf
Requires: %{name} = %{version}-%{release} pkgconfig hdf5-devel libcurl-devel
Requires: %{name}-mpich-devel = %{version}-%{release} %{name}-openmpi = %{version}-%{release} openmpi-devel hdf5-openmpi-devel
Requires: %{name}-openmpi-devel = %{version}-%{release}
Provides: %{name}-static = %{version}-%{release} %{name}-mpich-devel = %{version}-%{release} %{name}-mpich-static = %{version}-%{release}
Provides: %{name}-mpich2-devel = %{version}-%{release} %{name}-mpich2-static = %{version}-%{release}
Provides: %{name}-openmpi-devel = %{version}-%{release} %{name}-openmpi-static = %{version}-%{release}
Obsoletes: %{name}-static < %{version}-%{release} %{name}-mpich-devel < %{version}-%{release} %{name}-mpich-static < %{version}-%{release}
Obsoletes: %{name}-mpich2-devel < 4.3.0-4 %{name}-mpich2-static < 4.3.0-4
Obsoletes: %{name}-openmpi-devel < %{version}-%{release} %{name}-openmpi-static < %{version}-%{release}
%description devel
This package contains the netCDF C header files, shared devel libs.
%package help
Summary: Helpful information for netcdf
%description help
Documents and helpful information for netcdf.
%prep
%autosetup -n %{name}-c-%{version}
m4 libsrc/ncx.m4 > libsrc/ncx.c
%build
%global _configure ../configure
%global configure_opts \\\
--enable-shared \\\
--enable-netcdf-4 \\\
--enable-dap \\\
--enable-extra-example-tests \\\
CPPFLAGS=-I%{_includedir}/hdf \\\
LIBS="-ldf -ljpeg -ltirpc" \\\
--enable-hdf4 \\\
--disable-dap-remote-tests \\\
%{nil}
export LDFLAGS="%{__global_ldflags} -L%{_libdir}/hdf"
libtoolize --force
mkdir build
cd build
ln -s ../configure .
%configure %{configure_opts}
make -j2
cd ../
export CC=mpicc
for mpi in mpich openmpi
do
mkdir $mpi
cd $mpi
module load mpi/$mpi-%{_arch}
ln -s ../configure .
%configure %{configure_opts} --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 \
%{nil}
make -j2
module purge
cd ../
done
%install
make -C build install DESTDIR=${RPM_BUILD_ROOT}
%delete_la
chrpath --delete ${RPM_BUILD_ROOT}/%{_bindir}/nc{copy,dump,gen,gen3}
rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
for mpi in mpich openmpi
do
module load mpi/$mpi-%{_arch}
make -C $mpi install DESTDIR=${RPM_BUILD_ROOT}
%delete_la
chrpath --delete ${RPM_BUILD_ROOT}/%{_libdir}/$mpi/bin/nc{copy,dump,gen,gen3}
module purge
done
%check
# Set to 1 to fail if tests fail
fail=1
make -C build check || ( cat build/*/test-suite.log && exit $fail )
for mpi in mpich openmpi
do
module load mpi/$mpi-%{_arch}
make -C $mpi check || ( cat $mpi/*/test-suite.log && exit $fail )
module purge
done
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%doc COPYRIGHT README.md RELEASE_NOTES.md
%{_bindir}/{nccopy,ncdump,ncgen,ncgen3}
%{_libdir}/*.so.11*
%{_libdir}/mpich/bin/{nccopy,ncdump,ncgen,ncgen3}
%{_libdir}/mpich/lib/*.so.11*
%{_libdir}/openmpi/bin/{nccopy,ncdump,ncgen,ncgen3}
%{_libdir}/openmpi/lib/*.so.11*
%files devel
%doc examples
%{_bindir}/nc-config
%{_includedir}/{netcdf.h,netcdf_meta.h,netcdf_mem.h}
%{_libdir}/libnetcdf.settings
%{_libdir}/*.so
%{_libdir}/pkgconfig/netcdf.pc
%{_libdir}/*.a
%{_libdir}/mpich/bin/nc-config
%{_includedir}/mpich-%{_arch}
%{_libdir}/mpich/lib/libnetcdf.settings
%{_libdir}/mpich/lib/*.so
%{_libdir}/mpich/lib/pkgconfig/%{name}.pc
%{_libdir}/mpich/lib/*.a
%{_libdir}/openmpi/bin/nc-config
%{_includedir}/openmpi-%{_arch}
%{_libdir}/openmpi/lib/libnetcdf.settings
%{_libdir}/openmpi/lib/*.so
%{_libdir}/openmpi/lib/pkgconfig/%{name}.pc
%{_libdir}/openmpi/lib/*.a
%files help
%{_mandir}/man1/*
%{_mandir}/man3/*
%doc %{_libdir}/mpich/share/man/man1/*.1*
%doc %{_libdir}/mpich/share/man/man3/*.3*
%doc %{_libdir}/openmpi/share/man/man1/*.1*
%doc %{_libdir}/openmpi/share/man/man3/*.3*
%changelog
* Mon Mar 9 2020 tangjing <tangjing30@huawei.com> - 4.4.1.1-11
- Package init