| # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software |
| # Foundation, Inc. |
| # |
| # This file is part of DejaGnu. |
| # |
| # DejaGnu is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 2 of the License, or |
| # (at your option) any later version. |
| # |
| # DejaGnu is distributed in the hope that it will be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with DejaGnu; if not, write to the Free Software Foundation, |
| # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| |
| # find_sim -- find a usable simulator |
| # This proc is local to this file and is used to locate a simulator to use. |
| # First we see if SIM=foo was specified on the command line. |
| # Otherwise we search the build tree, then $PATH. |
| |
| proc find_sim { target_alias sim_dir sim_name } { |
| global tool_root_dir |
| global SIM |
| |
| if [info exists SIM] { |
| return $SIM |
| } |
| |
| if [is_remote host] { |
| if ![board_info host exists no_transform_name] { |
| return ${target_alias}-${sim_name} |
| } else { |
| return ${sim_name} |
| } |
| } |
| |
| # We have to search because tool_root_dir may actually point to that blasted |
| # "target" subdirectory. |
| set try [lookfor_file ${tool_root_dir} sim/${sim_dir}/${sim_name}] |
| if { $try != "" } { |
| return $try |
| } |
| return ${target_alias}-${sim_name} |
| } |
| |
| proc setup_sim { subdir_name } { |
| global target_alias |
| global tool_root_dir |
| global board |
| |
| if [info exists target_alias] { |
| set tmp $target_alias |
| } else { |
| if [board_info $board exists target_install] { |
| set tmp [lindex [board_info $board target_install] 0] |
| } |
| } |
| |
| if ![board_info $board exists sim] { |
| set_board_info sim [find_sim $tmp $subdir_name run] |
| } |
| |
| verbose "Using simulator [board_info $board sim]\n" |
| } |
| |
| set_board_info is_simulator 1 |