File CUDA.spec of Package libcuda

%if 0%{?suse_version}  
BuildRequires: kate fdupes libfakegpgpu
%endif

BuildRequires:chrpath
Name:         CUDA
License:      Redist
Summary:      CUDA
Version:      3.1
Release:      1
Group:        Development/Libraries/Other
BuildRoot:    %{_tmppath}/%{name}-%{version}-build
%ifarch x86_64
Source0:      cudatoolkit_%{version}_linux_64_suse11.2.run
%else
Source0:      cudatoolkit_%{version}_linux_32_suse11.2.run
%endif
Source4:      cu.xml

%description
This Package Provides CUDA, CuBLAS and CuFFT

%package     -n libcudart3
Summary:      Headers for CUDA libs, including cuBLAS and cuFFT
%description  -n libcudart3
cufft

%package     -n libcublas3
Summary:      Headers for CUDA libs, including cuBLAS and cuFFT
%description  -n libcublas3
cublas

%package     -n libcufft3
Summary:      Headers for CUDA libs, including cuBLAS and cuFFT
%description  -n libcufft3
cufft

%package     devel
Summary:      Headers for CUDA libs, including cuBLAS and cuFFT
%description  devel
This Package Provides CUDA, CuBLAS and CuFFT Headers

%package     tools
Summary:     Provide NVCC
Requires:    libcuda3-devel
%description tools
This package provides NVCC, the Nvidia compiler for C for CUDA.

%package     doc
Summary:      Docs for cuda libs, includeing cublas and cufft
%description doc
This Package Provides CUDA, CuBLAS and CuFFT Docs

%package      Profiler
Summary:      Computeprofiler
%description  Profiler
This Package Provides Cudaprofiler, to profile local performance of CUDA execution


%package -n libOpenCL-devel
Summary:      OpenCL lib
%description -n libOpenCL-devel
This package provide a fake opencl lib

%prep

cp %{S:4} .

%build

sh %{S:0} --noexec --keep

%install

mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_includedir}/CL
mkdir -p %{buildroot}%{_includedir}/cuda
mkdir -p %{buildroot}%{_libdir}/cuda/bin
mkdir -p %{buildroot}%{_libdir}/cuda/include
mkdir -p %{buildroot}%{_libdir}/cuda/lib64
mkdir -p %{buildroot}%{_docdir}/cuda/open64
mkdir -p %{buildroot}%{_mandir}
mkdir -p %{buildroot}%{_datadir}/kde4/apps/katepart/syntax

cp %{_libdir}/nvidia/libOpenCL.so.1.0.0 %{buildroot}%{_libdir}/libOpenCL.so.1.0.0
cp %{_libdir}/nvidia/libcuda.so.1 %{buildroot}%{_libdir}/libcuda.so.1

sed -i "s|^/usr/lib64/libOpenCL.so|libOpenCL.so.1.0.0|" $RPM_BUILD_ROOT%{_libdir}/libOpenCL.so
sed -i "s|^/usr/lib64/libcublas.so|../../lib64/cuda/libcublas.so.3.1.9|" $RPM_BUILD_ROOT%{_libdir}/libcublas.so
sed -i "s|^/usr/lib64/libcuda.so|libcuda.so.1|" $RPM_BUILD_ROOT%{_libdir}/libcuda.so
sed -i "s|^/usr/lib64/libcudart.so|../../lib64/cuda/libcudart.so.3.1.9|" $RPM_BUILD_ROOT%{_libdir}/libcudart.so
sed -i "s|^/usr/lib64/libcufft.so|../../lib64/cuda/libcufft.so.3.1.9|" $RPM_BUILD_ROOT%{_libdir}/libcufft.so

install -m 644 cu.xml %{buildroot}%{_datadir}/kde4/apps/katepart/syntax

pushd pkg
pushd bin
  for file in `find . -type f -not -iname 'nvcc.profile'`;do
    install -s $file  %{buildroot}%{_libdir}/cuda/bin
  done
  install nvcc.profile  %{buildroot}%{_libdir}/cuda/bin
popd
install computeprof/bin/computeprof %{buildroot}%{_bindir}


pushd %{_lib}
  for file in `find *.so.%{version}.9 -type f`;do
    install -s $file %{buildroot}%{_libdir}
    ln -s %{buildroot}%{_libdir}/$file %{buildroot}%{_libdir}/`basename $file .%{version}.9`
  done
popd

pushd include

  pushd CL;
    for file in `find * -type f`;do
      install -m 644 -D $file %{buildroot}%{_includedir}/CL
      rm $file;
    done;
    ln -s %{_libdir}/libOpenCL.so.1.0.0 %{buildroot}%{_libdir}/libOpenCL.so
    ln -s %{_libdir}/libcuda.so.1 %{buildroot}%{_libdir}/libcuda.so
  popd;
  for file in `find * -type f`;do
    install -m 644 -D $file %{buildroot}t%{_libdir}/cuda/include 
  done;
popd
pushd doc
  for file in `find * -type f`;do
    install  -m 644 -D $file %{buildroot}%{_docdir}/cuda
  done;
popd
pushd open64
  for file in `find * -type f`;do
    install -s $file %{buildroot}%{_libdir}/cuda/open64
  done;
popd

popd

ln -s %{_libdir}/cuda/bin/nvcc %{buildroot}%{_bindir}/nvcc 
ln -s %{_libdir}/cuda/include  %{buildroot}%{_includedir}/cuda
ln -s %{_libdir} %{buildroot}%{_libdir}/cuda/%{_lib}

%if 0%{?suse_version}  
%fdupes -s %{buildroot}
chrpath --delete %{buildroot}%{_bindir}/computeprof
%endif


%post -n libcudart3
ldconfig

%postun  -n libcudart3
ldconfig

%post -n libcublas3
ldconfig

%postun  -n libcublas3
ldconfig

%post -n libcufft3
ldconfig

%postun  -n libcufft3
ldconfig



%clean
rm -rf %{buildroot}

%files -n libcudart3
%{buildroot_symlink_sed}%{_libdir}/libcudart.so.%{version}.9

%files -n libcublas3
%{buildroot_symlink_sed}%{_libdir}/libcublas.so.%{version}.9


%files -n libcufft3
%{buildroot_symlink_sed}%{_libdir}/libcufft.so.%{version}.9


%files devel
%dir %{_libdir}/cuda
%dir %{_libdir}/cuda/include
%dir %{_libdir}/cuda/%{_lib}
%{_libdir}/*.so
%{_includedir}/cuda/
%config %{_datadir}/kde4/apps/katepart/syntax/cu.xml

%files tools
%{_bindir}/nvcc
%{_libdir}/cuda/bin
%{_libdir}/cuda/open64

%files Profiler
%{_bindir}/computeprof

%files  doc
%doc %{_docdir}/cuda

%files  -n libOpenCL-devel
%{_libdir}/libOpenCL.so
%{_includedir}/CL
openSUSE Build Service is sponsored by