]> mj.ucw.cz Git - eval.git/blobdiff - config
Teach the build system how to preprocess configs from non-deafult locations.
[eval.git] / config
diff --git a/config b/config
index d0c94492a5872b1e2b43b05a177a9df5576bfe84..0c56c5b260f9381124c22c83dfce91dcf812a5df 100644 (file)
--- a/config
+++ b/config
@@ -1,5 +1,5 @@
 # Configuration file for the MO Evaluator
-# (c) 2001--2007 Martin Mares <mj@ucw.cz>
+# (c) 2001--2008 Martin Mares <mj@ucw.cz>
 
 # The root of the whole directory hierarchy
 MO_ROOT=/mo
@@ -33,32 +33,54 @@ REMOTE_SUBMIT=1
 REMOTE_SUBMIT_USER=mo-submit
 REMOTE_SUBMIT_GROUP=mo-submit
 
-### Per-task configuration variables (default values, override in per-task config)
-
-## Compiler settings:
+### Programming language settings
 
 # Known source file extensions
 EXTENSIONS="c cc C cpp p pas"
 
-# Extra compiler flags for C (null, but can be overriden)
-EXTRA_CFLAGS=
+# Some of the extensions can be aliases for other extensions
+ALIAS_EXT_cc=cpp
+ALIAS_EXT_C=cpp
+ALIAS_EXT_p=pas
 
-# Extra compiler flags for Pascal
-EXTRA_PFLAGS=
+## Variables which control compilation and execution
+## (see below for values for individual languages)
 
-# For each source extension, we must give compiler command
-COMP_c='/usr/bin/gcc -std=gnu99 -O2 -g -o $EXE $EXTRA_CFLAGS $SRC'
-COMP_C='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CFLAGS $SRC'
-COMP_cpp="$COMP_C"
-COMP_cc="$COMP_C"
-COMP_p='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC'
-COMP_pas="$COMP_p"
+# Command used to run the compiler
+COMP=false
 
 # Sandbox options used when compiling
 COMP_SANDBOX_OPTS='-m262144 -w60 -e -i/dev/null'
 
-# Sandbox initialization commands for compilation
-COMP_SANDBOX_INIT=
+# Extra per-language sandbox options used when testing
+LANG_SANDBOX_OPTS=
+
+# Translation of runtime errors: a function, which receives the exit code as an argument and
+# if it is recognized as a runtime error code, it prints its name to the standard output.
+EXIT_CODE_HOOK=
+
+# Hooks which can alter the contents of the sandbox in $BOXDIR before/after compilation/running
+PRE_COMPILE_HOOK=
+POST_COMPILE_HOOK=
+PRE_RUN_HOOK=
+POST_RUN_HOOK=
+
+## Settings for individual languages
+
+# C
+EXT_c_COMP='/usr/bin/gcc -std=gnu99 -O2 -g -o $EXE $EXTRA_CFLAGS $SRC -lm'
+EXTRA_CFLAGS=
+
+# C++
+EXT_cpp_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm'
+EXTRA_CXXFLAGS=
+
+# Pascal
+EXT_pas_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC'
+EXTRA_PFLAGS=
+EXT_pas_EXIT_CODE_HOOK=fpc-exit-code
+
+### Per-task configuration variables (default values, override in per-task config)
 
 # List of extra files needed for compilation. They are copied to the compiler
 # sandbox from the problem's directory.
@@ -104,6 +126,12 @@ TIME_LIMIT=10
 # Memory limit in kilobytes
 MEM_LIMIT=16384
 
+# Command used for filtering of program output (optional)
+# If turned on, program output (*.raw) is ran through this filter and the
+# checkers are applied to the output of the filter (*.out).
+# Can exit with code 1 if there is a syntax error in the output.
+#OUTPUT_FILTER='tr -d '\''\r'\'' <$TDIR/$TEST.raw >$TDIR/$TEST.out'
+
 # Command used to check output syntax (optional)
 # Returns exit code 1 if syntax is wrong, 0 if correct
 # fd1 is connect to evaluator log, feel free to log anything
@@ -125,7 +153,27 @@ OUTPUT_CHECK='diff -bBu $TDIR/$TEST.ok $TDIR/$TEST.out'
 #IC_CHECK='$PDIR/checker $PDIR/$TEST.in $PDIR/$TEST.chk'
 
 # Sandbox options used when testing
-TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT'
+TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT $LANG_SANDBOX_OPTS $BOX_EXTRAS'
+
+# Extra options to be overridden in task configuration
+BOX_EXTRAS=
+
+### Debugging and testing
+
+# DEBUG: Let `ev' run sample tests, too.
+#EV_SAMPLE=1
+
+# DEBUG: Run `pedant' on all input data. Set either to `1' or to pedant's options.
+#EV_PEDANT=1
+
+# DEBUG: Skip checks (useful when generating output files by running model solution)
+#EV_NOCHECK=1
+
+# DEBUG: Skip output filters (if you suspect they are buggy)
+#EV_NOFILTER=1
+
+### Variables overrides (most variables can be overridden for specific tests or source extensions):
 
-# Sandbox initialization commands
-SANDBOX_INIT=
+#EXT_pas_TIME_LIMIT=100
+#TEST_1_TIME_LIMIT=100
+#EXT_pas_TEST_1_TIME_LIMIT=100