#
# Conditional build:
-# _without_dist_kernel without distribution kernel
+%bcond_without dist_kernel # without distribution kernel
#
-# TODO:
-# - UP/SMP scheme, pass CC and CFLAGS
-%define _orig_name acx100_pci
-
Summary: Linux driver for WLAN card base on ACX100
Summary(pl): Sterownik dla Linuksa do kart bezprzewodowych na uk³adzie ACX100
Name: kernel-net-acx100
Version: 0.2.0pre6_plus_fixes_7
-%define _rel 0.1
+%define _rel 1
Release: %{_rel}@%{_kernel_ver_str}
-License: GPL
+License: MPL or GPL
Group: Base/Kernel
Source0: http://rhlx01.fht-esslingen.de/~andi/acx100/acx100-%{version}.tar.bz2
# Source0-md5: d03a9252ad411bd77eeb508a34bca8bd
URL: http://acx100.sourcefroge.net/index.html
-%{!?_without_dist_kernel:BuildRequires: kernel-headers >= 2.4.0}}
+%{?with_dist_kernel:BuildRequires: kernel-headers >= 2.4.0}
+BuildRequires: %{kgcc_package}
BuildRequires: rpmbuild(macros) >= 1.118
-%{!?_without_dist_kernel:%requires_releq_kernel_up}
+%{?with_dist_kernel:%requires_releq_kernel_up}
Requires(post,postun): /sbin/depmod
Obsoletes: kernel-net-acx100
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description -l pl
Sterownik dla Linuksa do kart WLAN opartych o uk³ad ACX100.
+%package -n kernel-smp-net-acx100
+Summary: Linux SMP driver for WLAN card base on ACX100
+Summary(pl): Sterownik dla Linuksa SMP do kart bezprzewodowych na uk³adzie ACX100
+Group: Base/Kernel
+%{?with_dist_kernel:%requires_releq_kernel_smp}
+Requires(post,postun): /sbin/depmod
+
+%description -n kernel-smp-net-acx100
+Linux SMP driver for WLAN card base on ACX100.
+
+%description -n kernel-smp-net-acx100 -l pl
+Sterownik dla Linuksa SMP do kart bezprzewodowych na uk³adzie ACX100.
+
%prep
-%setup -q -c
+%setup -q -n acx100-%{version}
%build
-%{__make} -C acx100-%{version}
+cat > config.mk <<EOF
+KERNEL_BUILD=%{_kernelsrcdir}
+VERSION_CODE=`grep LINUX_VERSION_CODE %{_kernelsrcdir}/include/linux/version.h | sed -e 's/[^0-9]//g'`
+EOF
+%{__make} \
+ CC="%{kgcc}" \
+ CPPFLAGS="-D__KERNEL__ -DMODULE -DACX_DEBUG=1 -DWLAN_HOSTIF=WLAN_PCI -I%{_kernelsrcdir}/include -I../include" \
+ CFLAGS="%{rpmcflags} -fno-strict-aliasing -fno-common -fomit-frame-pointer -Wall -Wstrict-prototypes -Wno-trigraphs"
+mv -f src/acx100_pci.o acx100_pci-up.o
+mv -f src/acx100_usb.o acx100_usb-up.o
+
+%{__make} clean -C src
+%{__make} \
+ CC="%{kgcc}" \
+ CPPFLAGS="-D__KERNEL__ -D__KERNEL_SMP -DMODULE -DACX_DEBUG=1 -DWLAN_HOSTIF=WLAN_PCI -I%{_kernelsrcdir}/include -I../include" \
+ CFLAGS="%{rpmcflags} -fno-strict-aliasing -fno-common -fomit-frame-pointer -Wall -Wstrict-prototypes -Wno-trigraphs"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc
-install acx100-%{version}/src/%{_orig_name}.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/%{_orig_name}.o
+install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
+
+install acx100_pci-up.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/acx100_pci.o
+install acx100_usb-up.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/acx100_usb.o
+install src/acx100_pci.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/acx100_pci.o
+install src/acx100_usb.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/acx100_usb.o
%clean
rm -rf $RPM_BUILD_ROOT
%postun
%depmod %{_kernel_ver}
+%post -n kernel-smp-net-acx100
+%depmod %{_kernel_ver}
+
+%postun -n kernel-smp-net-acx100
+%depmod %{_kernel_ver}
+
%files
%defattr(644,root,root,755)
-#%doc readme
-/lib/modules/%{_kernel_ver}/misc/*
+%doc ChangeLog README TODO doc/*
+/lib/modules/%{_kernel_ver}/misc/*.o*
+
+%files -n kernel-smp-net-acx100
+%defattr(644,root,root,755)
+%doc ChangeLog README TODO doc/*
+/lib/modules/%{_kernel_ver}smp/misc/*.o*