blob: 9a720fa35b2c98b5ff71a187de959de2ebd76593 [file] [log] [blame]
%{!?disable_offload:%define disable_offload 0}
%{!?disable_toecore:%define disable_toecore 0}
%{!?disable_bonding:%define disable_bonding 0}
%{!?release:%define release 0}
%{!?kversion:%define kversion %(uname -r)}
## Summary offload string define.
%if %{disable_offload}
%define offload ""
%else
%define offload "Offload "
%endif
Summary: Chelsio Terminator 3 %{offload}driver for Linux
Name: %{name}
Version: %{version}
Release: %{release}
License: GPL
Group: System Environment/Kernel
URL: http://www.chelsio.com
Vendor: Chelsio Communications, Inc.
Packager:Chelsio Communications, Inc. <http://www.chelsio.com>
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{kversion}-root
#BuildRequires: kernel-devel
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 powerpc
ExclusiveOS: linux
%if %{disable_offload}
%define conflict_name %{name}toe
%else
%define conflict_name %(echo %{name} | %{__sed} 's/toe//')
%endif
Provides: %{name}
Provides: %{name}-%{version}
Conflicts: %{conflict_name}
%define drvbase /lib/modules/%{kversion}/updates/kernel
%define fwdir /lib/firmware/cxgb3
%define rpmfiles %{_topdir}/BUILD/%{name}-%{version}/rpmfiles.txt
%description
The Chelsio Terminator 3 Ethernet Adapter driver for Linux kernel (%{kversion}).
%prep
## cxgb3 driver
%{__mkdir} -p %{name}-%{version}/cxgb3/
%{__cp} -a %{srcdir}/cxgb3/cxgb3.ko %{name}-%{version}/cxgb3/
echo "%{drvbase}/drivers/net/cxgb3/cxgb3.ko" > %{rpmfiles}
## firmware
%{__mkdir} -p %{name}-%{version}/firmware/
%{__cp} -a %{srcdir}/firmware/*.bin %{name}-%{version}/firmware/
for file in $(/bin/ls %{_topdir}/BUILD/%{name}-%{version}/firmware/*.bin 2>/dev/null); do
echo "%{fwdir}/$(basename $file)" >> %{rpmfiles}
done
## protosram
%{__mkdir} -p %{name}-%{version}/protosram/
%{__cp} -a %{srcdir}/protosram/*.bin %{name}-%{version}/protosram/
for file in $(/bin/ls %{_topdir}/BUILD/%{name}-%{version}/protosram/*.bin 2>/dev/null); do
echo "%{fwdir}/$(basename $file)" >> %{rpmfiles}
done
## offload drivers
if ((!%{disable_offload})); then
%{__mkdir} -p %{name}-%{version}/t3_tom/
%{__cp} -a %{srcdir}/t3_tom/t3_tom.ko %{name}-%{version}/t3_tom/
echo "%{drvbase}/drivers/net/offload/t3_tom/t3_tom.ko" >> %{rpmfiles}
if ((!%{disable_toecore})); then
%{__mkdir} -p %{name}-%{version}/toecore/
%{__cp} -a %{srcdir}/toecore/toecore.ko %{name}-%{version}/toecore/
echo "%{drvbase}/drivers/net/offload/toecore.ko" >> %{rpmfiles}
fi
if ((!%{disable_bonding})); then
%{__mkdir} -p %{name}-%{version}/bonding/
%{__cp} -a %{srcdir}/bonding/bonding.ko %{name}-%{version}/bonding/
echo "%{drvbase}/drivers/net/bonding/bonding.ko" >> %{rpmfiles}
fi
fi
%build
## Nothing to do here.
%pre
%post
## Workaround for auto-loading infiniband drivers.
file=/etc/modprobe.d/libcxgb3.conf
lines=`grep -n "^install cxgb3 " $file 2>/dev/null | sed 's/:.*//g' | sort -gr`
string="# Disabled by Chelsio Makefile on `date`"
for i in $lines; do
sed -i "$i"'s/^install cxgb3\s/#install cxgb3 /' $file
let i-=1
sed -i "$i"'a'"$string" $file
done
## Generate new module dependencies.
depmod
exit 0
%postun
## Workaround for auto-loading infiniband drivers.
file=/etc/modprobe.d/libcxgb3.conf
string="# Disabled by Chelsio Makefile"
lines=`grep -n "^$string" $file 2>/dev/null | sed 's/:.*//g' | sort -gr`
for i in $lines; do
sed -i "$i"'d' $file
sed -i "$i"'s/^#//' $file
done
## Update module dependencies.
depmod
exit 0
%install
cd %{_topdir}/BUILD/%{name}-%{version}
%{__install} -D -v cxgb3/cxgb3.ko %{buildroot}/%{drvbase}/drivers/net/cxgb3/cxgb3.ko
for file in $(/bin/ls %{_topdir}/BUILD/%{name}-%{version}/firmware/*.bin 2>/dev/null); do
%{__install} -D -v $file %{buildroot}/%{fwdir}/$(basename $file)
done
for file in $(/bin/ls %{_topdir}/BUILD/%{name}-%{version}/protosram/*.bin 2>/dev/null); do
%{__install} -D -v $file %{buildroot}/%{fwdir}/$(basename $file)
done
if ((! %{disable_offload})); then
%{__install} -D -v t3_tom/t3_tom.ko %{buildroot}/%{drvbase}/drivers/net/offload/t3_tom/t3_tom.ko
if ((! %{disable_toecore})); then
%{__install} -D -v toecore/toecore.ko %{buildroot}/%{drvbase}/drivers/net/offload/toecore.ko
fi
if ((! %{disable_bonding})); then
%{__install} -D -v bonding/bonding.ko %{buildroot}/%{drvbase}/drivers/net/bonding/bonding.ko
fi
fi
%files -f %{_builddir}/%{name}-%{version}/rpmfiles.txt
%defattr(744,root,root)
%clean
%{__rm} -rf %{buildroot}
%changelog