+# 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
-%define snap 20040919
-#
+%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
# Source0-md5: c203eade5e6002d279d50cae4a947964
Source1: %{name}.init
Source2: %{name}.sysconf
-Patch0: %{name}-automake.patch
+Patch0: %{name}-make.patch
URL: http://dxr3.sourceforge.net/
%if %{with userspace}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gtk+-devel >= 1.2.0
-BuildRequires: libtool
%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
formatów video, które te programy rozpoznaj±.
%package devel
-Summary: Files required to develop programs using em8300
-Summary(pl): Pliki potrzebne do tworzenia programów korzystaj±cych z em8300
+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 files and additional scripts useful for developers of em8300
-apps.
+Header file to communicate with em8300 Linux kernel modules.
%description devel -l pl
-Pliki nag³ówkowe i skrypty przydatne dla autorów aplikacji
-korzystaj±cych z em8300.
+Plik nag³ówkowy do komunikacji z modu³ami j±dra Linuksa em8300.
%package gtk
Summary: Utility programs for em8300 using GTK+
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}
-%patch0 -p1
+%setup -q
+%patch0 -p0
%build
%if %{with userspace}
-%{__libtoolize}
%{__aclocal} -I autotools
%{__autoconf}
%{__autoheader}
%if %{with kernel}
cd modules
-rm -rf include
-install -d include/{linux,config}
-ln -sf %{_kernelsrcdir}/config-smp .config
-ln -sf %{_kernelsrcdir}/include/linux/autoconf-up.h include/linux/autoconf.h
-ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
-touch include/config/MARKER
-
-%{__make} -C %{_kernelsrcdir} \
- KERNEL_LOCATION="%{_kernelsrcdir}" M=$PWD O=$PWD \
- EM8300_DEBUG="%{rpmcflags} -D__KERNEL_SMP" modules
-
-for f in em8300.ko adv717x.ko bt865.ko; do
- mv -f $f $f.smp
+for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
+ 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
+ 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
-
-%{__make} clean
-
-%{__make} \
- KERNEL_LOCATION="%{_kernelsrcdir}" \
- EM8300_DEBUG="%{rpmcflags}"
%endif
%install
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-mv -f modules/{INSTALL,INSTALL.modules}
-
-install -D modules/em8300.uc $RPM_BUILD_ROOT%{_datadir}/misc/em8300.uc
-
-install scripts/microcode_upload.pl $RPM_BUILD_ROOT%{_bindir}/em8300_microcode_upload
-
install -D %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
-
-rm -f $RPM_BUILD_ROOT%{_datadir}/em8300/{modules.tar.gz,em8300.sysv}
%endif
%if %{with kernel}
install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/kernel/drivers/video
-for f in em8300.ko adv717x.ko bt865.ko; do
- install modules/$f \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/drivers/video/$f
- install modules/$f.smp \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/video/$f
+for i in adv717x bt865 em8300; do
+ 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 \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/video/$i.ko
+done
+%endif
%endif
%clean
%if %{with userspace}
%files
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog README modules/{README*,INSTALL*,devices.sh,devfs_symlinks}
-%attr(755,root,root) %{_bindir}/em8300_microcode_upload
-%{_datadir}/misc/em8300.uc
+%doc AUTHORS ChangeLog README modules/README*
+%attr(755,root,root) %{_bindir}/em8300setup
+/lib/firmware/em8300.bin
%dir %{_datadir}/em8300
%{_datadir}/em8300/em8300.pm
%attr(755,root,root) %{_datadir}/em8300/*.pl
+%{_mandir}/man1/em8300setup.1*
%attr(754,root,root) /etc/rc.d/init.d/%{name}
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
%attr(755,root,root) %{_bindir}/autocal
%attr(755,root,root) %{_bindir}/dhc
%attr(755,root,root) %{_bindir}/dxr3view
-%attr(755,root,root) %{_bindir}/em8300setup
%endif
%if %{with kernel}
%defattr(644,root,root,755)
/lib/modules/%{_kernel_ver}/kernel/drivers/video/*.ko*
+%if %{with dist_kernel} && %{with smp}
%files -n kernel-smp-video-em8300
%defattr(644,root,root,755)
/lib/modules/%{_kernel_ver}smp/kernel/drivers/video/*.ko*
%endif
+%endif