Description:
git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@238 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r57:1706f495c73a - - 1 file changed: 3 inserted, 3 deleted

@@ -1,107 +1,107
1 1 #!/bin/sh
2 2
3 3 ##############################
4 4 #
5 5 # Standard Compile Script
6 6 #
7 7 # Supported compilers:
8 8 # gcc, g++, and fpc.
9 9 #
10 10 ##############################
11 11
12 12 talk ()
13 13 {
14 14 if [ "$TALKATIVE" != "" ]; then
15 15 echo "$1"
16 16 fi
17 17 }
18 18
19 19 export C_COMPILER=/usr/bin/gcc
20 20 export CPLUSPLUS_COMPILER=/usr/bin/g++
21 21 export PASCAL_COMPILER=/usr/bin/fpc
22 22
23 - export C_OPTIONS="-O2 -s -static -lm -Wall"
24 - export CPLUSPLUS_OPTIONS="-O2 -s -static -lm -Wall"
25 - export PASCAL_OPTIONS="-O1 -XS"
23 + export C_OPTIONS="-O2 -s -static -std=c99 -DCONTEST -lm -Wall"
24 + export CPLUSPLUS_OPTIONS="-O2 -s -static -DCONTEST -lm -Wall"
25 + export PASCAL_OPTIONS="-O1 -XS -dCONTEST"
26 26
27 27 # Check for the correct number of arguments. Otherwise, print usage.
28 28 if [ $# -eq 0 -o $# -gt 4 ]
29 29 then
30 30 echo "Usage: $0 <language> [<source-file>] [<output-file>] [<message-file>]"
31 31 echo
32 32 echo "<source-file> is defaulted to \"source\"."
33 33 echo "<output-file> is defaulted to \"a.out\"."
34 34 echo "<message-file> is defaulted to \"compiler_message\"."
35 35 echo
36 36 exit 127
37 37 fi
38 38
39 39 # Retrieve the arguments.
40 40 if [ $# -ge 1 ]
41 41 then
42 42 export PROG_LANG=$1
43 43 talk "programming language: ${PROG_LANG}"
44 44 fi
45 45
46 46 if [ $# -ge 2 ]
47 47 then
48 48 export SOURCE_FILE=$2
49 49 else
50 50 export SOURCE_FILE=source
51 51 fi
52 52 talk " source file: $SOURCE_FILE"
53 53
54 54 if [ $# -ge 3 ]
55 55 then
56 56 export OUTPUT_FILE=$3
57 57 else
58 58 export OUTPUT_FILE=a.out
59 59 fi
60 60 talk " output file: $OUTPUT_FILE"
61 61
62 62 if [ $# -eq 4 ]
63 63 then
64 64 export MESSAGE_FILE=$4
65 65 else
66 66 export MESSAGE_FILE=compiler_message
67 67 fi
68 68 talk " message file: $MESSAGE_FILE"
69 69
70 70 # Remove any remaining output files or message files.
71 71 rm -Rf $OUTPUT_FILE
72 72 rm -Rf $MESSAGE_FILE
73 73
74 74 # Check if the source file exists before attempt compiling.
75 75 if [ ! -f $SOURCE_FILE ]
76 76 then
77 77 talk "ERROR: The source file does not exist!"
78 78 echo "ERROR: The source file did not exist." > $MESSAGE_FILE
79 79 exit 127
80 80 fi
81 81
82 82 # Compile.
83 83 if [ $PROG_LANG = "c" ]
84 84 then
85 85 $C_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $C_OPTIONS 2>$MESSAGE_FILE
86 86 elif [ $PROG_LANG = "c++" ]
87 87 then
88 88 $CPLUSPLUS_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $CPLUSPLUS_OPTIONS 2>$MESSAGE_FILE
89 89 elif [ $PROG_LANG = "pas" ]
90 90 then
91 91 $PASCAL_COMPILER $SOURCE_FILE -ooutpas $PASCAL_OPTIONS >$MESSAGE_FILE
92 92 mv outpas $OUTPUT_FILE
93 93 else
94 94 talk "ERROR: Invalid language specified!"
95 95 echo "ERROR: Invalid language specified!" > $MESSAGE_FILE
96 96 exit 127
97 97 fi
98 98
99 99 # Report success or failure.
100 100 if [ -f $OUTPUT_FILE ]
101 101 then
102 102 talk "Compilation was successful!"
103 103 else
104 104 talk "ERROR: Something was wrong during the compilation!"
105 105 talk "Dumping compiler message:"
106 106 #cat $MESSAGE_FILE
107 107 fi
You need to be logged in to leave comments. Login now