#!/bin/sh if [[ $# -lt 2 ]]; then echo "USAGE: $0 " exit fi . bin/011-colors.sh FLAVOUR=$1 BENCHMARK=$2 export JAVA_HOME=/usr/localcc/pkgs/j2sdk1.4.2 JAVA="${JAVA_HOME}/bin/java -server -Xmx512m" LIB=${PWD}/lib SOOTCP=${LIB}/sootclasses-2.2.2.jar SOOTCP=$SOOTCP:${LIB}/jasminclasses-2.2.2.jar SOOTCP=$SOOTCP:${LIB}/polyglotclasses-1.3.2.jar SOOTCP=$SOOTCP:${JAVA_HOME}/jre/lib/rt.jar if [[ $# -lt 2 ]]; then echo "USAGE: compiler " exit fi if [[ ! -d $BENCHMARK ]]; then echo "ERROR: unknown benchmark: $BENCHMARK" exit fi pushd $BENCHMARK > /dev/null MAINCLASS=`cat mainClass` case $FLAVOUR in ajc12) export CLASSPATH=${LIB}/aspectjtools-1.2.0.jar:${LIB}/aspectjrt-1.2.0.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} org.aspectj.tools.ajc.Main -showversion -sourceroots src -d classes.$FLAVOUR ;; ajc12soot) export CLASSPATH=${LIB}/aspectjrt-1.2.0.jar:$SOOTCP echo "" echo "Sootifying ${boldon}$BENCHMARK${reset}" ${JAVA} soot.Main -cp $CLASSPATH:classes.ajc12 -process-dir classes.ajc12 -d classes.ajc12soot -O ;; cajc) export CLASSPATH=${LIB}/aspectjtools-1.2.0.jar:${LIB}/aspectjrt-cajc.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} org.aspectj.tools.ajc.Main -showversion -XcflowCounter -sourceroots src -d classes.$FLAVOUR ;; cajcsoot) export CLASSPATH=${LIB}/aspectjrt-cajc.jar:$SOOTCP echo "" echo "Sootifying ${boldon}$BENCHMARK${reset}" ${JAVA} soot.Main -cp $CLASSPATH:classes.cajc -process-dir classes.cajc -d classes.cajcsoot -O ;; ajc12stock) export CLASSPATH=${LIB}/aspectjtools-stock-1.2.0.jar:${LIB}/aspectjrt-1.2.0.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} org.aspectj.tools.ajc.Main -showversion -sourceroots src -d classes.$FLAVOUR ;; ajc121stock) export CLASSPATH=${LIB}/aspectjtools-stock-1.2.1.jar:${LIB}/aspectjrt-stock-1.2.1.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} org.aspectj.tools.ajc.Main -showversion -sourceroots src -d classes.$FLAVOUR ;; abc) export ABC_HOME=${HOME}/src/abc-tag-1.0.2 export CLASSPATH=${ABC_HOME}/lib/abc-complete.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} abc.main.Main -sourceroots src -d classes.$FLAVOUR ;; abcnotag) FLAVOUR=abc export ABC_HOME=${HOME}/src/abc-tag-1.0.2 export CLASSPATH=${ABC_HOME}/lib/abc-complete.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} abc.main.Main -tag-instructions:false -sourceroots src -d classes.$FLAVOUR ;; abcstock) FLAVOUR=abc export ABC_HOME=${HOME}/opt/abc-1.0.2 export CLASSPATH=${ABC_HOME}/lib/abc-complete.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} abc.main.Main -sourceroots src -d classes.$FLAVOUR ;; abcO3) export CLASSPATH=${LIB}/abc-O3-complete.jar:${LIB}/javabdd_0.6.jar echo "" echo "Compiling ${boldon}$BENCHMARK${reset} ($FLAVOUR)" ${JAVA} abc.main.Main -O3 -main-class $MAINCLASS -sourceroots src -d classes.$FLAVOUR ;; *) echo "ERROR: unknown flavour: $FLAVOUR" ;; esac for i in `find src -not -name '*.java' -not -name '*.aj' -type f | grep -v '.svn'`; do cp $i `echo $i | sed "s/^src/classes.$FLAVOUR/"` done popd > /dev/null