You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by to...@apache.org on 2010/06/12 09:57:36 UTC

svn commit: r953950 - /buildr/trunk/all-in-one/buildr

Author: toulmean
Date: Sat Jun 12 07:57:36 2010
New Revision: 953950

URL: http://svn.apache.org/viewvc?rev=953950&view=rev
Log:
update to the latest version of the jruby script

Modified:
    buildr/trunk/all-in-one/buildr

Modified: buildr/trunk/all-in-one/buildr
URL: http://svn.apache.org/viewvc/buildr/trunk/all-in-one/buildr?rev=953950&r1=953949&r2=953950&view=diff
==============================================================================
--- buildr/trunk/all-in-one/buildr (original)
+++ buildr/trunk/all-in-one/buildr Sat Jun 12 07:57:36 2010
@@ -19,16 +19,6 @@ case "`uname`" in
   Darwin) darwin=true;;
 esac
 
-#
-# Figure out the OS and cpu the same as JNA would, so the library path can be set
-#
-case "`uname -m`" in
-  i[34567]86) JNA_CPU=i386; JNA_ALT_CPU=amd64;;
-  i86pc) JNA_CPU="x86"; JNA_ALT_CPU=amd64;;
-  amd64|x86_64) JNA_CPU=amd64; JNA_ALT_CPU=i386;;
-  sparc*) JNA_CPU=sparc; JNA_ALT_CPU=sparcv9;;
-esac
-
 # ----- Verify and Set Required Environment Variables -------------------------
 
 ## resolve links - $0 may be a link to  home
@@ -39,7 +29,7 @@ while [ -h "$PRG" ] ; do
   ls=`ls -ld "$PRG"`
   link=`expr "$ls" : '.*-> \(.*\)$'`
   if expr "$link" : '.*/.*' > /dev/null; then
-    if expr "$link" : '^/' > /dev/null; then
+    if expr "$link" : '/' > /dev/null; then
       PRG="$link"
     else
       PRG="`dirname ${PRG}`/${link}"
@@ -103,13 +93,20 @@ JRUBY_SHELL=/bin/sh
 
 CP_DELIMITER=":"
 
-# add jruby jars for command-line execution
-for j in "$JRUBY_HOME"/lib/{jruby*,bsf}.jar; do
+# add main jruby jar to the bootclasspath
+for j in "$JRUBY_HOME"/lib/jruby.jar "$JRUBY_HOME"/lib/jruby-complete.jar; do
+    if [ ! -e "$j" ]; then
+      continue
+    fi
     if [ "$JRUBY_CP" ]; then
         JRUBY_CP="$JRUBY_CP$CP_DELIMITER$j"
         else
         JRUBY_CP="$j"
     fi
+    if [ $JRUBY_ALREADY_ADDED ]; then
+        echo "WARNING: more than one JRuby JAR found in lib directory"
+    fi
+    JRUBY_ALREADY_ADDED=true
 done
 
 if $cygwin; then
@@ -124,6 +121,12 @@ if [ "$JRUBY_PARENT_CLASSPATH" != "" ]; 
 else
     # add other jars in lib to CP for command-line execution
     for j in "$JRUBY_HOME"/lib/*.jar; do
+        if [ "$j" == "$JRUBY_HOME"/lib/jruby.jar ]; then
+          continue
+        fi
+        if [ "$j" == "$JRUBY_HOME"/lib/jruby-complete.jar ]; then
+          continue
+        fi
         if [ "$CP" ]; then
             CP="$CP$CP_DELIMITER$j"
             else
@@ -181,9 +184,11 @@ do
             exit
         elif [ "${val}" = "-classpath" ]; then
             CP="$CP$CP_DELIMITER$2"
+            CLASSPATH=""
             shift
         elif [ "${val}" = "-cp" ]; then
             CP="$CP$CP_DELIMITER$2"
+            CLASSPATH=""
             shift
         else
             if [ "${val:0:3}" = "-ea" ]; then
@@ -193,9 +198,6 @@ do
             fi
             java_args=("${java_args[@]}" "${1:2}")
         fi
-        if [ "$CP" != "" ]; then
-          CLASSPATH=""
-        fi
         ;;
      # Match switches that take an argument
      -C|-e|-I|-S) ruby_args=("${ruby_args[@]}" "$1" "$2"); shift ;;
@@ -215,7 +217,8 @@ do
        ;;
      # Run with JMX management enabled
      --manage)
-        java_args=("${java_args[@]}" "-Dcom.sun.management.jmxremote") ;;
+        java_args=("${java_args[@]}" "-Dcom.sun.management.jmxremote")
+        java_args=("${java_args[@]}" "-Djruby.management.enabled=true") ;;
      # Don't launch a GUI window, no matter what
      --headless)
         java_args=("${java_args[@]}" "-Djava.awt.headless=true") ;;
@@ -235,12 +238,13 @@ do
         JAVA_VM=-client ;;
      --server)
         JAVA_VM=-server ;;
+     --noclient)         # JRUBY-4296
+        unset JAVA_VM ;; # For IBM JVM, neither '-client' nor '-server' is applicable
      --sample)
         java_args=("${java_args[@]}" "-Xprof") ;;
      --ng-server)
         # Start up as Nailgun server
         java_class=com.martiansoftware.nailgun.NGServer
-        JAVA_VM=-server
         VERIFY_JRUBY=true ;;
      --ng)
         # Use native Nailgun client to toss commands to server
@@ -260,12 +264,6 @@ if [[ $darwin && -z "$JAVA_ENCODING" ]];
   java_args=("${java_args[@]}" "-Dfile.encoding=UTF-8")
 fi
 
-# Force -client mode for Buildr
-JAVA_VM=-client
-
-# Add unsafe optimizations known to be sound for Buildr
-JAVA_OPTS="$JAVA_OPTS -Djruby.compile.frameless=true -Djruby.compile.positionless=true -Djruby.compile.threadless=true -Djruby.compile.fastops=true"
-
 # Add a property to report memory max
 JAVA_OPTS="$JAVA_OPTS $JAVA_VM -Djruby.memory.max=${JAVA_MEM:4} -Djruby.stack.max=${JAVA_STACK:4}"
 
@@ -276,22 +274,17 @@ ruby_args=("${ruby_args[@]}" "$@")
 set -- "${ruby_args[@]}"
 
 JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_STACK"
-JNA_OS="`uname -s | tr '[:upper:]' '[:lower:]'`"
-case "$JNA_OS" in
-darwin) JNA_PATH="$JRUBY_HOME/lib/native/darwin";;
-  *) JNA_PATH="$JRUBY_HOME/lib/native/${JNA_OS}-${JNA_CPU}:$JRUBY_HOME/lib/native/${JNA_OS}-${JNA_ALT_CPU}";;
-esac
-#JAVA_OPTS="$JAVA_OPTS -Djna.boot.library.path=$JNA_PATH"
-JAVA_JNA="-Djna.boot.library.path=$JNA_PATH"
 
 JFFI_BOOT=""
-for d in $JRUBY_HOME/lib/native/*`uname -s`; do
-  if [ -z "$JFFI_BOOT" ]; then
-    JFFI_BOOT="$d"
-  else
-    JFFI_BOOT="$JFFI_BOOT:$d"
-  fi
-done
+if [ -d $JRUBY_HOME/lib/native/ ]; then
+  for d in $JRUBY_HOME/lib/native/*`uname -s`; do
+    if [ -z "$JFFI_BOOT" ]; then
+      JFFI_BOOT="$d"
+    else
+      JFFI_BOOT="$JFFI_BOOT:$d"
+    fi
+  done
+fi
 JFFI_OPTS="-Djffi.boot.library.path=$JFFI_BOOT"
 
 if $cygwin; then
@@ -326,7 +319,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
       echo "Running with instrumented profiler"
   fi
 
-  "$JAVA_CMD" $PROFILE_ARGS $JAVA_OPTS "$JAVA_JNA" "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \
+  "$JAVA_CMD" $PROFILE_ARGS $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \
     "-Djruby.home=$JRUBY_HOME" \
     "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
     "-Djruby.shell=$JRUBY_SHELL" \
@@ -349,7 +342,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
 else
   if $cygwin; then
     # exec doed not work correctly with cygwin bash
-    "$JAVA_CMD" $JAVA_OPTS "$JAVA_JNA" "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
+    "$JAVA_CMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
       "-Djruby.home=$JRUBY_HOME" \
       "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
       "-Djruby.shell=$JRUBY_SHELL" \
@@ -362,7 +355,7 @@ else
 
     exit $JRUBY_STATUS
   else
-    exec "$JAVA_CMD" $JAVA_OPTS "$JAVA_JNA" "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
+    exec "$JAVA_CMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
       "-Djruby.home=$JRUBY_HOME" \
       "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
       "-Djruby.shell=$JRUBY_SHELL" \