#
# spec file for package osmo-pcu
#
# Copyright (c) 2017, Martin Hauke <mardnh@gmx.de>
#
# 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.

Name:           osmo-pcu
Version:        @VERSION@
Release:        0
Summary:        Osmocom GPRS Packet Control Unit (PCU)
License:        GPL-2.0-only
Group:          Productivity/Telephony/Servers
URL:            https://osmocom.org/projects/osmopcu
Source:         %{name}-%{version}.tar.xz
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  gcc-c++
BuildRequires:  libtool
BuildRequires:  pkgconfig >= 0.20
%if 0%{?suse_version}
BuildRequires:  systemd-rpm-macros
%endif
BuildRequires:  pkgconfig(libosmocore) >= 1.5.0
BuildRequires:  pkgconfig(libosmogb) >= 1.5.0
BuildRequires:  pkgconfig(libosmogsm) >= 1.5.0
BuildRequires:  pkgconfig(libosmovty) >= 1.5.0
BuildRequires:  pkgconfig(libosmoctrl) >= 1.5.0
%{?systemd_requires}

%description
Osmocom PCU code (RLC/MAC/PCU) for OpenBTS and OsmoBTS.

%prep
%setup -q

%build
echo "%{version}" >.tarball-version
autoreconf -fi
%configure \
  --enable-shared \
  --disable-static \
  --docdir=%{_docdir}/%{name} \
  --with-systemdsystemunitdir=%{_unitdir}
make %{?_smp_mflags}

%install
%make_install

%if 0%{?suse_version}
%preun
%service_del_preun %{name}.service

%postun
%service_del_postun %{name}.service

%pre
%service_add_pre %{name}.service

%post
%service_add_post %{name}.service
%endif

%check
make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +)

%files
%license COPYING
%doc README.md
%doc %{_docdir}/%{name}/examples
%{_bindir}/osmo-pcu
%dir %{_sysconfdir}/osmocom
%config(noreplace) %{_sysconfdir}/osmocom/osmo-pcu.cfg
%{_unitdir}/%{name}.service

%changelog
