-#
-# TODO: .init script calls em8300_microcode_upload, which has been killed
+# TODO
+# - cc
#
# Conditional build:
-%bcond_without dist_kernel # without distribution kernel
+%bcond_without dist_kernel # allow non-distribution kernel
%bcond_without kernel # don't build kernel modules
%bcond_without smp # don't build SMP module
%bcond_without userspace # don't build userspace tools
%bcond_with verbose # verbose build (V=1)
-#
+
+%ifarch sparc
+# kernel modules won't build on sparc32, no I2C in kernel
+%undefine with_kernel
+%endif
+
+%if !%{with kernel}
+%undefine with_dist_kernel
+%endif
+
Summary: DXR3 and H+ driver
Summary(pl): Sterowniki dla DXR3 i H+
Name: em8300
Version: 0.15.2
-Release: 0.1
+Release: 2
License: GPL
Group: Applications/System
Source0: http://dl.sourceforge.net/dxr3/%{name}-%{version}.tar.gz
BuildRequires: automake
BuildRequires: gtk+-devel >= 1.2.0
%endif
-%if %{with kernel} && %{with dist_kernel}
-BuildRequires: kernel-headers
-BuildRequires: rpmbuild(macros) >= 1.118
+%if %{with kernel}
+%{?with_dist_kernel:BuildRequires: kernel-module-build >= 3:2.6.14}
+BuildRequires: rpmbuild(macros) >= 1.286
%endif
Requires(post,preun): /sbin/chkconfig
Provides: dxr3
+Obsoletes: em8300-libs
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary: Header file to communicate with em8300 Linux kernel modules
Summary(pl): Plik nag³ówkowy do komunikacji z modu³ami j±dra Linuksa em8300
Group: Development/Libraries
+Obsoletes: em8300-static
%description devel
Header file to communicate with em8300 Linux kernel modules.
Summary: em8300 Linux kernel modules
Summary(pl): Modu³y j±dra Linuksa em8300
Group: Base/Kernel
-%{?with_dist_kernel:%requires_releq_kernel_up}
Requires(post,postun): /sbin/depmod
+%if %{with dist_kernel}
+%requires_releq_kernel_up
+Requires(postun): %releq_kernel_up
+%endif
%description -n kernel-video-em8300
em8300 Linux kernel modules.
Summary: em8300 Linux SMP kernel modules
Summary(pl): Modu³y j±dra Linuksa SMP em8300
Group: Base/Kernel
-%{?with_dist_kernel:%requires_releq_kernel_smp}
Requires(post,postun): /sbin/depmod
+%if %{with dist_kernel}
+%requires_releq_kernel_smp
+Requires(postun): %releq_kernel_smp
+%endif
%description -n kernel-smp-video-em8300
em8300 Linux SMP kernel modules.
Modu³y j±dra Linuksa SMP em8300.
%prep
-%setup -q -n %{name}-%{version}
+%setup -q
%patch0 -p0
%build
%if %{with kernel}
cd modules
for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
- if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
- exit 1
- fi
- rm -rf include/{linux,config,asm}
- install -d include/{linux,config}
- ln -sf %{_kernelsrcdir}/config-$cfg .config
- ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
-%ifarch ppc ppc64
- install -d include/asm
- [ ! -d %{_kernelsrcdir}/include/asm-powerpc ] || ln -sf %{_kernelsrcdir}/include/asm-powerpc/* include/asm
- [ ! -d %{_kernelsrcdir}/include/asm-%{_target_base_arch} ] || ln -snf %{_kernelsrcdir}/include/asm-%{_target_base_arch}/* include/asm
-%else
-ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
+ if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
+ exit 1
+ fi
+ install -d o/include/linux
+ ln -sf %{_kernelsrcdir}/config-$cfg o/.config
+ ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
+ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
+%if %{with dist_kernel}
+ %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
%endif
- ln -sf %{_kernelsrcdir}/Module.symvers-$cfg Module.symvers
- touch include/config/MARKER
- cp ../include/linux/em8300.h include/linux/em8300.h
-
- %{__make} -C %{_kernelsrcdir} clean \
- RCS_FIND_IGNORE="-name '*.ko' -o" \
- M=$PWD O=$PWD \
- %{?with_verbose:V=1}
- %{__make} -C %{_kernelsrcdir} modules \
- CC="%{__cc}" CPP="%{__cpp}" \
- M=$PWD O=$PWD \
- %{?with_verbose:V=1}
- for i in em8300 adv717x bt865; do
- mv $i{,-$cfg}.ko
- done
+ install -d o/include/config
+ touch o/include/config/MARKER
+ ln -sf %{_kernelsrcdir}/scripts o/scripts
+
+ cp ../include/linux/em8300.h o/include/linux/em8300.h
+
+ %{__make} -C %{_kernelsrcdir} clean \
+ RCS_FIND_IGNORE="-name '*.ko' -o" \
+ SYSSRC=%{_kernelsrcdir} \
+ SYSOUT=$PWD/o \
+ M=$PWD O=$PWD/o \
+ %{?with_verbose:V=1}
+ %{__make} -C %{_kernelsrcdir} modules \
+ CC="%{__cc}" CPP="%{__cpp}" \
+ SYSSRC=%{_kernelsrcdir} \
+ SYSOUT=$PWD/o \
+ M=$PWD O=$PWD/o \
+ %{?with_verbose:V=1}
+
+ for i in em8300 adv717x bt865; do
+ mv $i{,-$cfg}.ko
+ done
done
%endif
%if %{with kernel}
install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/kernel/drivers/video
for i in adv717x bt865 em8300; do
- install modules/$i-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
+ install modules/$i-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
$RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/drivers/video/$i.ko
done
%if %{with smp} && %{with dist_kernel}
for i in adv717x bt865 em8300; do
- install modules/$i-smp.ko \
+ install modules/$i-smp.ko \
$RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/video/$i.ko
done
%endif