+%bcond_with Intra2net
+%bcond_with xmllib
+%bcond_with imap_utf7_support
+
+# Detect Intra2net build environment
+%if %{with Intra2net}
+ %define with_xmllib 1
+ %define with_imap_utf7_support 1
+%endif
+
+%if %{with xmllib}
+ %define with_xmllib 1
+%endif
+%if %{with imap_utf7_support}
+ %define with_imap_utf7_support 1
+%endif
+
Summary: library with functions common in Intra2net programs
Name: libi2ncommon
-Version: ##VERSION##
+Version: 2.11
Release: 1
-Copyright: Intranator License
-Group: Intranator
+License: GPLv2 + linking exception
+Group: Development/Libraries
Vendor: Intra2net AG
-Source: %{name}-%{version}.tar.gz
-Buildroot: /tmp/%{name}-%{version}-root
-Prefix: /usr/intranator
-Requires: libgettext
-BuildPrereq: libtool
+Source: %{name}-%{version}.tar.bz2
+BuildRequires: boost-devel >= 1.32.0
+BuildRequires: libtool openssl-devel
+
+%if "%{with_imap_utf7_support}" == "1"
+BuildRequires: libiconv
+%endif
%description
library with functions common in Intra2net programs
%package devel
Summary: library with functions common in Intra2net programs
-Group: Intranator/Development
-Requires: libi2ncommon = %{version} libgettext
+Group: Intra2net/Development
+Requires: libi2ncommon = %{version}
+Requires: boost-devel >= 1.32.0
+
%description devel
library with functions common in Intra2net programs
+
+%package config
+Summary: library with a config module
+Group: Intra2net
+Requires: libi2ncommon = %{version}
+
+%description config
+library with a config module.
+The config module provides a global configuration system with decentralized
+declaration of the config variables.
+
+%if "%{with xmllib}" == "1"
+%package xml
+Summary: library with a xml module
+Group: Intra2net
+Requires: libi2ncommon = %{version}
+BuildRequires: libxml++-devel
+
+%description xml
+The xml module provides common xml functions.
+%endif
+
+%package utils
+Summary: library with open source utility modules
+Group: Intra2net
+License: GPL version 2 + linking exception
+
+%description utils
+Library with open source utility modules.
+
%prep
%setup -q
%build
-export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/intranator/lib/pkgconfig
-cp -f /usr/share/libtool/ltmain.sh .
-autoreconf --force
-./configure --prefix=%{prefix}
-dmake
+mkdir build
+cd build
-dmake check
+export CFLAGS="$RPM_OPT_FLAGS"
+export CXXFLAGS="$RPM_OPT_FLAGS"
+
+CMAKE_OPTS=""
+%if "%{with_xmllib}" == "1"
+ CMAKE_OPTS="$CMAKE_OPTS -DBUILD_XMLLIB=ON"
+%endif
+%if "%{with_imap_utf7_support}" == "1"
+ CMAKE_OPTS="$CMAKE_OPTS -DIMAP_UTF7_SUPPORT=ON"
+%endif
+
+cmake -DCMAKE_INSTALL_PREFIX="%{_prefix}" $CMAKE_OPTS ../
+
+make %{?_smp_mflags} VERBOSE=1
+
+%check
+cd build
+make check
%install
+
+cd build
make DESTDIR=$RPM_BUILD_ROOT install
%clean
rm -fr $RPM_BUILD_ROOT
-%post
-/sbin/ldconfig
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
-%doc LICENSE
-%{prefix}/lib/libi2ncommon.so*
+%doc COPYING.GPL Linking-Exception.txt
+%{_libdir}/libi2ncommon.so*
%files devel
%defattr(-,root,root)
-%{prefix}/lib/*.*a*
-%{prefix}/lib/pkgconfig/*.pc
-%{prefix}/include/
+%{_libdir}/*.*a*
+%{_libdir}/libi2ncommon.so
+%{_libdir}/pkgconfig/*.pc
+%{_includedir}/libi2ncommon/*
+
+%files config
+%defattr(-,root,root)
+%doc COPYING.GPL Linking-Exception.txt
+%{_libdir}/libi2ncommon_config.so*
+
+%if "%{with xmllib}" == "1"
+%files xml
+%defattr(-,root,root)
+%doc COPYING.GPL Linking-Exception.txt
+%{_libdir}/libi2ncommon_xml.so*
+%endif
+
+%files utils
+%defattr(-,root,root)
+%doc COPYING.GPL Linking-Exception.txt
+%{_libdir}/libi2ncommon_utils.so*