git/DoKernelOrg

133 lines
2.5 KiB
Bash
Executable file

#!/bin/sh
case "`uname -m 2>/dev/null`" in
x86_64)
USE_PIC=YesPlease
export USE_PIC
;;
esac
: ${J='-l 4 -j'}
G=/pub/software/scm/git &&
cd $HOME/git &&
make clean >/dev/null 2>&1 &&
git reset --hard &&
make clean >/dev/null 2>&1 &&
git checkout master &&
make clean >/dev/null 2>&1 &&
case "$(asciidoc --version 2>&1)" in
asciidoc' 8'.*)
ASCIIDOC8=YesPlease
export ASCIIDOC8 ;;
esac
case "$1" in
'')
echo "* Building all"
: ${branches='next master maint pu'}
nstalled=install
for branch in $branches
do
if git rev-parse --verify refs/heads/$branch 2>/dev/null
then
echo "** $branch **" &&
git checkout $branch &&
make $J $nstalled &&
make test &&
make clean &&
nstalled=all || exit $?
else
echo
echo "* NO $branch"
echo
fi
done >:all.log 2>&1
;;
maint | maint-* | master)
rm -f version
case `hostname` in
hera.kernel.org)
narch='x86_64 i386'
arch=x86_64 ;;
wing-fc?|kunrun-vmw-fc5)
arch=i386 ;;
*) echo >&2 "What are you talking about???"
exit 1 ;;
esac &&
: >./:all.log &&
echo "* Building $1" &&
git checkout "$1" &&
make $J git >./:all.log 2>&1 &&
V=`./git --version | sed -e 's/git version //'` &&
make rpm >>./:all.log 2>&1 &&
case "$narch" in
'')
# This is not the primary build machine.
status=$?
case "$status" in
0)
echo >&2 "Done -- move RPMS to the master machine."
(
cd "$HOME/rpms/" &&
tar cf "$HOME/$V.tar" \
RPMS/$arch/*-$V-*.$arch.rpm &&
ls -ld $HOME/$V.tar
)
make clean
;;
?)
echo >&2 "Failed with status $status"
;;
esac
exit $status ;;
*)
make dist-doc >>./:all.log 2>&1 &&
ln -f git-$V.tar.gz $G/. &&
ln -f git-htmldocs-$V.tar.gz git-manpages-$V.tar.gz $G/.
;;
esac >>./:all.log 2>&1 &&
case "$V" in
*.rc[0-9]* | *-rc[0-9]*)
mkdir -p $G/testing &&
for a in $narch
do
for rr in $HOME/rpms/RPMS/$a/*-$V-*.$a.rpm
do
test -f "$rr" || continue
ln -f "$rr" $G/testing/.
done
done &&
ln -f $HOME/rpms/SRPMS/git-$V-*.src.rpm $G/testing/.
;;
*)
mkdir -p $G/RPMS/$arch $G/RPMS/SRPMS &&
for a in $narch
do
mkdir -p "$G/RPMS/$a" &&
for rr in $HOME/rpms/RPMS/$a/*-$V-*.$a.rpm
do
test -f "$rr" || continue
ln -f "$rr" $G/RPMS/$a/.
done
done &&
ln -f $HOME/rpms/SRPMS/git-$V-*.src.rpm $G/RPMS/SRPMS/. &&
{
# I do not know how it exits, and I do not care much.
for a in $narch
do
/usr/local/bin/yummy $G/RPMS/$a
done
/usr/local/bin/yummy $G/RPMS/SRPMS
:
} >>./:all.log 2>&1 ;;
esac &&
make clean &&
: ;;
esac || exit $?
git checkout master