File votca-csg.spec of Package votca-csg

#
# votca-csg.spec
#
# Copyright (c) 2013-2014 Christoph Junghans
#
# Originally written by Jussi Lehtola <jussilehtola@fedoraproject.org>
# Fixed for multi-distro build by Klaus Kaempf <kkaempf@suse.de>
#
# Licensed under the Apache Software License (ASL 2.0)
#

Name:       votca-csg
Version:    1.2.4
Release:    0
Summary:    VOTCA coarse-graining engine
Group:      Productivity/Scientific/Chemistry
License:    Apache-2.0
URL:        http://www.votca.org
Source0:    http://downloads.votca.googlecode.com/hg/%{name}-%{version}.tar.gz
Source1:    http://downloads.votca.googlecode.com/hg/%{name}-tutorials-%{version}.tar.gz
Source2:    http://downloads.votca.googlecode.com/hg/%{name}-manual-%{version}.pdf

BuildRoot:  %{_tmppath}/%{name}-%{version}-build

BuildRequires:  gcc-c++
%if %{defined fedora}
BuildRequires:  pkgconfig
%else
BuildRequires:  pkg-config
%endif
BuildRequires:  fdupes
BuildRequires:  boost-devel >= 1.39.0
BuildRequires:  pkgconfig(libvotca_tools) = %{version}
BuildRequires:  gromacs-devel
BuildRequires:  cmake >= 2.8.4
BuildRequires:  txt2tags

#exact same version is needed
Requires:       %{name}-common = %{version}-%{release}
Requires:       libvotca_csg2 = %{version}-%{release}

%description
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
a package intended to reduce the amount of routine work when doing systematic
coarse-graining of various systems. The core is written in C++.

This package contains the Coarse Graining Engine of VOTCA package.

%package -n libvotca_csg2
Summary:    Libraries for VOTCA coarse graining engine
Group:      Productivity/Scientific/Chemistry

%description -n libvotca_csg2
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
a package intended to reduce the amount of routine work when doing systematic
coarse-graining of various systems. The core is written in C++.

This package contains libraries for the Coarse Graining Engine of VOTCA package.

%package devel
Summary:    Development headers and libraries for VOTCA Coarse Graining Engine
Group:      Development/Libraries/C and C++
Requires:   libvotca_csg2 = %{version}-%{release}
Requires:   votca-tools-devel = %{version}

%description devel
This package contains development headers and libraries for the Coarse Graining
Engine of VOTCA.

%package common
Summary:    Architecture independent data files for VOTCA CSG
Group:      Productivity/Scientific/Chemistry
BuildArch:  noarch
Requires:   bash
Requires:   /usr/bin/awk
Requires:   perl

%description common
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
a package intended to reduce the amount of routine work when doing systematic
coarse-graining of various systems. The core is written in C++.

This package contains architecture independent data files for VOTCA CSG.

%package tutorials
Summary:    Tutorial documentation for VOTCA Coarse Graining Engine
Group:      Productivity/Scientific/Chemistry
BuildArch:  noarch
Requires:   bash

%description tutorials
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
a package intended to reduce the amount of routine work when doing systematic
coarse-graining of various systems. The core is written in C++.

This package contains tutorial documentation and sample data

%package bash
Summary:    Bash completion for votca
Group:      Productivity/Other
Requires:   %{name} = %{version}-%{release}
Requires:   bash-completion
BuildArch:  noarch

%description bash
Versatile Object-oriented Toolkit for Coarse-graining Applications (VOTCA) is
a package intended to reduce the amount of routine work when doing systematic
coarse-graining of various systems. The core is written in C++. Iterative
methods are implemented using bash + perl.

This package contains bash completion support for votca-csg.

%prep
%setup -q
tar -xzf %{S:1}
rm -rf %{name}-tutorials-%{version}/.hg*

%build
pkg-config libgromacs && DEV=ON || DEV=OFF
%if %{defined fedora}
mkdir build
cd build
%endif
%if %{undefined cmake}
%define cmake cmake
mkdir build
cd build
%endif
%{cmake} \
 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 -DWITH_RC_FILES=OFF \
 -DWITH_GMX_DEVEL="$DEV" \
 -DCMAKE_VERBOSE_MAKEFILE=TRUE \
 -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags}" \
 -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags}" \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_SKIP_RPATH:BOOL=OFF \
 -DLIB=%{_lib} ..
make %{?_smp_mflags}

%install
make -C build install DESTDIR=%{buildroot}
# Move bash completion file to correct location
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d
cp scripts/csg-completion.bash %{buildroot}%{_sysconfdir}/bash_completion.d/votca

%define pkgdocdir %{_docdir}/%{name}
mkdir -p %{buildroot}%{pkgdocdir}
cp %{S:2} %{buildroot}%{pkgdocdir}

mkdir -p %{buildroot}%{pkgdocdir}/examples
cp -r %{name}-tutorials-%{version}/* %{buildroot}%{pkgdocdir}/examples
%fdupes %{buildroot}%{_prefix}

%post -n libvotca_csg2 -p /sbin/ldconfig
%postun -n libvotca_csg2 -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc ChangeLog NOTICE README LICENSE
%{_bindir}/csg_*
%{_bindir}/multi_g_*
%{_mandir}/man1/*
%{pkgdocdir}/*
%exclude %{pkgdocdir}/examples

%files tutorials
%defattr(-,root,root,-)
%{pkgdocdir}/examples

%files common
%defattr(-,root,root,-)
%{_datadir}/votca

%files -n libvotca_csg2
%defattr(-,root,root,-)
%doc LICENSE
%{_libdir}/libvotca_csg.so.*
%{_mandir}/man7/*

%files devel
%defattr(-,root,root,-)
%{_includedir}/votca/csg/
%{_libdir}/libvotca_csg.so
%{_libdir}/pkgconfig/libvotca_csg.pc

%files bash
%defattr(-,root,root,-)
%config %{_sysconfdir}/bash_completion.d/votca

%changelog
openSUSE Build Service is sponsored by