Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / bin / regreport
CommitLineData
86530b38
AT
1
2loginfo () {
3 echo "DATE: "`date`
4 echo "WRAPPER: $TRE_PROJECT/tools/bin/perl_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 -> perl_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
108TRE_ROOT=$TRE_PROJECT/tools/perlmod
109
110### Verify TRE_SEARCH and TRE_ENTRY are defined and non-null
111
112if [ -z "$TRE_SEARCH" ]; then
113 die "TRE_SEARCH not defined"
114fi
115if [ -z "$TRE_ENTRY" ]; then
116 die "TRE_ENTRY not defined"
117fi
118
119### Get version, based on tool invoked, and $TRE_ENTRY
120
121if [ $tool = "configsrch" ] ; then
122 exe=$TRE_ROOT/$tool
123 exec $exe "$@"
124 exit
125else
126
127 version=`configsrch $tool $TRE_ENTRY 2>&1`
128 stat=$?
129 if [ $stat != 0 ] ; then
130 die "configsrch returned error code $stat"
131 fi
132
133 ### Verify configsrch delivered a non-null version
134
135 if [ -z "$version" ]; then
136 die "No version set by configsrch"
137 fi
138fi
139
140### Assemble do-file name. If it's there, execute and test status.
141
142exe=$TRE_ROOT/$tool,$version.do
143if [ -x $exe ]; then
144 $exe
145 dostat=$?
146 if [ $? != 0 ] ; then
147 die "Error return from do file"
148 fi
149fi
150
151OS=`uname -s`
152if [ $OS = "SunOS" ] ; then
153 user=`/usr/ucb/whoami`
154 CPU=`uname -p`
155fi
156if [ $OS = "Linux" ]; then
157 user=`/usr/bin/whoami`
158 CPU=`uname -m`
159fi
160
161if [ -z "$PERL_VER" ] ; then
162 if [ -z "$PERL5OPT" ] ; then
163 PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU"
164 else
165 PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU $PERL5OPT"
166 fi
167else
168 if [ -z "$PERL5OPT" ] ; then
169 PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU -I$PERL5_PATH/$PERL_VER -I$PERL5_PATH/$PERL_VER/sun4-solaris"
170 else
171 PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU -I$PERL5_PATH/$PERL_VER -I$PERL5_PATH/$PERL_VER/sun4-solaris $PERL5OPT"
172 fi
173fi
174export PERL5OPT
175
176
177exe=$TRE_ROOT/$tool,$version
178if [ -x $exe ]; then
179 exec $PERL_CMD $exe "$@"
180else
181 die "executable $exe not found!"
182fi