###############################################################################
###############################################################################
##
##  Copyright (C) 2004 Red Hat, Inc.  All rights reserved.
##
##  This copyrighted material is made available to anyone wishing to use,
##  modify, copy, or redistribute it subject to the terms and conditions
##  of the GNU General Public License v.2.
##
###############################################################################
###############################################################################
%define vers @VERS@
%define rel @REL@

%define buildup 1
%define buildsmp 1

%ifnarch i686 x86_64 athlon
%define buildsmp 0
%endif 


# ATTENTION -- do we need to obsolete GFS-[modules-][smp | hugemem]?
# Need to set a kernel version for the Requires
Name: gnbd-kernel
Version: %{vers}
Release: %{rel}
License: GPL
Group: System Environment/Kernel
Summary: gnbd-kernel - The kernel module for GFS's Network Block Device
BuildRequires: kernel
%ifarch i686 x86_64 athlon
BuildRequires: kernel-smp
%endif
Conflicts: GFS <= 6.0
Conflicts: GFS-modules
Requires: kernel gnbd
Provides: kernel-modules

Source0: %{name}-%{version}-%{release}.tar.gz

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot

%description
gnbd-kernel - The kernel module for GFS's Network Block Device

%package -n gnbd-kernheaders
Group: Development/System
Summary: gnbd kernel header files

%description -n gnbd-kernheaders
The gnbd kernel headers are used to compile the gnbd userland tools.

####################################################################################
##  THE PREP SECTION
####################################################################################
%prep
%setup -q -n %{name}-%{version}-%{release}

####################################################################################
##  THE BUILD SECTION
####################################################################################
%build
BUILD_TOPDIR=`pwd`

# When we go production, we must not use TMP_KVERSION.  Instead, we should
# ensure we are using all the right patches, etc.  Use kernel_version, set
# at top of this file.
TMP_KVERSION=`rpm -q --qf '%%{version}-%%{release}' kernel`

cp -r `pwd` ../smp

Build_gnbd(){
	cpu_type=$1
	flavor=$2
	kernel_src=/lib/modules/${TMP_KVERSION}$flavor/build
	# Kernel tree setup
	if [ -d $kernel_src/. ]; then
		echo "Kernel ${TMP_KVERSION} found."
		echo $kernel_src
	else
		echo "Kernel ${TMP_KVERSION} not found."
		echo $kernel_src
		ls /lib/modules/*
		exit 1
	fi
        ./configure --kernel_src=$kernel_src --incdir=%{_includedir}
        make
}

%if %{buildup}
Build_gnbd %{_target_cpu}
%endif

%if %{buildsmp}
cd ../smp
Build_gnbd %{_target_cpu} smp
%endif

####################################################################################
##  THE INSTALL SECTION
####################################################################################
%install
rm -rf $RPM_BUILD_ROOT

%if %{buildup}
make install DESTDIR=$RPM_BUILD_ROOT
%endif

%if %{buildsmp}
cd ../smp
make install DESTDIR=$RPM_BUILD_ROOT
%endif


####################################################################################
##  THE CLEAN SECTION
####################################################################################
%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
/lib/modules
%doc

%files -n gnbd-kernheaders
%defattr(-,root,root,-)
%{_includedir}/linux/gnbd.h
%doc


%changelog
* Mon Oct 25 2004 Chris Feist <cfeist@redhat.com>
- various bug fixes (new upstream sources)
* Tue Aug 17 2004 Jon Brassow <jbrassow@redhat.com>
- various bug fixes (new upstream sources)
- building smp modules, but not packaging them (fixed)
* Thu Jun 17 2004 Jon Brassow <jbrassow@redhat.com> 
- Initial build.


