libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that defaults to javac, as...
authorAlexandre Oliva <oliva@dcc.unicamp.br>
Sat, 31 Jul 1999 23:52:52 +0000 (23:52 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Sat, 31 Jul 1999 23:52:52 +0000 (23:52 +0000)
1999-07-31  Alexandre Oliva  <oliva@dcc.unicamp.br>

* lib/libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that
defaults to javac, as Sun-javac compiler or compatible.
(libjava_init): Get GCJ from environment if neither GCJ_UNDER_TEST
nor TOOL_EXECUTABLE are set.  Set `original_ld_library_path' from
environment.
(libjava_arguments): Prepend `.' and `$srcdir/$subdir' to
CLASSPATH, for `support' sources.  Search for libgcj.spec in
`$objdir/..', by adding -B to GCJ_UNDER_TEST.  Append
original_ld_library_path to ld_library_path.
* libjava.mauve/mauve.exp (test_mauve): Set `env(GCJ)' from
GCJ_UNDER_TEST, calculated just like in libjava.exp.

From-SVN: r28364

libjava/testsuite/ChangeLog
libjava/testsuite/lib/libjava.exp
libjava/testsuite/libjava.mauve/mauve.exp

index cb9224e049da5e6755b42e2277f6589e8a40f416..49794b19205d6ac518f296fd45182da92289ee88 100644 (file)
@@ -1,3 +1,17 @@
+1999-07-31  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * lib/libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that
+       defaults to javac, as Sun-javac compiler or compatible.
+       (libjava_init): Get GCJ from environment if neither GCJ_UNDER_TEST 
+       nor TOOL_EXECUTABLE are set.  Set `original_ld_library_path' from
+       environment.
+       (libjava_arguments): Prepend `.' and `$srcdir/$subdir' to
+       CLASSPATH, for `support' sources.  Search for libgcj.spec in
+       `$objdir/..', by adding -B to GCJ_UNDER_TEST.  Append
+       original_ld_library_path to ld_library_path.
+       * libjava.mauve/mauve.exp (test_mauve): Set `env(GCJ)' from
+       GCJ_UNDER_TEST, calculated just like in libjava.exp.
+
 1999-07-14  Tom Tromey  <tromey@cygnus.com>
 
        * libjava.compile/G19990217_02.no-link: New file.
index 3abb648a8b96e8d0a58635016e2c81729bd41d6a..3412b132bd975bb1198d430824a156a346ab5e66 100644 (file)
@@ -38,13 +38,30 @@ proc find_jvscan {} {
 
 proc bytecompile_file { file objdir {classpath {}} } {
     global env
+    global SUN_JAVAC
     set dirname  [file dirname $file];
 
+    # If JDK doesn't run on your platform but some other
+    # JDK-compatible javac does, you may set SUN_JAVAC to point to it.
+    # One of the most important properties of a SUN_JAVAC is that it
+    # must create class-files even for classes that have not been
+    # specified in the command line, but that were needed to compile
+    # those that have.  For example, Pizza won't do it, but you can
+    # use `kaffe sun.tools.javac.Main', if you have Sun's classes.zip
+    # in the kaffe's default search path.
+    if ![info exists SUN_JAVAC] {
+       if [info exists env(SUN_JAVAC)] {
+           set SUN_JAVAC $env(SUN_JAVAC)
+       } else {
+           set SUN_JAVAC "javac"
+       }
+    }
+
     catch {unset env(CLASSPATH)}
     if {$classpath != ""} then {
         set env(CLASSPATH) $classpath
     }
-    if {[catch {system "cd $dirname; javac $file -d $objdir"} msg]} then {
+    if {[catch {system "cd $dirname; $SUN_JAVAC $file -d $objdir"} msg]} then {
        verbose "couldn't compile $file: $msg"
        set r 0
     } else {
@@ -64,6 +81,8 @@ proc libjava_init { args } {
     global libjava_initialized
     global GCJ_UNDER_TEST
     global TOOL_EXECUTABLE
+    global original_ld_library_path
+    global env
 
     if { $libjava_initialized == 1 } { return; }
 
@@ -71,7 +90,21 @@ proc libjava_init { args } {
        if [info exists TOOL_EXECUTABLE] {
            set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
        } else {
-           set GCJ_UNDER_TEST "[find_gcj]"
+           if [info exists env(GCJ)] {
+               set GCJ_UNDER_TEST $env(GCJ)
+           } else {
+               set GCJ_UNDER_TEST "[find_gcj]"
+           }
+       }
+    }
+
+    if [info exists env(LD_LIBRARY_PATH)] {
+       set original_ld_library_path $env(LD_LIBRARY_PATH)
+    } else {
+       if [info exists env(SHLIB_PATH)] {
+           set original_ld_library_path $env(SHLIB_PATH)
+       } else {
+           set original_ld_library_path ""
        }
     }
 
@@ -129,6 +162,7 @@ proc libjava_arguments {{mode compile}} {
     global GCJ_UNDER_TEST
     global tmpdir
     global runtests
+    global env
 
     if [info exists LIBJAVA] {
        set libjava $LIBJAVA;
@@ -184,13 +218,14 @@ proc libjava_arguments {{mode compile}} {
     # then we'd have to do a lot more work.
 
     # Set variables the dynamic linker looks at.
-    setenv LD_LIBRARY_PATH $ld_library_path
-    setenv SHLIB_PATH $ld_library_path
+    global original_ld_library_path
+    setenv LD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path"
+    setenv SHLIB_PATH "$ld_library_path:$original_ld_library_path"
 
     # Set the CLASSPATH environment variable
-    verbose "CLASSPATH is $objdir/.."
+    verbose "CLASSPATH is .:$srcdir/$subdir:$objdir/..:$objdir/../libgcj.zip"
     global env
-    set env(CLASSPATH) "$objdir/.."
+    set env(CLASSPATH) ".:$srcdir/$subdir:$objdir/..:$objdir/../libgcj.zip"
 
     global wrapper_file wrap_compile_flags;
     lappend args "additional_flags=$wrap_compile_flags";
@@ -217,13 +252,15 @@ proc libjava_arguments {{mode compile}} {
        if {[file exists $d/$x/libtool]} then {
            # We have to run silently to avoid DejaGNU lossage.
            lappend args \
-             "compiler=$d/$x/libtool --silent --mode=$mode $GCJ_UNDER_TEST"
+             "compiler=$d/$x/libtool --silent --mode=$mode $GCJ_UNDER_TEST -B$objdir/../"
            set found_compiler 1
            break
        }
     }
     if {! $found_compiler} {
-       lappend args "compiler=$GCJ_UNDER_TEST"
+       # Append -B$objdir/../ so that we find libgcj.spec before it
+       # is installed.
+       lappend args "compiler=$GCJ_UNDER_TEST -B$objdir/../"
     }
 
     return $args
index 0b49bb872aa0135013db0c9df7b089170d4e4c97..398b6704c84c44c273104442b645fa852327096d 100644 (file)
@@ -49,7 +49,7 @@ proc mauve_compute_uses {aName} {
 
 # Run all the Mauve tests.
 proc test_mauve {} {
-  global srcdir subdir env
+  global srcdir objdir subdir env
 
   if {! [info exists env(MAUVEDIR)]} then {
     verbose "MAUVEDIR not set; not running Mauve tests"
@@ -65,6 +65,26 @@ proc test_mauve {} {
   set full_srcdir [pwd]
   cd $here/mauve-build
 
+    global env
+    global GCJ_UNDER_TEST
+    global TOOL_EXECUTABLE
+
+    if ![info exists GCJ_UNDER_TEST] {
+       if [info exists TOOL_EXECUTABLE] {
+           set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
+       } else {
+           if [info exists env(GCJ)] {
+               set GCJ_UNDER_TEST env(GCJ)
+           } else {
+               set GCJ_UNDER_TEST "[find_gcj]"
+           }
+       }
+    }
+
+    # Append -B and -I so that libgcj.spec and libgcj.zip are found
+    # before they're installed.
+    set env(GCJ) "$GCJ_UNDER_TEST -B$objdir/../ -I$objdir/../libgcj.zip"
+
   if {[catch {system "$env(MAUVEDIR)/configure --with-gcj"} msg]} then {
     fail "Mauve configure"
     verbose "configure failed with $msg"