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

# Load the generic configuration for this board. This will define any
# routines needed by the tool to communicate with the board.
load_generic_config "m68k-emc"

# No multilib options by default.
process_multilib_options ""

# The compiler used to build for this board. Note that this has nothing to do
# with what compiler is tested when testing gcc.
set_board_info compiler "[find_gcc]"

set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]"

set_board_info ldflags "-nostdlib [libgloss_link_flags] [newlib_link_flags]"

# No linker script.
set_board_info ldscript ""
# The idt interface can't return exit statuses, so gcc (ctorture et
# al) needs to do what it can to get them.
set_board_info needs_status_wrapper 1

# GDB needs to use "target remote" to talk to the board.
set_board_info gdb_protocol  "remote"

# Can't pass arguments to the program under test.
set_board_info noargs 1

# Nor can it do I/O in GDB.
set_board_info gdb,noinferiorio 1

# It has no signals.
set_board_info gdb,nosignals 1

# It can't return results when debugging with GDB.
set_board_info gdb,noresults 1
