Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / packaging / RedHat / openafs-buildall.sh
1 #!/bin/sh
2 #
3 # build all of openafs for all the various kernels installed on this system.
4 #
5 # Written by: Derek Atkins <warlord@MIT.EDU>
6 #
7 # $Revision$
8 #
9
10 # Define where the Specfile is located.
11 specdir=/usr/src/redhat/SPECS
12
13 # Define the rpmbuild options you want to supply.
14 buildopts=
15
16 ############################################################################
17 # Figure out the release version
18 [ -f /etc/redhat-release ] && rhrel=`cat /etc/redhat-release`
19 [ -f /etc/SuSE-release ] && rhrel=`head -1 /etc/SuSE-release`
20
21 if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
22 ostype='fc'
23 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
24 elif [ `echo $rhrel | grep -c 'Fedora'` = 1 ] ; then
25 ostype='fc'
26 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
27 elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
28 ostype='rhel'
29 excludearch=i586
30 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
31 elif [ `echo $rhrel | grep -c 'CentOS'` = 1 ] ; then
32 ostype='rhel'
33 excludearch=i586
34 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
35 elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
36 ostype='rh'
37 osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
38 elif [ `echo $rhrel | grep -c 'SUSE'` = 1 ] ; then
39 ostype='suse'
40 specdir=/usr/src/packages/SPECS
41 osrel=`grep VERSION /etc/SuSE-release|awk '{print $3}'`
42 else
43 echo "Unknown Linux Release: $rhrel"
44 exit 1
45 fi
46 osvers="$ostype$osrel"
47
48 ############################################################################
49 # Now figure out the kernel version. We assume that the running
50 # kernel version is "close enough" to tell us whether it's a
51 # 2.4 or 2.6 kernel.
52 kvers=`uname -r`
53 kbase=/usr/src/linux-
54
55 case $kvers in
56 2.4.*)
57 kv=2.4.
58 ;;
59 2.6.*)
60 [ -d /usr/src/kernels ] && kbase=/usr/src/kernels/
61 kv=2.6.
62 ;;
63 *)
64 echo "I don't know how to build for kernel $kvers"
65 exit 1
66 ;;
67 esac
68 ############################################################################
69 # Now build the packages and all the kernel modules
70
71 echo "Building OpenAFS for $osvers"
72 rpmbuild -ba $buildopts --define "osvers $osvers" $specdir/openafs.spec || \
73 exit 1
74
75 kernels=`ls -d ${kbase}${kv}*`
76
77 for kerndir in $kernels ; do
78 # Ignore symlinks
79 if [ ! -h $kerndir ] ; then
80 vers=`echo $kerndir | sed -e "s^${kbase}^^g" -e 's/-smp/smp/g' \
81 -e 's/-hugemem/hugemem/g' -e 's/-largesmp/largesmp/g'`
82 if [ $kv = "2.4." ] ; then
83 kvers=$vers
84 case `uname -m` in
85 i386|i486|i586|i686|athlon) archlist="i586 i686 athlon" ;;
86 *) archlist=`uname -m` ;;
87 esac
88 for a in $excludearch ; do
89 archlist=`echo $archlist | sed -e s/$a//`
90 done
91 kend="''"
92 else
93 karch=`echo $vers | sed 's/.*-//'`
94 kvers=`echo $vers | sed s/-$karch//`
95 archlist=$karch
96 kend=-$karch
97 fi
98
99 for arch in $archlist ; do
100 echo "Building for $kerndir, $kvers, $arch"
101 rpmbuild -bb $buildopts \
102 --define "osvers $osvers" \
103 --define "kernvers $kvers" \
104 --define "ksrcdir $kerndir" \
105 --define "build_modules 1" \
106 --target=$arch \
107 $specdir/openafs.spec || exit 1
108 done
109 fi
110 done