Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / bin / nasconfig
#! /bin/sh
#
# nasconfig
#
# Cloned from .common_tool_wrapper
loginfo () {
echo "DATE: "`date`
echo "WRAPPER: /import/$TRE_PROJECT/exe/.ccad_tool_wrapper"
echo "USER: "`/usr/ucb/whoami`
echo "HOST: "`uname -n`
echo "SYS: "`uname -s` `uname -r`
echo "PWD: "`pwd`
echo "ARGV: "$ARGV
echo "TOOL: "$tool
echo "VERSION: "$version
echo "TRE_SEARCH: "$TRE_SEARCH
echo "TRE_ENTRY: "$TRE_ENTRY
}
mailinfo () {
echo To: $1
echo Subject: TRE_LOG
echo "#"
loginfo
}
mailerr () {
echo "To: $1"
echo "Subject: TRE ERROR"
echo "#"
echo "ERROR: $2"
loginfo
}
log () {
# Log to TRE_LOG if it is set properly.
# It is STRONGLY recommended that TRE_LOG be an e-mail address
# in order to avoid problems with several people simultanously
# writing to the same file.
# TRE_LOG must be set, but it can be broken.
# TRE_ULOG is optional, for users who want their own logging.
if [ ! -z "$TRE_LOG_ENABLED" -a ! -z "$TRE_LOG" ] ; then
# Check first if TRE_LOG is a file (this is cheap).
if [ -f $TRE_LOG -a -w $TRE_LOG ] ; then
echo "#" >> $TRE_LOG
loginfo >> $TRE_LOG
elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then
mailinfo $TRE_LOG | /usr/lib/sendmail $TRE_LOG
else
user=`/usr/ucb/whoami`
mailerr $user "Can't log to TRE_LOG=$TRE_LOG. Fix environment." | /usr/lib/sendmail $user
fi
#else
# die "TRE_LOG environment variable is not set."
fi
# TRE_ULOG is optional user log. EMAIL address is recommended.
if [ ! -z "$TRE_ULOG" ] ; then
# Check first if TRE_ULOG is a file (this is cheap).
if [ -f $TRE_ULOG -a -w $TRE_ULOG ] ; then
echo "#" >> $TRE_ULOG
loginfo >> $TRE_ULOG
elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then
mailinfo $TRE_ULOG | /usr/lib/sendmail $TRE_ULOG
else
user=`/usr/ucb/whoami`
mailerr $user "Can't log to TRE_ULOG=$TRE_ULOG. Fix environment." | /usr/lib/sendmail $user
fi
fi
}
die () {
message="$1"
echo "$tool -> .ccad_tool_wrapper: $message Exiting ..."
if [ ! -z "$TRE_LOG" ] ; then
if [ -f ${TRE_LOG} -a -w ${TRE_LOG} ] ; then
echo "#" >> $TRE_LOG
echo "ERROR: $message" >> $TRE_LOG
loginfo >> $TRE_LOG
elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then
mailerr $TRE_LOG "$message" | /usr/lib/sendmail $TRE_LOG
else
user=`/usr/ucb/whoami`
echo "Can not log to TRE_LOG=${TRE_LOG}. Logging to '$user.'"
mailerr $user "$message" | /usr/lib/sendmail $user
fi
fi
# TRE_ULOG is optional user log. EMAIL address is recommended.
if [ ! -z "$TRE_ULOG" ] ; then
if [ -f ${TRE_ULOG} -a -w ${TRE_ULOG} ] ; then
echo "#" >> $TRE_ULOG
echo "ERROR: $message" >> $TRE_ULOG
loginfo >> $TRE_ULOG
elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then
mailerr $TRE_ULOG "$message" | /usr/lib/sendmail $TRE_ULOG
else
user=`/usr/ucb/whoami`
echo "Can not log to TRE_ULOG=${TRE_ULOG}. Logging to '$user.'"
mailerr $user "$message" | /usr/lib/sendmail $user
fi
fi
exit 1
}
############################ main ##############################
tool=`basename $0`
ARGV="$*"
TRE_ROOT=$DV_ROOT/tools/src
### Verify TRE_SEARCH and TRE_ENTRY are defined and non-null
if [ -z "$TRE_SEARCH" ]; then
die "TRE_SEARCH not defined"
fi
if [ -z "$TRE_ENTRY" ]; then
die "TRE_ENTRY not defined"
fi
### Get version, based on tool invoked, and $TRE_ENTRY
version=`configsrch nas $TRE_ENTRY`
if [ $? != 0 ] ; then
die "configsrch returned error code!"
fi
### Verify configsrch delivered a non-null version
if [ -z "$version" ]; then
die "No version set by configsrch"
fi
### Find out about cpp
cppversion=`bw_cpp -V < /dev/null > /dev/null 2>&1`
if [ $? != 0 ] ; then
### It's an error, so it must be GNU cpp
cppargs=""
else
### It's sun cpp, so we need -B
cppargs="-B"
fi
###
echo "sed 's/common.exe/diag.exe/' $TRE_ROOT/nas,$version/home/common/common.simics | sed 's/common.conf/diag.conf/' | bw_cpp $cppargs $ARGV | grep -v '^#' > diag.simics"
log
ret=`bw_cpp $cppargs -P $ARGV $TRE_ROOT/nas,$version/home/common/common.conf > diag.conf`
ret=`sed 's/common.exe/diag.exe/' $TRE_ROOT/nas,$version/home/common/common.simics | sed 's/common.conf/diag.conf/' | bw_cpp $cppargs $ARGV | grep -v '^#' > diag.simics`