RedHat: don't package manpages for binaries not included
[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