# 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 {m68k-coff m68k-elf}

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

# Need soft-float by default.
process_multilib_options "-msoft-float"

# 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]"

# Nasty hack.
if { [board_info $board obj_format] == "a.out" } {
    # Need to pass the start address to objcopy.
    set_board_info use_vma_offset 1
    # Wrapping has to be specially done for m68k-aout, for whatever reason.
    set_board_info wrap_m68k_aout 1

    set extra_m68k_ld_flags "-N -nostdlib "

    # We need to tell GDB to load at the correct offset.
    set_board_info gdb_load_offset [board_info $board hex_startaddr]
} else {
    set extra_m68k_ld_flags ""
}

set_board_info ldflags "$extra_m68k_ld_flags [libgloss_link_flags] [newlib_link_flags]"
unset extra_m68k_ld_flags


# If no output format is specified, use objcopy.
if {![board_info $board exists output_format]} {
    set tempfil [lookfor_file $tool_root_dir binutils/objcopy]
    if { $tempfil != "" } {
	set_board_info objcopy $tempfil
    } else {
	set_board_info objcopy [transform objcopy]
    }
    unset tempfil
}

# IDP linker script, with special console output routine for GDB.
set_board_info ldscript "-Tidpgdb.ld"

# 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 rom68k" to talk to the board.
set_board_info gdb_protocol  "rom68k"

# Can't pass arguments to the program under test.
set_board_info noargs 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

# Pseudo-random guess.
set_board_info sys_speed_value 200
