1 # This test code is part of GDB
, the GNU debugger.
3 # Copyright
1998, 1999, 2000, 2003, 2004
4 # Free Software Foundation
, Inc.
6 # This
program is free software
; you can redistribute it and
/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation
; either version
2 of the License
, or
9 #
(at your option
) any later version.
11 # This
program is distributed in the hope that it will be useful
,
12 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License
for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this
program; if not
, write to the Free Software
18 # Foundation
, Inc.
, 59 Temple Place
- Suite
330, Boston
, MA
02111-1307, USA.
20 load_lib
"libgloss.exp"
22 # GCJ_UNDER_TEST is the compiler under test.
26 if ![info exists tmpdir
] {
30 set java_initialized
0
33 # Build the
status wrapper library as needed.
35 proc java_init
{ args } {
37 global wrap_compile_flags
;
38 global java_initialized
40 global TOOL_EXECUTABLE
43 if { $java_initialized
== 1 } { return; }
45 if ![info exists GCJ_UNDER_TEST
] {
46 if [info exists TOOL_EXECUTABLE
] {
47 set GCJ_UNDER_TEST $TOOL_EXECUTABLE
;
49 if [info exists env
(GCJ
)] {
50 set GCJ_UNDER_TEST $env
(GCJ
)
55 if ![is_remote host
] {
56 set file
[lookfor_file $tool_root_dir gcj
];
58 set file
[lookfor_file $tool_root_dir gcc
/gcj
];
61 set CC
"$file -B[file dirname $file]/ --specs=$tool_root_dir/$target_alias/libjava/libgcj-test.spec";
63 set CC
[transform gcj
];
66 set CC
[transform gcj
]
68 set GCJ_UNDER_TEST $CC
74 set wrap_compile_flags
"";
75 if [target_info
exists needs_status_wrapper
] {
76 set result
[build_wrapper
"testglue.o"];
77 if { $result
!= "" } {
78 set wrapper_file
[lindex $result
0];
79 set wrap_compile_flags
[lindex $result
1];
81 warning
"Status wrapper failed to build."
85 set java_initialized
1
89 # Run the test specified by srcfile and resultfile. compile_args and
90 # exec_args are options telling this proc how to work.
92 proc compile_java_from_source
{ srcfile binfile compile_args
} {
95 global java_initialized
97 if { $java_initialized
!= 1 } { java_init
}
99 set errname
[file rootname
[file tail $srcfile
]]
100 if {! [runtest_file_p $runtests $errname
]} {
104 set args "compiler=$GCJ_UNDER_TEST"
105 lappend
args "additional_flags=--main=[file rootname [file tail $srcfile]]"
106 if { $compile_args
!= "" } {
107 lappend
args "additional_flags=$compile_args"
110 if { $compile_args
!= "" } {
111 set errname
"$errname $compile_args"
114 set x
[target_compile $srcfile $
{binfile
} $
{binfile
} $
args]
116 verbose
"target_compile failed: $x" 2
117 return "$errname compilation from source";