Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / bin / goldfinger
CommitLineData
86530b38
AT
1
2loginfo () {
3 echo "DATE: "`date`
4 echo "WRAPPER: $TRE_PROJECT/tools/bin/local_tool_wrapper"
5 echo "USER: $user"
6 echo "HOST: "`uname -n`
7 echo "SYS: "`uname -s` `uname -r`
8 echo "PWD: "`pwd`
9 echo "ARGV: "$ARGV
10 echo "TOOL: "$tool
11 echo "VERSION: "$version
12 echo "TRE_SEARCH: "$TRE_SEARCH
13 echo "TRE_ENTRY: "$TRE_ENTRY
14}
15
16mailinfo () {
17 echo To: $1
18 echo Subject: TRE_LOG
19 echo "#"
20 loginfo
21}
22
23mailerr () {
24 echo "To: $1"
25 echo "Subject: TRE ERROR"
26 echo "#"
27 echo "ERROR: $2"
28 loginfo
29}
30
31log () {
32 # Log to TRE_LOG if it is set properly.
33 # It is STRONGLY recommended that TRE_LOG be an e-mail address
34 # in order to avoid problems with several people simultanously
35 # writing to the same file.
36 # TRE_LOG must be set, but it can be broken.
37 # TRE_ULOG is optional, for users who want their own logging.
38 if [ ! -z "$TRE_LOG_ENABLED" ] ; then
39 if [ ! -z "$TRE_LOG" ] ; then
40 # Check first if TRE_LOG is a file (this is cheap).
41 if [ -f $TRE_LOG -a -w $TRE_LOG ] ; then
42 echo "#" >> $TRE_LOG
43 loginfo >> $TRE_LOG
44 elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then
45 mailinfo $TRE_LOG | /usr/lib/sendmail $TRE_LOG
46 else
47 mailerr $user "Can't log to TRE_LOG=$TRE_LOG. Fix environment." | /usr/lib/sendmail $user
48 fi
49 else
50 die "TRE_LOG environment variable is not set."
51 fi
52 fi
53 # TRE_ULOG is optional user log. EMAIL address is recommended.
54 if [ ! -z "$TRE_ULOG" ] ; then
55 # Check first if TRE_ULOG is a file (this is cheap).
56 if [ -f $TRE_ULOG -a -w $TRE_ULOG ] ; then
57 echo "#" >> $TRE_ULOG
58 loginfo >> $TRE_ULOG
59 elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then
60 mailinfo $TRE_ULOG | /usr/lib/sendmail $TRE_ULOG
61 else
62 mailerr $user "Can't log to TRE_ULOG=$TRE_ULOG. Fix environment." | /usr/lib/sendmail $user
63 fi
64 fi
65}
66
67die () {
68 message="$1"
69 echo "$tool -> local_tool_wrapper: $message Exiting ..."
70 if [ ! -z "$TRE_LOG" ] ; then
71 if [ -f ${TRE_LOG} -a -w ${TRE_LOG} ] ; then
72 echo "#" >> $TRE_LOG
73 echo "ERROR: $message" >> $TRE_LOG
74 loginfo >> $TRE_LOG
75 elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then
76 mailerr $TRE_LOG "$message" | /usr/lib/sendmail $TRE_LOG
77 else
78 echo "Can not log to TRE_LOG=${TRE_LOG}. Logging to '$user.'"
79 mailerr $user "$message" | /usr/lib/sendmail $user
80 fi
81 fi
82 # TRE_ULOG is optional user log. EMAIL address is recommended.
83 if [ ! -z "$TRE_ULOG" ] ; then
84 if [ -f ${TRE_ULOG} -a -w ${TRE_ULOG} ] ; then
85 echo "#" >> $TRE_ULOG
86 echo "ERROR: $message" >> $TRE_ULOG
87 loginfo >> $TRE_ULOG
88 elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then
89 mailerr $TRE_ULOG "$message" | /usr/lib/sendmail $TRE_ULOG
90 else
91 echo "Can not log to TRE_ULOG=${TRE_ULOG}. Logging to '$user.'"
92 mailerr $user "$message" | /usr/lib/sendmail $user
93 fi
94 fi
95 exit 1
96}
97
98############################ main ##############################
99
100tool=`basename $0`
101ARGV="$*"
102TRE_PROJECT=$DV_ROOT
103
104if [ -z "$TRE_PROJECT" ]; then
105 die "TRE_PROJECT not defined"
106fi
107
108OS=`uname -s`
109if [ $OS = "SunOS" ] ; then
110 user=`/usr/ucb/whoami`
111 CPU=`uname -p`
112TRE_ROOT=$TRE_PROJECT/tools/SunOS/sparc
113fi
114if [ $OS = "Linux" ]; then
115 user=`/usr/bin/whoami`
116 CPU=`uname -m`
117TRE_ROOT=$TRE_PROJECT/tools/Linux/x86_64
118fi
119
120
121### Verify TRE_SEARCH and TRE_ENTRY are defined and non-null
122
123if [ -z "$TRE_SEARCH" ]; then
124 die "TRE_SEARCH not defined"
125fi
126if [ -z "$TRE_ENTRY" ]; then
127 die "TRE_ENTRY not defined"
128fi
129
130### Get version, based on tool invoked, and $TRE_ENTRY
131
132if [ $tool = "configsrch" ] ; then
133 exe=$TRE_ROOT/$tool
134 exec $exe "$@"
135 exit
136else
137
138 version=`configsrch $tool $TRE_ENTRY 2>&1`
139 stat=$?
140 if [ $stat != 0 ] ; then
141 die "configsrch returned error code $stat"
142 fi
143
144 ### Verify configsrch delivered a non-null version
145
146 if [ -z "$version" ]; then
147 die "No version set by configsrch"
148 fi
149fi
150
151### Assemble do-file name. If it's there, execute and test status.
152
153exe=$TRE_ROOT/$tool,$version.do
154if [ -x $exe ]; then
155 $exe
156 dostat=$?
157 if [ $? != 0 ] ; then
158 die "Error return from do file"
159 fi
160fi
161
162exe=$TRE_ROOT/$tool,$version
163if [ -x $exe ]; then
164 exec $exe "$@"
165else
166 die "executable $exe not found!"
167fi