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