File pjproject.spec of Package pjproject

%define realname pjproject
%define srcext   tar.bz2

%define so_ver   2

# turn off the generation of debuginfo rpm  (RH9) ??
%global debug_package %{nil}

# Common info
Name:          libpj%{?so_ver}
Version:       0
Release:       wiz%{?extraver:0.}1%{?dist}
License:       GPL-2.0+
Group:         System/Libraries
URL:           http://www.pjsip.org/
Summary:       PJSIP framework library written in C for making scalable applications

# Install-time parameters
Provides:      libpjlib-util%{?so_ver} = %{version}

# Build-time parameters
BuildRequires: pkg-config
BuildRequires: gcc-c++
BuildRequires: libuuid-devel
BuildRequires: speex-devel
BuildRequires: libsrtp2-devel
BuildRequires: alsa-devel
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libavutil)
BuildRequires: openssl-devel
BuildRequires: libopencore-amr-devel libvo-amrwbenc-devel
BuildRequires: libopus-devel
%if 0%{?suse_version}
BuildRequires: libgsm-devel
BuildRequires: libsamplerate-devel
BuildRequires: libopenh264-devel
BuildRequires: libvpx-devel
%else
BuildRequires: gsm-devel
%endif
BuildRoot:     %{_tmppath}/%{name}-root
Source:        %{realname}-%{version}%{?extraver}.%{srcext}

%description
PJLIB is an Open Source, small footprint framework library written in C for
making scalable applications. Because of its small footprint, it can be used in
embedded applications (we hope so!), but yet the library is also aimed for
facilitating the creation of high performance protocol stacks.

%package -n %{realname}-devel
Group:         Development/Languages/C and C++
Summary:       Development files for PJSIP framework
Requires:      %{name} = %{version}
Requires:      libpjmedia%{?so_ver} = %{version}
Requires:      libpjnath%{?so_ver} = %{version}
Requires:      libpjsip%{?so_ver} = %{version}
Provides:      pjlib-devel pjmedia-devel pjnath-devel pjsip-devel
Provides:      libpj-devel libpjlib-util-devel
Provides:      libpjmedia-audiodev-devel libpjmedia-codec-devel libpjmedia-devel
Provides:      libpjmedia-videodev-devel
Provides:      libpjnath-devel
Provides:      libpjsip-simple-devel libpjsip-devel libpjsip-ua-devel
Provides:      libpjsua2-devel libpjsua-devel

%description -n %{realname}-devel
Development files for PJSIP framework

%package -n libpjmedia%{?so_ver}
Group:         System/Libraries
Summary:       PJSIP multimedia framework
Provides:      libpjmedia-audiodev%{?so_ver} = %{version}
Provides:      libpjmedia-codec%{?so_ver} = %{version}
Provides:      libpjmedia-videodev%{?so_ver} = %{version}

%description -n libpjmedia%{?so_ver}
PJSIP multimedia framework and codec collections.

%package -n libpjnath%{?so_ver}
Group:         System/Libraries
Summary:       PJSIP NAT helper

%description -n libpjnath%{?so_ver}
PJNATH - Open Source ICE, STUN, and TURN Library.

PJNATH (PJSIP NAT Helper) is an open source library providing NAT traversal
functionalities by using standard based protocols such as STUN, TURN, and ICE.

%package -n libpjsip%{?so_ver}
Group:         System/Libraries
Summary:       PJSIP - Open Source SIP Stack
Provides:      libpjsip-simple%{?so_ver} = %{version}
Provides:      libpjsip-ua%{?so_ver} = %{version}
Provides:      libpjsua2_%{?so_ver} = %{version}
Provides:      libpjsua%{?so_ver} = %{version}

%description -n libpjsip%{?so_ver}
PJSIP is an Open Source SIP prototol stack, designed to be very small in
footprint, have high performance, and very flexible.

%prep
%setup -q -n %{realname}-%{version}%{?extraver}

%build
_CFLAGS='%{optflags} %{?gcc_lto}'
_LDFLAGS='-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro %{?gcc_lto}'
%configure \
 --enable-epoll \
 --enable-shared \
 --with-external-speex \
 --with-external-gsm \
 --with-external-srtp \
 --enable-resample-dll \
 --disable-sdl \
%if 0%{?suse_version}
 --enable-libsamplerate \
%else
 --disable-openh264 \
 --disable-vpx \
%endif
 CFLAGS="$_CFLAGS" \
 CXXFLAGS="$_CFLAGS" \
 LDFLAGS="$_LDFLAGS"
%{__make}
### %{?_smp_mflags}

%install
%{__make} install DESTDIR=%{buildroot}
# Install shared pjsua2 library
%{__install} -m0755 pjsip/lib/libpjsua2.* %{buildroot}%{_libdir}/

%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files
%defattr(-,root,root)
%doc COPYING
%{_libdir}/libpj.so.%{?so_ver}*
%{_libdir}/libpjlib-util.so.%{?so_ver}*

# Development stuff
%files -n %{realname}-devel
%defattr(-,root,root)
%doc COPYING README.txt
%{_libdir}/pkgconfig/lib%{realname}.pc
%dir %{_includedir}/pj/compat
%dir %{_includedir}/pj
%dir %{_includedir}/pj++
%dir %{_includedir}/pjlib-util
%dir %{_includedir}/pjmedia
%dir %{_includedir}/pjmedia-audiodev
%dir %{_includedir}/pjmedia-codec
%dir %{_includedir}/pjmedia-videodev
%dir %{_includedir}/pjnath
%dir %{_includedir}/pjsip
%dir %{_includedir}/pjsip-simple
%dir %{_includedir}/pjsip-ua
%dir %{_includedir}/pjsua-lib
%dir %{_includedir}/pjsua2
%{_includedir}/pj/compat/*.h
%{_includedir}/pj/*.h
%{_includedir}/pj++/*.hpp
%{_includedir}/pjlib-util/*.h
%{_includedir}/pjmedia/*.h
%{_includedir}/pjmedia-audiodev/*.h
%{_includedir}/pjmedia-codec/*.h
%{_includedir}/pjmedia-videodev/*.h
%{_includedir}/pjnath/*.h
%{_includedir}/pjsip/*.h
%{_includedir}/pjsip-simple/*.h
%{_includedir}/pjsip-ua/*.h
%{_includedir}/pjsua-lib/*.h
%{_includedir}/pjsua2/*.hpp
%{_includedir}/*.h
%{_includedir}/*.hpp
%{_libdir}/lib*.so
%exclude %{_includedir}/pj/compat/*.h.in
%exclude %{_includedir}/pjmedia/*.h.in
%exclude %{_includedir}/pjmedia-codec/*.h.in
%exclude %{_includedir}/pjsip/*.h.in
%exclude %{_libdir}/*.a

%files -n libpjmedia%{?so_ver}
%defattr(-,root,root)
%{_libdir}/libpjmedia*.so.%{?so_ver}*
%{_libdir}/libg7221codec.so.%{?so_ver}*
%{_libdir}/libilbccodec.so.%{?so_ver}*
%{_libdir}/libwebrtc.so.%{?so_ver}*
%{_libdir}/libyuv.so.%{?so_ver}*
%if 0%{!?suse_version:1}
%{_libdir}/libresample.so.%{?so_ver}*
%endif

%files -n libpjnath%{?so_ver}
%defattr(-,root,root)
%{_libdir}/libpjnath.so.%{?so_ver}*

%files -n libpjsip%{?so_ver}
%defattr(-,root,root)
%{_libdir}/libpjsip*.so.%{?so_ver}*
%{_libdir}/libpjsua*.so.%{?so_ver}*

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

%post   -n libpjmedia%{?so_ver} -p /sbin/ldconfig
%postun -n libpjmedia%{?so_ver} -p /sbin/ldconfig

%post   -n libpjnath%{?so_ver} -p /sbin/ldconfig
%postun -n libpjnath%{?so_ver} -p /sbin/ldconfig

%post   -n libpjsip%{?so_ver} -p /sbin/ldconfig
%postun -n libpjsip%{?so_ver} -p /sbin/ldconfig

%changelog
openSUSE Build Service is sponsored by