]> mj.ucw.cz Git - eval.git/blob - bin/task-compile
A lot of work...
[eval.git] / bin / task-compile
1 # The Evaluator -- Compile a Solution
2 # (c) 2001 Martin Mares <mj@ucw.cz>
3
4 pstart "Locating source... "
5 if [ -f $SDIR/$PROBLEM.c ] ; then
6         SRCN=$PROBLEM.c
7         LANG=C
8 elif [ -f $SDIR/$PROBLEM.cc ] ; then
9         SRCN=$PROBLEM.cc
10         LANG=CXX
11 elif [ -f $SDIR/$PROBLEM.p ] ; then
12         SRCN=$PROBLEM.p
13         LANG=P
14 else
15         pend "NOT FOUND"
16         echo "Source not found."
17         exit 0
18 fi
19 box-init
20 echo "Source file: $TDIR/$SRCN copied from $SDIR/$SRCN"
21
22 cp $SDIR/$SRCN $TDIR/$SRCN
23 if [ -n "$EXTRAS" ] ; then
24         echo "Extras: $EXTRAS"
25         for a in $EXTRAS ; do cp $PDIR/$a $TDIR/ ; done
26 fi
27 for a in $SRCN $EXTRAS ; do cp $TDIR/$a $BOXDIR/ ; done
28 echo "Language: $LANG"
29 SRC=$SRCN
30 EXE=$PROBLEM
31 CCMD=COMP_$LANG
32 CCMD="`eval echo ${!CCMD}`"
33 COMP_SANDBOX_OPTS="`eval echo $COMP_SANDBOX_OPTS`"
34 echo "Compiler command: $CCMD"
35 echo "Compiler sandbox options: $COMP_SANDBOX_OPTS"
36 pend "$SRC ($LANG)"
37
38 pstart "Compiling... "
39 echo "Pre-compile:"
40 ls -Al $BOXDIR
41 if ! $BOXCMD $COMP_SANDBOX_OPTS -- $CCMD 2>$TDIR/compile.out ; then
42         COMPILE_MSG=`cat $TDIR/compile.out`
43         pend "FAILED: $COMPILE_MSG"
44         echo "$COMPILE_MSG"
45         exit 0
46 fi
47 cat $TDIR/compile.out
48 if [ ! -f $BOXDIR/$PROBLEM ] ; then
49         pend "FAILED: Missing executable file"
50         echo "Missing executable file"
51         exit 0
52 fi
53 EXE=$TDIR/$PROBLEM
54 cp -a $BOXDIR/$PROBLEM $EXE
55 echo "Compiled OK."
56 ls -Al $BOXDIR
57 echo "Executable file: $EXE"
58 pend "OK"