aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/lib/libjava.exp
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@dcc.unicamp.br>1999-07-31 23:52:52 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-07-31 23:52:52 +0000
commit5f67f48f90c767a2a8371bc4ddb5034a202e7488 (patch)
treeae71ef2ab48ebcd8f0b335d3c39d72757df87681 /libjava/testsuite/lib/libjava.exp
parent71c7a006e5e9fbbee53687c4d93fe75a2e537bca (diff)
downloadgcc-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.exp53
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