From: Martin Mares Date: Fri, 6 Apr 2001 09:17:43 +0000 (+0000) Subject: New compile script. X-Git-Tag: python-dummy-working~525 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=9c62968bc71f78badc6022016a76743664fb48b4;p=eval.git New compile script. --- diff --git a/TODO b/TODO index b4f45fb..b748cf7 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,2 @@ -check pascal -static ? -check rhide compiler configuration +multiple check inputs? diff --git a/config b/config index 0f0bcf2..daf2f74 100644 --- a/config +++ b/config @@ -7,24 +7,28 @@ EVAL_USER=mo-eval EVAL_GROUP=mo-eval TEST_USERS="mo-test1 mo-test2" -# Currently used test user -TEST_USER=mo-test1 +# Test user for sandboxing +TEST_USER=${TEST_USER:mo-test1} ### all of the following variables can be overriden in per-task config file # Known source file extensions EXTENSIONS="c C cpp p pas" +# Extra compiler flags (null, but can be overriden) +EXTRA_CFLAGS= + # For each source extension, we must give compiler command -COMP_c='/usr/bin/gcc -O2 -g -o $EXE $SRC' -COMP_C='/usr/bin/g++ -O2 -g -o $EXE $SRC' +COMP_c='/usr/bin/gcc -O2 -g -o $EXE $EXTRA_CFLAGS $SRC' +COMP_C='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CFLAGS $SRC' COMP_cpp="$COMP_C" -COMP_p='/usr/bin/fpc -Ci -Cr -g -O2 -So -Sg -o$EXE $SRC' +COMP_p='/usr/bin/fpc -Ci -Cr -g -O2 -So -Sg -o$EXE $EXTRA_CFLAGS $SRC' COMP_pas="$COMP_p" # Sandbox options used when compiling COMP_SANDBOX_OPTS='-m65536 -t60 -w -e' # Sandbox options used when testing -TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT -w' +TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT' +# -w for wall clock measuring # For stdio tasks append '-i$PROBLEM.in -o$PROBLEM.out' diff --git a/public/compile b/public/compile index b640c89..0a180d3 100644 --- a/public/compile +++ b/public/compile @@ -6,14 +6,29 @@ set -e . $MO_PUBLIC/bin/lib . $MO_PUBLIC/config -[ -n "$1" ] || die "Usage: compile " -PROBLEM=$1 -public-setup -. $PDIR/config -locate-source -if compile ; then - mv $TDIR/$PROBLEM . +[ -n "$1" ] || die "Usage: compile ( | [])" +if [ "${1%%.*}" == "$1" ] ; then + # Compiling problem + PROBLEM=$1 + public-setup + . $PDIR/config + locate-source + if compile ; then + mv $TDIR/$PROBLEM . + else + echo >&2 + sed &2 '1,/^Compiler output:/d;/^Compiler output files:/,$d;/^Exited /d' + fi else - echo >&2 - sed &2 '1,/^Compiler output:/d;/^Compiler output files:/,$d;/^Exited /d' + SRC=$1 + [ -f $SRC ] || die "$SRC doesn't exist" + EXE=${1%%.*} + SRCEXT=${1/*./} + shift + EXTRA_CFLAGS="$@" + CCMD=COMP_$SRCEXT + [ -n "${!CCMD}" ] || die "Don't know how to compile $SRC" + CCMD="`eval echo ${!CCMD}`" + echo "$CCMD" + $CCMD fi