## * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ## * This file is part of SableJIT. * ## * See the file "LICENSE.JIT" for Copyright information and * ## * the terms and conditions for copying, distribution and * ## * modification of SableJIT. * ## * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SUBDIRS=src include Makefile.config include Makefile.common #JAVATESTCMD=${SABLEVM_BIN} ${JAVA_LIBRARY} ${JAVA_CP_OPTION} ${JAVA_CLASSPATH} ${JAVA_OTHER_OPTIONS} -p sablevm.jit.compile.include="${LIBINCLUDE}" -p sablevm.jit.compile.exclude="${LIBEXCLUDE}" ${RECOMPILE_EXCLUDE_COMMON} #JAVATESTCMD=/latece/arcand/tmp/sablejit/bin/sablevm -c .:/latece/arcand/travail/sablejit/sablejit/src:/latece/arcand/junit/junit.jar -p java.library.path=/latece/arcand/travail/sablejit/sablejit/src/sablejit/arch -p sablevm.stack.size.min=500000 -p sablevm.jit.compile.include="gnu/:java/:junit/" -Y -v JAVATESTCMD=${SABLEVM_BIN} -c .:/latece/arcand/travail/sablejit/sablejit/src:/latece/arcand/junit/junit.jar -p java.library.path=/latece/arcand/travail/sablejit-classpath/sablejit/src/sablejit/arch -p sablevm.stack.size.min=500000 -Y -p sablevm.jit.compile.include="ALL" #-p sablevm.jit.compile.include="java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)" #-p sablevm.jit.compile.include="ALL" -p sablevm.jit.compile.exclude="java/lang/ClassLoader.loadClass:java/lang/ClassNotFoundException." #-p sablevm.jit.compile.include="java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)" #-p sablevm.jit.compile.include="ALL" -p sablevm.jit.compile.exclude="java/lang/ClassLoader.loadClass:java/lang/ClassNotFoundException." test: all build_tests ${JAVATESTCMD} sablejit.SableJITClassLoader run sablejit.TestAll ${TESTNAMES} # Package a distribution dist: ./makedist.sh .PHONY: dist doc version doc: ${MAKE} doc_help DOCDEST=doc DOCWEBDEST=${HOME}/public_html/sablevm/sablejit/doc docweb: ${MAKE} doc_help DOCDEST=${DOCWEBDEST} chmod -R a+r ${DOCWEBDEST} # set +x permission on directories find ${DOCWEBDEST} -type d | xargs chmod a+x #docwebclean: # rm -rf ${DOCWEBDEST} doc_help: classlist mkdir -p ${DOCDEST} #xargs ${JAVADOC} ${JAVA_CP_OPTION} ${JAVA_CLASSPATH} -sourcepath src -d ${DOCDEST} < classlist ${JAVADOC} -sourcepath src -d ${DOCDEST} sablejit classlist: all rm -f classlist find . -name '*[^4].java' > classlist #for f in `find src -name '*.class'`; do echo `dirname $$f`.`basename $$f .class` | tr '/' '.' | cut -d'.' -f2- >> classlist; done chmod a-w classlist #mv src/classlist . # Prints SableJIT version info version: ${SABLEVM_BIN} --version ${SABLEVM_BIN} -Y sablejit.SableJITClassLoader config # install CLASSES_DIR=directory_of_classes (default is src/ and it is # relative to default. install: installjar uninstall: uninstalljar installdir: all install_classloader (cd src/${CLASSES_DIR} && \ for f in `find . -name '*.class'`; do \ install -d ${SABLEVM_LIBDIR}/`dirname $$f`; \ install -m 644 $$f ${SABLEVM_LIBDIR}/`dirname $$f`; \ done) uninstalldir: uninstall_classloader rm -rf ${SABLEVM_LIBDIR}/sablejit installjar: all sablejit.jar install_classloader install -m 644 sablejit.jar ${SABLEVM_LIBDIR} rm -f sablejit.jar uninstalljar: uninstall_classloader rm -f ${SABLEVM_LIBDIR}/sablejit.jar # Works but has unnecessary files... sablejit.jar: all jar -cvf src/${CLASSES_DIR}/sablejit.jar README (cd src/${CLASSES_DIR} && find sablejit -name '*.class' | xargs jar -uvf sablejit.jar) mv -f src/${CLASSES_DIR}/sablejit.jar . # # SableJITClassLoader must be installed outside the jar in the # bootstrap directory, it cannot load itself... # CL_LOCATION=${SABLEVM_DATADIR}/sablevm/sablevm-classpath/sablejit install_classloader: all mkdir -p ${CL_LOCATION} mv -f src/sablejit/SableJITClassLoader.class ${CL_LOCATION} uninstall_classloader: # remove directory only if empty rm -f ${CL_LOCATION}/SableJITClassLoader.class rmdir ${CL_LOCATION} sootify: all mkdir soot_output ${SOOT_CMD} --app -O -W --dynamic-class "OnePassPPC or OnePassX86" -d soot_output --soot-classpath `pwd`/src:${SABLEVM_LIBDIR}/sablevm/classpath:${JUNIT_JAR} sablejit.Compiler # soot --app -W -p cg verbose:true -d soot_output -x gnu --soot-classpath `pwd`/src:$HOME/local/sablevm-jit/lib/sablevm/classpath:/usr/share/java/junit.jar sablejit.arch.ppc.PPC #soot --app -W -p cg verbose:true -p wjop.si insert-redundant-casts:false -p wjop.si insert-null-checks:false -p wjop.si expansion-factor:5 -p wjop.si max-container-size:10000 -p wjop.si max-inlinee-size:40 -d soot_output -x gnu -dynamic-class sablejit.OnePassPPC --soot-classpath `pwd`/src:$HOME/local/sablevm-jit/lib/sablevm/classpath:/usr/share/java/junit.jar sablejit.Compiler