#!/bin/bash # arguments are: # 1 Name of executable # 2 Directory containing specs # 3-n List of class files to compile ROBUSTROOT=~/research/Robust/src REPAIRROOT=~/research/Repair/RepairCompiler/ CURDIR=`pwd` BUILDDIR=$CURDIR/tmpbuilddirectory MAINFILE=$1 shift cd $1 SPECDIR=`pwd` cd $CURDIR shift mkdir $BUILDDIR java -cp $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \ $ROBUSTROOT/ClassLibrary/ -dir $BUILDDIR -struct $MAINFILE -struct \ structfile -task $@ # Build all of the consistency specs cd $SPECDIR mkdir $BUILDDIR/specdir cp $REPAIRROOT/MCC/CRuntime/* $BUILDDIR/specdir # compile specs into C code for i in * do cd $SPECDIR/$i cat $BUILDDIR/structfile.struct $i.label > $i.struct java -cp $REPAIRROOT/:. MCC.Compiler -name $i -checkonly $i ls cp size.[c,h] $BUILDDIR/specdir cp $i.c $i\_aux.[c,h] $BUILDDIR/specdir echo $i >> $BUILDDIR/specs done #compile C code cd $BUILDDIR/specdir ./buildrobust for i in `cat $BUILDDIR/specs` do gcc -O0 -g -c $i\_aux.c done #build and link everything cd $CURDIR gcc -I$ROBUSTROOT/Runtime -I. -IRuntime/include -Itmpbuilddirectory \ -O0 -DBOEHM_GC -LRuntime/lib/ -lgc -DTASK -g \ tmpbuilddirectory/methods.c tmpbuilddirectory/taskdefs.c \ $ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/Queue.c \ $ROBUSTROOT/Runtime/SimpleHash.c $ROBUSTROOT/Runtime/checkpoint.c \ $ROBUSTROOT/Runtime/GenericHashtable.c $BUILDDIR/specdir/*.o \ -o $MAINFILE.bin