4 echo -dsm distributed shared memory
5 echo -check generate check code
6 echo -dmalloc link in dmalloc
7 echo -recover compile task code
8 echo -specdir directory
9 echo -taskstate do task state analysis
10 echo -optional enable optional
11 echo -debug generate debug symbols
12 echo -webinterface enable web interface
13 echo -runtimedebug printout runtime debug messages
14 echo "-thread use support for multiple threads"
15 echo "-optimize call gcc with -O9 (optimize)"
16 echo "-nooptimize call gcc with -O0 (do not optimize)"
17 echo -curdir directory
18 echo -mainclass class with main method
20 echo -instructionfailures inject code for instructionfailures
24 ROBUSTROOT=~/research/Robust/src
25 REPAIRROOT=~/research/Repair/RepairCompiler/
53 elif [[ $1 = '-mainclass' ]]
55 JAVAOPTS="$JAVAOPTS -mainclass $2"
57 elif [[ $1 = '-dsm' ]]
59 JAVAOPTS="$JAVAOPTS -dsm"
60 elif [[ $1 = '-taskstate' ]]
62 JAVAOPTS="$JAVAOPTS -taskstate"
63 elif [[ $1 = '-optional' ]]
65 JAVAOPTS="$JAVAOPTS -optional"
66 elif [[ $1 = '-dmalloc' ]]
69 elif [[ $1 = '-recover' ]]
72 JAVAOPTS="$JAVAOPTS -task"
73 elif [[ $1 = '-webinterface' ]]
75 JAVAOPTS="$JAVAOPTS -webinterface"
76 elif [[ $1 = '-instructionfailures' ]]
78 JAVAOPTS="$JAVAOPTS -instructionfailures"
79 elif [[ $1 = '-check' ]]
82 JAVAOPTS="$JAVAOPTS -conscheck"
83 elif [[ $1 = '-specdir' ]]
89 elif [[ $1 = '-debug' ]]
91 EXTRAOPTIONS="$EXTRAOPTIONS -g"
92 elif [[ $1 = '-runtimedebug' ]]
94 EXTRAOPTIONS="$EXTRAOPTIONS -DDEBUG"
95 elif [[ $1 = '-nooptimize' ]]
97 EXTRAOPTIONS="$EXTRAOPTIONS -O0"
98 elif [[ $1 = '-optimize' ]]
100 EXTRAOPTIONS="$EXTRAOPTIONS -O9"
101 elif [[ $1 = '-thread' ]]
103 JAVAOPTS="$JAVAOPTS -thread"
104 EXTRAOPTIONS="$EXTRAOPTIONS -DTHREADS -lpthread"
106 elif [[ $1 = '-curdir' ]]
111 SRCFILES="$SRCFILES $1"
116 BUILDDIR="$CURDIR/tmpbuilddirectory"
124 if $CHECKFLAG #Generate structure files for repair tool
126 JAVAOPTS="$JAVAOPTS -struct structfile"
129 # Build bristlecone/java sources
131 java -cp $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \
132 $ROBUSTROOT/ClassLibrary/ -dir $BUILDDIR -precise \
135 # Build all of the consistency specs
137 if $CHECKFLAG # CHECKFLAG
140 mkdir $BUILDDIR/specdir
141 cp $REPAIRROOT/MCC/CRuntime/* $BUILDDIR/specdir
143 echo > $BUILDDIR/specs
145 # compile specs into C code
146 for i in * # iterate over all directories
148 if [[ "$i" != "CVS" ]] # CVSDIR CHECK
151 cat $BUILDDIR/structfile.struct $i.label > $i.struct
152 java -cp $REPAIRROOT/:. MCC.Compiler -name $i -checkonly $i
153 cp size.[c,h] $BUILDDIR/specdir
154 cp $i.c $i\_aux.[c,h] $BUILDDIR/specdir
155 echo $i >> $BUILDDIR/specs
157 done # iterate over all directories
163 echo > $BUILDDIR/checkers.h
164 for i in `cat $BUILDDIR/specs`
166 gcc -O0 -g -c $i\_aux.c
167 echo \#include \"specdir\/$i\_aux.h\" >> $BUILDDIR/checkers.h
171 #build and link everything
175 INCLUDES="$INCLUDES -I$ROBUSTROOT/Runtime -I. -IRuntime/include \
178 FILES="$ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/task.c \
179 $ROBUSTROOT/Runtime/file.c $ROBUSTROOT/Runtime/Queue.c \
180 $ROBUSTROOT/Runtime/SimpleHash.c $ROBUSTROOT/Runtime/option.c \
181 $ROBUSTROOT/Runtime/garbage.c $ROBUSTROOT/Runtime/socket.c \
182 $ROBUSTROOT/Runtime/GenericHashtable.c $ROBUSTROOT/Runtime/object.c"
186 EXTRAOPTIONS="$EXTRAOPTIONS -DTASK"
187 FILES="$FILES tmpbuilddirectory/taskdefs.c $ROBUSTROOT/Runtime/checkpoint.c"
192 FILES="$FILES $ROBUSTROOT/Runtime/thread.c"
197 EXTRAOPTIONS="$EXTRAOPTIONS -DCONSCHECK $BUILDDIR/specdir/*.o"
198 INCLUDES="$INCLUDES -I$BUILDDIR/specdir"
203 EXTRAOPTIONS="$EXTRAOPTIONS -ldmalloc -DDMALLOC"
206 gcc $INCLUDES $EXTRAOPTIONS -DPRECISE_GC \
207 tmpbuilddirectory/methods.c $FILES -o $MAINFILE.bin