#!/bin/bash # # Usage: $0 [--rc] [--no-jar] [--itest | --itest-nosig] config # # Note: The order of the options is important. # # --rc Reconfigure and rebuild SableJIT without building SableVM. # This is useful to avoid recompiling SableVM but to be able to # switch configuration of SableJIT to another pre-compiled SableVM # # --no-jar # Do not put SableJIT files in a jar file. # (Partially implemented, you must run installdir manually # in SableJIT source directory.) # # --itest # Turns on inlinability testing # --itest-nosig # Inlinability testing without signals # # Environment variable: # Set CONFIGURE_OPTIONS to any additionnal options you want # to provide to ./configure. # # Set JUNIT_PATH_URL to junit location. Format must be an URL. # SCRIPTDIR=`dirname $0` # system specific configuration if test `uname` = "FreeBSD" ; then MAKE=gmake CPPFLAGS="$CPPFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" else MAKE=make fi if test -e Makefile.sablejit ; then MAKE="$MAKE -f Makefile.sablejit" fi # specific to my system if test `uname` = "Darwin" ; then CPPFLAGS="$CPPFLAGS -I/sw/include -I$HOME/local/libffi/include" LDFLAGS="$LDFLAGS -L/sw/lib -L$HOME/local/libffi/lib -L$HOME/local/lib" fi if test x$1 = "x--rc" ; then RECONFIG_ONLY=true shift else RECONFIG_ONLY=false fi if test x$1 = "x--no-jar" ; then SABLEJIT_LIBPATH_OPTION=--with-sablejit-libpath=LIBDIR shift else # default SABLEJIT_LIBPATH_OPTION= fi # --disable-no-reorder-blocks if test x$1 = "x--itest" ; then #ITEST_OPTIONS=--enable-inlinability-testing ITEST_OPTIONS="--enable-inlinability-testing" EXTRA_SUFFIX="$EXTRA_SUFFIX-itest" shift elif test x$1 = "x--itest-nosig" ; then ITEST_OPTIONS="--enable-inlinability-testing --disable-signals-for-exceptions" EXTRA_SUFFIX="$EXTRA_SUFFIX-itest_nosig" shift else # default ITEST_OPTIONS= fi #if test x$ITEST_OPTIONS != "x" ; then # if test if test x$JUNIT_PATH_URL = "x" ; then JUNIT_PATH_URL_OPTION= else JUNIT_PATH_URL_OPTION="--with-sablejit-junit-path-url=$JUNIT_PATH_URL" fi if test x`basename $0` = xbuild-debug ; then GENERAL_CONF=general-debug.conf EXTRA_SUFFIX="$EXTRA_SUFFIX-debug" elif test x`basename $0` = xbuild-nosig ; then GENERAL_CONF=general-nosig.conf EXTRA_SUFFIX="$EXTRA_SUFFIX-nosig" elif test x`basename $0` = xbuild-test ; then GENERAL_CONF=general.conf EXTRA_SUFFIX="$EXTRA_SUFFIX-test" LOCAL_JIT_CONFIGURE_OPTIONS="$LOCAL_JIT_CONFIGURE_OPTIONS --enable-sablejit-testing" else GENERAL_CONF=general.conf fi if test x$1 = x ; then echo "Specify a configuration." echo " Available configurations are:" for f in `find $SCRIPTDIR -name '*.conf'`; do echo " `basename $f .conf`" done exit 1 else CONF_NAME=$1 FILENAME=$SCRIPTDIR/$CONF_NAME.conf fi . $SCRIPTDIR/$GENERAL_CONF || exit 1 . $FILENAME || exit 1 echo "" if test x$RECONFIG_ONLY = xtrue ; then echo "Reconfiguring using configuration file:" else echo "Configuring and building SableVM using configuration file:" fi echo " $FILENAME" echo "General config file: $GENERAL_CONF" echo " CONFIGURE_OPTIONS=$CONFIGURE_OPTIONS" echo " CC=$CC" echo " CPPFLAGS=\"$CPPFLAGS\"" echo " LDFLAGS=\"$LDFLAGS\"" echo "" ./configure \ --disable-errors-on-warnings \ --prefix=$LOCATION \ --program-suffix=-$CONF_NAME$EXTRA_SUFFIX \ --libdir=$LOCATION/lib/sablevm-$CONF_NAME$EXTRA_SUFFIX \ $SABLEJIT_LIBPATH_OPTION \ $JUNIT_PATH_URL_OPTION \ $ITEST_OPTIONS \ $GLOBAL_CONFIGURE_OPTIONS \ $LOCAL_CONFIGURE_OPTIONS \ $CONFIGURE_OPTIONS \ $GLOBAL_JIT_CONFIGURE_OPTIONS \ $LOCAL_JIT_CONFIGURE_OPTIONS \ CPPFLAGS="$CPPFLAGS $GLOBAL_CPPFLAGS $LOCAL_CPPFLAGS $GLOBAL_JIT_CPPFLAGS $LOCAL_JIT_CPPFLAGS" \ CC="$CC" \ LDFLAGS="$LDFLAGS" && \ \ if test x$RECONFIG_ONLY != xtrue ; then ${MAKE} && ${MAKE} install ; fi && \ ln -sf $LOCATION/lib/sablevm $LOCATION/lib/sablevm-$CONF_NAME$EXTRA_SUFFIX/sablevm && \ if test x$RECONFIG_ONLY != xtrue; then if test "x$GLOBAL_MAKE_JIT_TARGETS" != x; then ${MAKE} $GLOBAL_MAKE_JIT_TARGETS; fi ; else ${MAKE} sablejit_clean sablejit_install__no_svm_rebuild ; fi && \ echo "=== sablevm-$CONF_NAME$EXTRA_SUFFIX built successfully ===" || \ (echo "!!! sablevm-$CONF_NAME$EXTRA_SUFFIX build failed !!!" && exit 1)