150 lines
2.5 KiB
Bash
Executable File
150 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
if [ -t 2 ]
|
|
then
|
|
BOLD="\033[1m"
|
|
GREEN="\033[1;32m"
|
|
NORMAL="\033[0m"
|
|
RED="\033[1;31m"
|
|
YELLOW="\033[1;33m"
|
|
else
|
|
BOLD=""
|
|
GREEN=""
|
|
NORMAL=""
|
|
RED=""
|
|
YELLOW=""
|
|
fi
|
|
|
|
script=`basename $0`
|
|
|
|
die () {
|
|
echo "${BOLD}$script: ${RED}error:${NORMAL} $*" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
fatal () {
|
|
echo "${BOLD}$script: ${RED}fatal error:${NORMAL} $*" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
msg () {
|
|
echo "$script: $*" 1>&2
|
|
}
|
|
|
|
wrn () {
|
|
echo "${BOLD}$script: ${YELLOW}warning:${NORMAL} $*" 1>&2
|
|
}
|
|
|
|
cd `dirname $0`/..
|
|
root=`pwd`
|
|
|
|
tmp=/tmp/`basename $script .sh`
|
|
name=$tmp.name
|
|
rm -f $tmp*
|
|
|
|
usage () {
|
|
cat <<EOF
|
|
usage: $script [-h][-f]
|
|
EOF
|
|
}
|
|
|
|
force=no
|
|
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case "$1" in
|
|
-h) usage; exit 0;;
|
|
-f) force=yes;;
|
|
*) die "invalid option '$1'";;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ $force = yes ]
|
|
then
|
|
wrn "not checking commit status (due to '-f')"
|
|
forceoption="-f"
|
|
else
|
|
msg "will check commit status (use '-f' to disable)"
|
|
forceoption=""
|
|
fi
|
|
|
|
msg "first generating source code tar file"
|
|
./scripts/make-source-release.sh $forceoption -t $name || exit 1
|
|
source="`cat $name`"
|
|
[ -f "$source" ] || fatal "can not access tar '$source'"
|
|
msg "source code tar '$source'"
|
|
|
|
version=`cat VERSION`
|
|
base=kissat-${version}-starexec
|
|
dir=/tmp/$base
|
|
|
|
rm -rf $dir
|
|
|
|
mkdir $dir
|
|
mkdir $dir/bin
|
|
mkdir $dir/build
|
|
mkdir $dir/archive
|
|
|
|
msg "generated '$dir' structure"
|
|
|
|
cp -p "$source" $dir/archive
|
|
msg "copied source code archive"
|
|
|
|
starexec_build=$dir/starexec_build
|
|
cat <<EOF >$starexec_build
|
|
#!/bin/sh
|
|
cd build
|
|
exec ./build.sh
|
|
EOF
|
|
chmod 755 $starexec_build
|
|
|
|
for config in default sat unsat
|
|
do
|
|
|
|
build=$dir/build/build.sh
|
|
cat <<EOF > $build
|
|
#!/bin/sh
|
|
tar xf ../archive/kissat*
|
|
mv kissat* kissat
|
|
cd kissat
|
|
./configure --competition --$config --test
|
|
make all || exit 1
|
|
build/tissat || exit 1
|
|
exec install -s build/kissat ../../bin/
|
|
EOF
|
|
chmod 755 $build
|
|
|
|
starexec_run_default=$dir/bin/starexec_run_default
|
|
cat <<EOF >$starexec_run_default
|
|
#!/bin/sh
|
|
exec ./kissat --$config \$1 \$2/proof.out
|
|
EOF
|
|
chmod 755 $starexec_run_default
|
|
|
|
msg "generated '$config' build and run scripts"
|
|
|
|
description=$dir/starexec_description.txt
|
|
cat <<EOF>$description
|
|
Keep it Simple bare metal SAT solver with $config configuration
|
|
EOF
|
|
msg "included the following description:"
|
|
printf $BOLD
|
|
cat $description
|
|
printf $NORMAL
|
|
|
|
zipfile=/tmp/$base-$config.zip
|
|
rm -f $zipfile
|
|
|
|
cd $dir
|
|
zip -q -r $zipfile .
|
|
cd /tmp/
|
|
|
|
msg "generated ${GREEN}'$zipfile'${NORMAL}"
|
|
BYTES="`ls --block-size=1 -s $zipfile 2>/dev/null |awk '{print $1}'`"
|
|
msg "zip file has $BYTES bytes"
|
|
|
|
echo $zipfile
|
|
|
|
done
|