#!/bin/sh
#
# Shell script to configure SPIM.
#
# Copyright (C) 1992-2000 by James Larus (larus@cs.wisc.edu).
# ALL RIGHTS RESERVED.
#
# SPIM is distributed under the following conditions:
#
#   You may make copies of SPIM for your own use and modify those copies.
#
#   All copies of SPIM must retain my name and copyright notice.
#
#   You may not sell SPIM or distributed SPIM in conjunction with a commerical
#   product or service without the expressed written consent of James Larus.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
#
# $Header: /u/l/a/larus/Software/SPIM/RCS/Configure,v 1.13 1997/12/30 21:49:27 larus Exp $
#
# Shell script to create proper links to machine-dependent files for SPIM.
#
#
# Usage: Configure
#
# (Environment variable CC can be set to name a compiler--besides the
# default of cc)


set CC = ${CC:=cc}
echo $CC


echo Check if this machine is big-endian or little-endian.
echo This may take a few minutes.
rm -f configuration
$CC endian.c -o endian
if ./endian; then
  # Big endian
  rm -f Tests/tt.s Tests/tt.OK configuration
  cd Tests
  ln -s tt.be.s tt.s
  ln -s tt.be.OK tt.OK
  cd ..
  echo "-DBIGENDIAN" > configuration
  echo I believe this is a big-endian machine.
else
  # Little endian
  rm -f Tests/tt.s Tests/tt.OK configuration
  cd Tests
  ln -s tt.le.s tt.s
  ln -s tt.le.OK tt.OK
  cd ..
  echo "-DLITTLEENDIAN" > configuration
  echo I believe this is a little-endian machine.
fi;
rm -f endian


if [ -f /usr/lib/libc.a ]; then
  # BSD Universe:
  echo Looks like a BSD universe exists...
  echo Scaning libc
  nm /usr/lib/libc.a > library_contents
  set flag = -s
else if [ -f /lib/libc.a ]; then
  # System V Universe:
  echo Looks like a System V universe exists...
  echo Scaning libc
  nm /lib/libc.a > library_contents
  set flag = -q
else if [ -f /usr/lib/libc.so ]; then
  # System V Universe?
  echo Looks like a System V universe exists...
  echo Scaning libc
  nm /usr/lib/libc.so > library_contents
  set flag = -q
fi;
fi;
fi;


echo
echo Checking if libc on this machine contains:


if  grep $flag 'vsprintf' library_contents > /dev/null; then
  echo "  vsprintf: Yes, I think so"
else
  echo "-DNEED_VSPRINTF" >> configuration
  echo "  vsprintf: No, I don't think"

  if  grep $flag '_doprnt' library_contents > /dev/null; then
    echo "    _doprnt: Yes, I think, so I will use it instead"
  else
    echo "    _doprnt: NO, THIS IS A PROBLEM: NO VSPRINTF AND NO _DOPRNT"
    echo "SPIM WILL NOT RUN PROPERLY"
  fi;
fi;


if  grep $flag 'vfprintf' library_contents > /dev/null; then
  echo "  vfprintf: Yes, I think"
else
  echo "-DNO_VFPRINTF" >> configuration
  echo "  vfprintf: No, I don't think"

  if  grep $flag '_doprnt' library_contents > /dev/null; then
    echo "    _doprnt: Yes, I think"
  else
    echo "    _doprnt: NO, THIS IS A PROBLEM: NO VFPRINTF AND NO _DOPRNT"
    echo "SPIM WILL NOT RUN PROPERLY"
  fi;
fi;


if grep $flag 'strtoul' library_contents > /dev/null; then
  echo "  strtoul: Yes, I think"
else
  # No strtol
  echo "-DNEED_STRTOUL" >> configuration
  echo "  strtoul: No, I don't think"
fi;


if grep $flag 'strtol' library_contents > /dev/null; then
    echo "  strtol: Yes, I think"
else
  # No strtol
  echo "-DNEED_STRTOL" >> configuration
  echo "  strtol: No, I don't think"
fi;


if grep $flag 'memcpy' library_contents > /dev/null; then
  echo "  memcpy: Yes, I think"
else
  # No memcpy
  echo "-DNO_MEM_FUNCTIONS" >> configuration
  echo "  memcpy: No, I don't think"
fi;


echo
echo Checking for /usr/include/termio.h
if [ -f /usr/include/termio.h ]; then
  echo "-DUSE_TERMIO" >> configuration
  echo "Yes, it is there"
else
  # No memcpy
  echo "No, it is not there"
fi;


rm -f library_contents
