120 lines
2.6 KiB
Bash
Executable File
120 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#########################################################################
|
|
# #
|
|
# OCaml #
|
|
# #
|
|
# Nicolas Pouillard, projet Gallium, INRIA Rocquencourt #
|
|
# #
|
|
# Copyright 2007 Institut National de Recherche en Informatique et #
|
|
# en Automatique. All rights reserved. This file is distributed #
|
|
# under the terms of the Q Public License version 1.0. #
|
|
# #
|
|
#########################################################################
|
|
|
|
# If you want to help me by participating to the build/test effort:
|
|
# http://gallium.inria.fr/~pouillar/ocaml-testing.html
|
|
# -- Nicolas Pouillard
|
|
|
|
usage() {
|
|
echo "Usage: $0 (make|ocb|ocamlbuild) (win (mingw|msvc|msvc64) | <configure-arg>*)"
|
|
exit 1
|
|
}
|
|
|
|
logfile="buildbot.log"
|
|
|
|
finish() {
|
|
curl -s -0 -F "log=@$logfile" \
|
|
-F "host=`hostname`" \
|
|
-F "mode=$mode-$opt_win-$opt_win2" \
|
|
http://buildbot.feydakins.org/dropbox || :
|
|
}
|
|
|
|
rm -f buildbot.failed
|
|
rm -f $logfile
|
|
|
|
bad() {
|
|
touch buildbot.failed
|
|
}
|
|
|
|
finish_if_bad() {
|
|
if [ -f buildbot.failed ]; then
|
|
finish
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
if figlet "test" > /dev/null 2> /dev/null; then
|
|
draw="figlet"
|
|
else
|
|
draw="echo ----------- "
|
|
fi
|
|
|
|
if echo | tee -a tee.log > /dev/null 2> /dev/null; then
|
|
tee="tee -a $logfile"
|
|
else
|
|
tee=:
|
|
fi
|
|
|
|
rm -f tee.log
|
|
|
|
log() {
|
|
$draw $@
|
|
$tee
|
|
}
|
|
|
|
mode=$1
|
|
shift 1
|
|
|
|
case "$mode" in
|
|
make|ocb|ocamlbuild) : ;;
|
|
*) usage;;
|
|
esac
|
|
|
|
case "$1" in
|
|
win)
|
|
opt_win=win
|
|
opt_win2=$2
|
|
shift 2
|
|
Makefile=Makefile.nt;;
|
|
*) Makefile=Makefile;;
|
|
esac
|
|
|
|
( [ -f config/Makefile ] && make -f $Makefile clean || : ) 2>&1 | log clean
|
|
|
|
( ./build/distclean.sh || : ) 2>&1 | log distclean
|
|
|
|
(cvs -q up -dP -r release311 || bad) 2>&1 | log cvs up
|
|
finish_if_bad
|
|
|
|
case "$opt_win" in
|
|
win)
|
|
cp config/m-nt.h config/m.h || bad
|
|
finish_if_bad
|
|
cp config/s-nt.h config/s.h || bad
|
|
finish_if_bad
|
|
;;
|
|
|
|
*)
|
|
(./configure --prefix `pwd`/_install $@ || bad) 2>&1 | log configure
|
|
finish_if_bad
|
|
;;
|
|
esac
|
|
|
|
case "$mode" in
|
|
make)
|
|
(make -f $Makefile world opt opt.opt install || bad) 2>&1 | log build install
|
|
finish_if_bad
|
|
;;
|
|
ocb|ocamlbuild)
|
|
(./build/fastworld.sh || bad) 2>&1 | log build
|
|
finish_if_bad
|
|
(./build/install.sh || bad) 2>&1 | log install
|
|
finish_if_bad
|
|
;;
|
|
esac
|
|
|
|
(cat _build/not_installed || bad) 2>&1 | log not_installed
|
|
|
|
finish
|