File libpfm.spec of Package libpfm

#
# spec file for package libpfm
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%{!?with_python: %global with_python 1}

Name:           libpfm
Version:        4.4.0
Release:        1
%define vname   libpfm4
Summary:        Library to encode performance events
License:        MIT
Group:          Development/Libraries/C and C++
Url:            http://perfmon2.sourceforge.net/
Source:         http://downloads.sourceforge.net/project/perfmon2/libpfm4/%{name}-%{version}.tar.gz
Source1:        baselibs.conf
%if %{with_python}
BuildRequires:  python-devel
BuildRequires:  swig
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Patch1:         libpfm-add-ibm-power8-support.patch

%description
This package provides a library that can be used to encode events into the
format required by the operating systems performance monitoring subsystem.

%package -n %{vname}

Summary:        Runtime library to encode performance events for use by perf tool
Group:          System/Libraries

%description -n %{vname}
This package provides a library that can be used to encode events into the 
format required by the operating systems performance monitoring subsystem.
The library does not make any performance monitoring system calls, it simply 
provides a method to convert an event name, expressed as a string, to an event 
encoding. The user of the library may use this event encoding in a subsequent 
system call.

The current libpfm4 provides support for the perf_events interface which was
introduced in Linux v2.6.31.

%package        devel

Summary:        Development library to encode performance events for perf_events interface
Group:          Development/Libraries/C and C++
Requires:       %{vname} = %{version}

%description devel
This package provides development libraries and header files used to encode performance events for perf_events interface.

%package        devel-static

Summary:        Static library version of libpfm
Group:          Development/Libraries/C and C++
Requires:       %name-devel = %version

%description devel-static
This package contains the static variant of libpfm.

%if %{with_python}

%package -n     python-%name

Summary:        Python bindings for libpfm and perf_event_open system call
Group:          Development/Libraries/Python
Requires:       %{vname} = %{version}

%description -n python-%name
This package provides python bindings for the libpfm4 package and the perf_event_open system call.
%endif

%prep
%setup -q
%patch1 -p1

%build
%if %{with_python}
%global python_config CONFIG_PFMLIB_NOPYTHON=n
%else
%global python_config CONFIG_PFMLIB_NOPYTHON=y
%endif
make %{?_smp_mflags} %{python_config}

%install

%if %{with_python}
%global python_config CONFIG_PFMLIB_NOPYTHON=n PYTHON_PREFIX="%buildroot/%py_prefix"
%else
%global python_config CONFIG_PFMLIB_NOPYTHON=y
%endif

make \
    PREFIX="%buildroot/%_prefix" \
    LIBDIR="%buildroot/%_libdir" \
    %{python_config} \
    LDCONFIG=/bin/true \
    install

%if %{with_python}
# temp hack to fix rpmlint file-contains-buildroot for *.pyc
# http://lists.opensuse.org/opensuse-factory/2012-01/msg00235.html
find "%{buildroot}/%{python_sitearch}/" -name '*.pyc' -delete
%__python -c 'import compileall; compileall.compile_dir("%{buildroot}%{python_sitearch}/", ddir="%{python_sitearch}/", force=1)'
%endif

%post -n %{vname} -p /sbin/ldconfig

%postun	-n %{vname} -p /sbin/ldconfig

%files -n %{vname}
%defattr(644,root,root,755)
%doc README
%attr(755,root,root) %{_libdir}/lib*.so.*

%files devel
%defattr(644,root,root,755)
%{_includedir}/*
%{_mandir}/man3/*
%{_libdir}/lib*.so

%files devel-static
%defattr(-,root,root)
%{_libdir}/lib*.a

%if %{with_python}

%files -n python-%name
%defattr(644,root,root,755)
%attr(755,root,root) %{python_sitearch}/*
%endif

%changelog
openSUSE Build Service is sponsored by