diff options
author | Alexandre Oliva <oliva@dcc.unicamp.br> | 1999-07-31 23:52:52 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-07-31 23:52:52 +0000 |
commit | 5f67f48f90c767a2a8371bc4ddb5034a202e7488 (patch) | |
tree | ae71ef2ab48ebcd8f0b335d3c39d72757df87681 /libjava/testsuite/lib/libjava.exp | |
parent | 71c7a006e5e9fbbee53687c4d93fe75a2e537bca (diff) | |
download | gcc-5f67f48f90c767a2a8371bc4ddb5034a202e7488.zip gcc-5f67f48f90c767a2a8371bc4ddb5034a202e7488.tar.gz gcc-5f67f48f90c767a2a8371bc4ddb5034a202e7488.tar.bz2 |
libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that defaults to javac, as Sun-javac compiler or compatible.
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
Diffstat (limited to 'libjava/testsuite/lib/libjava.exp')
-rw-r--r-- | libjava/testsuite/lib/libjava.exp | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp index 3abb648..3412b13 100644 --- a/libjava/testsuite/lib/libjava.exp +++ b/libjava/testsuite/lib/libjava.exp @@ -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 |