# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.

# find_sid -- find a usable SID simulator.
# This proc is local to this file and is used to locate a SID to use.
# Search the build tree, then $PATH.
#
# Written by Ben Elliston (bje@redhat.com).

proc find_sid { target_alias } {
    global env
    global tool_root_dir

    set try [lookfor_file ${tool_root_dir} sid/bsp/${target_alias}-sid]
    if { $try != "" } {
	set sid_build [lookfor_file ${tool_root_dir} sid/main/dynamic/sid]
	if { $sid_build != "" } { set env(SID) $sid_build }
	return $try
    }

    # In this case, the bsp script must be available on the PATH.
    # Just hope for the best!
    return ${target_alias}-sid
}

# find_sid_conf -- find a usable pre-generated SID config file.

proc find_sid_conf { config } {
    global env
    global srcdir

    set try [lookfor_file ${srcdir} sid/bsp/pregen/${config}.conf]
    if { $try == "" } then { return ${config}.conf } else { return $try }
}

# find_rawsid -- find a usable SID simulator.
# This proc is local to this file and is used to locate a SID to use.
# Search the build tree, then $PATH.

proc find_rawsid { } {
    global env
    global tool_root_dir
    global srcdir

    set try [lookfor_file ${tool_root_dir} sid/main/dynamic/sid]
    if { $try == "" } {
	set try "sid"
    } else {
	# testing build tree
	set env(SID_LIBRARY_PATH) [join [glob "${tool_root_dir}/sid/component/*" "$srcdir/sid/component/*"] ":"]
	# srcdir=/..../sid/component/testsuite
	set tcl_library "$srcdir/tcl/library"
        global host_os
	switch -glob $host_os {
	    {cygwin*} { set tcl_library [exec cygpath -w $tcl_library] }
        }
	set env(TCL_LIBRARY) $tcl_library
    }

    return $try
}
