change the debug mode for capturing null dereference to a global compilar option
[IRC.git] / Robust / src / buildscript
index 5b3a68762d16a771ebd77de394e399078aff6f21..e6fbc1d5172275d9597e3084a70c202e0e3e054c 100755 (executable)
@@ -107,6 +107,7 @@ echo SSJava options
 echo -ssjava enables SSJava
 echo
 echo Other options
+echo -jni enable jni
 echo -abcclose turnoff array boundary checks
 echo -builddir setup different build directory
 echo -robustroot set up the ROBUSTROOT to directory other than default one
@@ -149,11 +150,13 @@ echo -recovery compile recovery code
 echo -dsmtask support work and task class library
 echo -recoverystats print out recovery record 
 echo -src-after-pp prints source code after preprocessor to tmp.c
+echo -capture-null-dereferences generates code to warn before derefencing null
 echo -printlinenum print out line numbers in generated C codes
 echo -help help
 }
 
 tmpbuilddirectory="tmpbuilddirectory"
+JNI=false
 SRCAFTERPP=false;
 COREPROF=false;
 NUMA=false;
@@ -252,15 +255,21 @@ if [[ $1 = '-help' ]]
 then
 printhelp
 exit
-
+elif [[ $1 = '-jni' ]]
+then
+JNI=true
+JAVAOPTS="$JAVAOPTS -jni"
+EXTRAOPTIONS="$EXTRAOPTIONS -DJNI -I$ROBUSTROOT/Runtime/jni"
 elif [[ $1 = '-justanalyze' ]]
 then
 EXITAFTERANALYSIS=true
-
+elif [[ $1 = '-capture-null-dereferences' ]]
+then
+JAVAOPTS="$JAVAOPTS -capture-null-dereferences"
+EXTRAOPTIONS="$EXTRAOPTIONS -DCAPTURE_NULL_DEREFERENCES"
 elif [[ $1 = '-src-after-pp' ]]
 then
 SRCAFTERPP=true
-
 elif [[ $1 = '-assembly' ]]
 then
 ASSEMBLY=true
@@ -597,6 +606,11 @@ elif [[ $1 = '-ooodebug-disable-task-mem-pool' ]]
 then
 EXTRAOPTIONS="$EXTRAOPTIONS -DOOO_DISABLE_TASKMEMPOOL"
 
+elif [[ $1 = '-ssjava' ]]
+then
+SSJAVA=true
+JAVAOPTS="$JAVAOPTS -ssjava"
+
 elif [[ $1 = '-mempool-detect-misuse' ]]
 then
 EXTRAOPTIONS="$EXTRAOPTIONS -DMEMPOOL_DETECT_MISUSE"
@@ -761,15 +775,19 @@ JAVAOPTS="$JAVAOPTS -struct structfile"
 fi
 
 # Setup class path
-
-if $MGCINTELFLAG
+if $JNI
+then
+JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/classpath/ -classlibrary $ROBUSTROOT/classpath/vm/reference"
+elif $MGCINTELFLAG
 then
 JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/"
-else
-if $MGCFLAG
+elif $MGCFLAG
 then
 #base multicore gc files
 JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC/ -classlibrary $ROBUSTROOT/ClassLibrary/MGC/gnu/"
+elif $SSJAVA
+then
+JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/SSJava"
 else
 if $RECOVERFLAG
 then
@@ -781,8 +799,7 @@ else
 #base bristlecone files
 JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Bristlecone"
 fi
-else
-if $DSMFLAG
+elif $DSMFLAG
 then
 #dsm stuff
 JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaDSM"
@@ -797,8 +814,6 @@ fi
 #base java stuff
 JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Java"
 fi
-fi
-fi
 
 # Build bristlecone/java sources
 
@@ -809,6 +824,12 @@ if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUST
 -classlibrary $ROBUSTROOT/ClassLibrary/gnu/ $SRCFILES
 then exit $?
 fi
+elif $SSJAVA
+then
+if ! ${ROBUSTROOT}/ourjava -Xms50m -Xmx1500m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -dir $BUILDDIR -precise \
+$JAVAOPTS $SRCFILES
+then exit $?
+fi
 else
 #if ! ${ROBUSTROOT}/ourjava -Xms5m -Xmx100m $JAVAFORWARDOPTS -classpath $ROBUSTROOT/../cup/:$ROBUSTROOT Main.Main -classlibrary \
 if $MGCINTELFLAG
@@ -1238,9 +1259,15 @@ $ROBUSTROOT/Runtime/file.c $ROBUSTROOT/Runtime/Queue.c \
 $ROBUSTROOT/Runtime/SimpleHash.c $ROBUSTROOT/Runtime/option.c \
 $ROBUSTROOT/Runtime/ObjectHash.c \
 $ROBUSTROOT/Runtime/garbage.c $ROBUSTROOT/Runtime/socket.c \
+$ROBUSTROOT/Runtime/taskgarbage.c $ROBUSTROOT/Runtime/oojgarbage.c \
 $ROBUSTROOT/Runtime/math.c \
 $ROBUSTROOT/Runtime/GenericHashtable.c $ROBUSTROOT/Runtime/object.c"
 
+if $JNI
+then
+FILES="$FILES $ROBUSTROOT/Runtime/jni/jni.c $ROBUSTROOT/Runtime/jni/jni-stuff.c"
+fi
+
 if $NUMA
 then
 FILES="$FILES $ROBUSTROOT/Runtime/affinity.c"