#! /bin/sh # ========== Copyright Header Begin ========================================== # # OpenSPARC T1 Processor File: sims # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. # # The above named program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License version 2 as published by the Free Software Foundation. # # The above named 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 work; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # # ========== Copyright Header End ============================================ # # SCCS ID: @(#).local_tool_wrapper 1.1 02/03/99 # # Cloned from .common_tool_wrapper loginfo () { echo "DATE: "`date` echo "WRAPPER: $TRE_PROJECT/local_tool_wrapper" echo "USER: "$user 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" ] ; then if [ ! -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 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 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 mailerr $user "Can't log to TRE_ULOG=$TRE_ULOG. Fix environment." | /usr/lib/sendmail $user fi fi } die () { message="$1" echo "$tool -> .local_tool_wrapper: $message Exiting ..." exit 1 } ############################ main ############################## tool=`basename $0` ARGV="$*" TRE_PROJECT=$DV_ROOT if [ -z "$TRE_PROJECT" ]; then die "TRE_PROJECT not defined" fi TRE_ROOT=$TRE_PROJECT/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 $tool $TRE_ENTRY 2>&1` stat=$? if [ $stat != 0 ] ; then die "configsrch returned error code $stat" fi ### Verify configsrch delivered a non-null version if [ -z "$version" ]; then die "No version set by configsrch" fi ### execute ### Assemble do-file name. If it's there, execute and test status. exe=$TRE_ROOT/$tool,$version.do if [ -x $exe ]; then $exe dostat=$? if [ $? != 0 ] ; then die "Error return from do file" fi fi OS=`uname -s` if [ $OS = "SunOS" ] ; then user=`/usr/ucb/whoami` CPU=`uname -p` fi if [ $OS = "Linux" ]; then user=`/usr/bin/whoami` CPU=`uname -m` fi if [ -z "$PERL_VER" ] ; then if [ -z "$PERL5OPT" ] ; then PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU" else PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU $PERL5OPT" fi else if [ -z "$PERL5OPT" ] ; then PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU -I$PERL5_PATH/$PERL_VER -I$PERL5_PATH/$PERL_VER/sun4-solaris" else PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU -I$PERL5_PATH/$PERL_VER -I$PERL5_PATH/$PERL_VER/sun4-solaris $PERL5OPT" fi fi export PERL5OPT exe=$TRE_ROOT/$tool,$version if [ -x $exe ]; then exec $PERL_PATH/bin/perl $exe "$@" else die "executable $exe not found!" fi