# Copyright (C) 1998, 1999 Red Hat, Inc. load_lib "libgloss.exp" # GCJ_UNDER_TEST is the compiler under test. global tmpdir if ![info exists tmpdir] { set tmpdir "/tmp" } set java_initialized 0 # # Build the status wrapper library as needed. # proc java_init { args } { global wrapper_file; global wrap_compile_flags; global java_initialized global GCJ_UNDER_TEST global TOOL_EXECUTABLE global env if { $java_initialized == 1 } { return; } 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 { global tool_root_dir if ![is_remote host] { set file [lookfor_file $tool_root_dir gcj]; if { $file == "" } { set file [lookfor_file $tool_root_dir gcc/gcj]; } if { $file != "" } { set CC "$file -B[file dirname $file]/ --specs=$tool_root_dir/$target_alias/libjava/libgcj-test.spec"; } else { set CC [transform gcj]; } } else { set CC [transform gcj] } set GCJ_UNDER_TEST $CC } } } set wrapper_file ""; set wrap_compile_flags ""; if [target_info exists needs_status_wrapper] { set result [build_wrapper "testglue.o"]; if { $result != "" } { set wrapper_file [lindex $result 0]; set wrap_compile_flags [lindex $result 1]; } else { warning "Status wrapper failed to build." } } set java_initialized 1 } # # Run the test specified by srcfile and resultfile. compile_args and # exec_args are options telling this proc how to work. # proc compile_java_from_source { srcfile binfile compile_args } { global GCJ_UNDER_TEST global runtests global java_initialized if { $java_initialized != 1 } { java_init } set errname [file rootname [file tail $srcfile]] if {! [runtest_file_p $runtests $errname]} { return } set args "compiler=$GCJ_UNDER_TEST" lappend args "additional_flags=--main=[file rootname [file tail $srcfile]]" if { $compile_args != "" } { lappend args "additional_flags=$compile_args" } if { $compile_args != "" } { set errname "$errname $compile_args" } set x [target_compile $srcfile ${binfile} ${binfile} $args] if { $x != "" } { verbose "target_compile failed: $x" 2 return "$errname compilation from source"; } } # Local Variables: # tcl-indent-level:4 # End: