# INTEL CONFIDENTIAL
# Copyright 2009 Intel Corporation All Rights Reserved. 
# The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel’s prior express written permission.
#
# No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing.

Summary: MIX Video
Name: mixvideo
Version: 0.1.20
Release: 1
Source0: %{name}-%{version}.tar.bz2
NoSource: 0
License: Proprietary
Group: System Environment/Libraries
BuildRoot: %{_tmppath}/%{name}-root
ExclusiveArch: i586
Requires: glib2 , mixcommon, mixvbp, libva, libX11
BuildRequires: glib2-devel mixcommon-devel mixvbp-devel libva-devel libX11-devel

%description
MIX Video is an user library interface for various video codecs available on the platform.

## devel package ##

%package devel
Summary: Libraries include files
Group: Development/Libraries
Requires: %{name} = %{version}, mixcommon-devel , glib2-devel

%description devel
The %{name}-devel package contains the header files and static libraries for building applications which use %{name}.

## internal devel package ##

%package int-devel
Summary: Libraries include files
Group: Development/Libraries
Requires: %{name} = %{version}, mixcommon-devel , glib2-devel, mixvbp-devel

%description int-devel
The %{name}-int-devel package contains the header files and static libraries for building applications which use %{name}.

%prep
%setup -q

%build
./autogen.sh
./configure --prefix=%{_prefix}
make

%install
make DESTDIR=$RPM_BUILD_ROOT install

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root)
%{_prefix}/lib/libmixvideo.so.*

%files devel
%defattr(-,root,root)
%{_prefix}/include/mix
%{_prefix}/lib/libmixvideo.so
%{_prefix}/lib/*.la
%{_prefix}/lib/pkgconfig/mixvideo.pc

%files int-devel
%defattr(-,root,root)
%{_prefix}/lib/libmixvideo.so
%{_prefix}/include/mixvideoint
%{_prefix}/lib/pkgconfig/mixvideoint.pc

%changelog
* Mon Sep 13 2010 John Q Public <umg@intel.com> 0.0
- Dummy changelog to satisfy rpmlint.

