# 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.

# This is a list of toolchains that are supported on this board.
set_board_info target_install {m32r-elf}

# No multilib flags needed by default.
process_multilib_options ""

# Load the generic configuration for this board. This will define a basic set
# of routines needed by the tool to communicate with the board.
if { $is_gdb_remote } {
    load_generic_config "m32r-stub"
} else {
    load_generic_config "m32r"
}

# We only support newlib on this target. We assume that all multilib
# options have been specified before we get here.

set_board_info compiler  "[find_gcc]"
set_board_info cflags    "[libgloss_include_flags] [newlib_include_flags]"
set_board_info ldflags   "[libgloss_link_flags] [newlib_link_flags]"
set_board_info ldscript  "-Teva.ld"
set_board_info gdb,start_symbol "_start"

set_board_info needs_status_wrapper 1

# The GDB protocol used for this target.
if { ! $is_gdb_remote } {
    set_board_info gdb_protocol  "m32r"
} else {
    set_board_info gdb_protocol  "m32r"
    set_board_info use_gdb_stub 1
    set_board_info gdb_stub_ldscript "-Teva-stub.ld"
}

# Doesn't pass arguments or signals, can't return results, and doesn't
# do inferiorio.
set_board_info noargs 1
set_board_info gdb,nosignals 1
set_board_info gdb,noresults 1
set_board_info gdb,noinferiorio 1
