#! /bin/sh
# Utility script to generate the sim files for several ports.
# This is useful for verifying changes to the generated files
# without having to build every tool chain.
#
#   Copyright 2012 Free Software Foundation
#
# This file 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.
# 
# This program 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 this program; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
#

# Run this script in the src/cgen directory.

# Exit on any error.
set -e

# For debugging.
set -x

# fr30 not included, sim has been marked as obsolete.
# sh64 not included, not sure which configuration to use.
# i960 not included, it's being deleted.
cpus="m32r"

if [ ! -f sim.scm ]
then
    echo "Not in the src/cgen directory." >& 2
    exit 1
fi

builddir=tmp-sim

export cgendir=`pwd`

for c in $cpus
do
  rm -rf $builddir
  mkdir $builddir

  case $c in
  i960)
    (
	set -e
	set -x
	cd $builddir
	$cgendir/../sim/i960/configure --prefix /tmp/junk --target i960-coff
	make stamp-arch stamp-cpu stamp-desc
    )
    test $? = 0 || exit 1
    ;;

  m32r)
    (
	set -e
	set -x
	cd $builddir
	$cgendir/../sim/m32r/configure --prefix /tmp/junk --target m32r-elf
	make stamp-arch stamp-cpu stamp-xcpu
    )
    test $? = 0 || exit 1
    ;;

  fr30)
    (
	set -e
	set -x
	cd $builddir
	$cgendir/../sim/fr30/configure --prefix /tmp/junk --target fr30-elf
	make stamp-arch stamp-cpu
    )
    test $? = 0 || exit 1
    ;;

  sh64)
    (
	set -e
	set -x
	cd $builddir
	$cgendir/../sim/sh64/configure --prefix /tmp/junk --target ???
	make stamp-all
    )
    test $? = 0 || exit 1
    ;;

  *)
    echo "unsupported cpu $c" >& 2
    exit 1
    ;;
  esac
done
