各位大大好: X& i1 t: R8 Y+ C; E
小弟執行nanosim時,卻無法跑出視窗來,有個錯誤可是我不清楚該如何解決?問題如下& Q, [- B' W6 ?, Q' l- D& [- ~/ A* z
[: 113: 64: unexpected operator6 j3 Y9 `. K. l
/opt/EDA/nanosim/cur/linux/ns/bin//scripts/nanosim: 1: Syntax error: Unterminated quoted string2 X6 m; T2 v1 o) ~- V
有大大遇過這方面的問題或是指導我方向去解決, 謝謝. 3 S8 f3 j0 @5 n! q
我在猜可能是這個檔案內的文字需要修改 但不知道該如何修改?, s: F9 o: Y# y6 \& M+ j! X3 D
以下為/opt/EDA/nanosim/cur/linux/ns/bin//scripts/nanosim 的檔案內容: 0 s: b4 Y6 ~6 W4 G* S7 C/ o #!/bin/sh! h3 b( D5 P9 I. C
# 1 Y% D% o0 T7 k, M" Y# Copyright (C) 2001 Synopsys INC 6 B: r' s: b! G$ V5 m; s. A" e3 o# EPIC Dynamic Simulation Wrapper (DSW): h: ~3 u1 F# m& d" ~3 J' ?: Q
# 1 R8 w9 @8 C/ u2 k+ J" Reval ${DBG_EPIC_WRAPPER:+"set -x"} # \. {/ X6 t M4 i" a o0 U# Q1 Q( [* N/ M c
if [ "$EPIC_WRAPPER_DVLP" = "" ]; then2 N- z: z2 d* o& e4 r' C' O
TEMP_ARCH="$SES_ARCH": u9 b2 ^; Q1 S% d& f! Y/ l7 }: d
else ) L, M; c! b M Y) G TEMP_ARCH="$EPIC_ARCH" : W. `( S+ f$ f9 U0 r, Z& b' Pfi 1 ~, {" ]6 x& k3 X$ ?4 M, c6 u3 Z- N 1 B7 P6 g7 q# l! ~0 w! C5 ]scan_for_hva_args() 2 K* e6 J& x( N& v+ s{9 x2 H t: l F' o: }4 r" q
/bin/rm -f hva.init 1>&25 \" P' P, G7 q
while [ $# -gt 0 ]; do& W8 c0 J% {1 r5 }& |
case "$1" in " z5 ]& A0 s t" f5 T# l, o: n6 a -vaf)- \/ s/ ^% {2 B7 i! ?5 P- S; I
have_vaf_flag=1+ h6 ^( z5 Z* J" V; N
have_va_flag=06 l0 O) L3 {( j2 d1 K) s$ V
shift;/ Q( m3 H' O8 d$ X
continue; ; J. O0 c& h5 d ;; 2 G/ n; ]) f. h) T$ i* ^ -va) 3 ^! L( m' g- l' Q- R# v have_va_flag=1$ f' J" W3 ?0 ]* y
have_vaf_flag=0- S2 Q3 _6 s6 ^8 R8 x/ W, J
shift;# Q8 @1 F z' ?1 U+ _5 y/ |7 q
continue;+ _2 s- s m, _( E! z/ a% s; ~0 v
;;0 g/ c4 d* T9 I d8 h& p C9 ~- @
-*)/ D3 u r* S" d* m s/ {0 z( r
ARGV="$ARGV $1"8 A. s1 s+ o7 ]# Z+ v
have_va_flag=0 x% z2 f6 u& _/ A! V
have_vaf_flag=0 # s# Q) `, M3 i( \% U. u shift;' c& [( p( Z9 O% D# [
continue;; f+ [9 q" n2 }: O! H3 |
;; 3 C2 I- e4 t4 M% c9 V" Y) } *) $ `1 |) n- _* h. [4 D% [ if [ x"$have_va_flag" = x"1" ] ; then 5 g4 A4 I. v, V3 c6 q VA_FILE="$VA_FILE $1"+ p# K1 Y+ C, N
elif [ x"$have_vaf_flag" = x"1" ] ; then 1 v; g3 n+ I# I! Y
X="`cat $1 | sed -e '/\;/d;`" 1 {2 ~) o1 \1 R3 a+ v8 z/ E2 n for token in ${X}; do : m7 Z, e. o( y, ~! u$ g8 ? VA_FILE="$VA_FILE $token"% N& Q6 D6 \3 p+ x
done ' n1 r5 B# M0 |* f8 F( P else* @& X: u. l- z$ O9 A8 h8 M, Q
ARGV="$ARGV $1" ( m: c' j0 j# k" W/ \/ ] fi6 u0 J. ~. T/ Q3 L: E5 B7 k' R
shift;1 X% r; E% Y$ L+ f
;;! _+ _1 o& j7 f6 e2 ~
esac ) h, ?$ E" }" F0 U5 L+ Y$ G/ V done " H% U" j) K& X* }/ }# K. e$ u O4 y: f; b& @" ^% V; C, F
if [ x"$VA_FILE" != x"" ] ; then - m+ n: |$ `; q( k( ]## /bin/echo " xxx ARGV $ARGV" - K2 ?+ n' o- S- o P6 l /bin/echo "choose nanosim $ARGV ;" > hva.init# }* O: N* R& a. R3 l+ j& m
echo vcs +ad=hva.init $VA_FILE -o simv L" X7 h% c. y, j& e: h% \3 K. v vcs +ad=hva.init $VA_FILE -o simv& t2 p! o; a7 \) K
exe_status=$?7 _3 w. G& W+ p/ ^ ^$ F( V* V+ V
if [ $exe_status != 100 ]; then 3 V7 [% a1 o, i+ @" j( n /bin/echo "" " j! Q- Z6 i8 e3 G& S6 P$ v /bin/echo "ERROR: Execution of vcs exited with code $exe_status" ) a( T8 c, {' @# b' } /bin/echo "" " D! d% O7 e! P) q' z5 C" w& b' m exit $exe_status & f e0 c# } O6 g/ O2 A fi( z! H6 q0 a+ w. I+ o7 g( G
hva_files="-n simv.daidir/amsVD.ntl simv.daidir/amsWRAP.spi" + b$ F+ {6 [: \; C ARGV="$ARGV $hva_files"$ U, L+ B) n6 f' U$ v) f# o" j
fi & b! I) r5 ^% c7 l* n) V}# i F7 R; H7 B+ [& U9 C" R
#-------------------------------------------------------------------------2 a& {: R5 C% Z* u2 P& H
' Z: ~; b5 F* V6 j7 P$ Wcleanup() % g Q; N( K% h- o{* I2 b( A, c T# O- A) M
if [ -d "$rundir" ]; then* O: M/ ^ C# I* Q
# On AIX, a .nfsXXX file is created if libModel.o is removed4 v* Q5 R U' x% p5 C* ^
# so .epicrun is not removed because directory is not empty.% F; R5 E" i$ D q
# Solution is to remove it again if the first rm failed 4 w9 R; C* I, J3 z1 Z$ f. l, u+ U # (rm -rf $rundir || rm -rf $rundir) 1> /dev/null 2>&1 ( @0 o. v9 B0 V if [ "$EXTRA_CAPACITY" = "YES" ]; then& c4 |% k+ g) y6 o5 d5 J
chmod u+x $rundir/rpcidfile 9 Z+ n0 x8 ~' l: q: J: M $rundir/rpcidfile ' V; E2 c# p _& ^" J L4 y* G7 c rm $rundir/rpcidfile 5 K2 u8 `) f" y% D! G, ?; k: V# Z fi! M7 _+ c. H, f% p H; W
rm -rf $rundir' U* S, x+ x2 i% `8 M6 E6 R! q
6 {3 `" t" e+ @! T* f( }1 c; M #Due to NFS problem, we have to copy files needed to / z) R; U6 n9 y1 u: O7 ^! f7 c #/tmp/<temporary directory>, then symlink's files 2 h7 N9 d4 X& e0 \2 R" Y- C3 m4 n/ U #to the local temporary 'rundir'. This avoids the problem0 U( g1 p6 [3 ]1 m; i! p
#to remove 'rundir' , I6 G0 o" x* e/ p% L! e& { if [ "$EPIC_ARCH" = "RS6000_AIX_4" -o "$EPIC_ARCH" = "RS6000_AIX_5" -o "$EPIC_ARCH" = "aix64" ]; then9 c+ F( v+ {4 F1 e; o0 v
if [ -d "$tdir" ]; then * a! q: f7 x+ x' W( [8 s, ] rm -rf $tdir ' T; ^4 ~" n7 x" S0 M+ ~ fi " A- A$ T3 B2 z/ u& w5 v2 e fi$ g- h* Q2 [& ^
fi6 w2 u( q+ g" b& z% Y/ C
if [ ${exitstatus:-0} -eq $ld_err_code ]; then& {! D5 `6 N2 `% u }5 `: [
[ "$has_model" = "YES" ] && rm -f $cwd/libModel$suffix ( `) K; Y; ]% Z8 J$ V% B [ "$has_custom" = "YES" ] && rm -f $cwd/libCustom$suffix [1 C$ d J6 b& n( d- H5 o5 g
fi 8 A/ a# }2 V4 @& C3 Z$ U [ -f "$EPIC_SCRIPT_MESSAGES_FILE" ] && rm -f $EPIC_SCRIPT_MESSAGES_FILE 1>&2 Y) y1 @) x8 u+ _# N, Z9 g8 J3 s exit ${exitstatus:-0}" t0 c4 K: I2 l5 l0 G: A
} 7 Z* B; N. X6 C$ [ & B, v9 _! s$ D+ W: HExit()4 i) y" ]7 H) m" h2 ?( q
{: O, L' M% ?' Y0 D# J8 `6 d
exitstatus=$1 " M& I0 B' @! {; T& Q* h3 [ exit $exitstatus9 I* g \ u$ U# ~# J
}5 T' l, h# Y0 a/ @7 I: }8 g
4 s2 d9 R2 i5 r
# get_epicrc filename keyword( b9 K) J- S: I% M
get_epicrc()7 w9 |% ?) z3 |: t
{ 1 r8 P/ n1 Y, T' i B8 v, A [ -f $1 ] || exit 0 # w5 p, e3 P6 \: ~- J key="/^$cmd2:/{print \$3}" . J% e: U( V0 D1 p awk -F":" "$key" $1' R. a1 c: I+ X0 P; c! ~
}; p4 e3 d8 T1 S. L% Q! x- M
' W# ?3 b! h2 V1 y( b# * W+ s: f1 D; Z4 t) X6 i# set datasize limit to hardlimit 9 L0 Q7 ]- T: e1 i# * }% Z' y, ~0 T! u0 Y. R# Z$ X @set_data_limit()* H& L& p d; J& ~" m
{: G) I7 @1 L% G/ F; u4 F- x+ @
dbglimit=0 : Q$ G& a" w, U hardlimit=`ulimit -Hd`2 A" [& n7 X, ^: s' M
softlimit=`ulimit -d` 8 O" r1 b4 f5 y2 j) u desiredlimit=3500000 + j2 M7 ]9 N! n) x. @ hardisunlimited=0 ( |7 U: F* I: U+ E4 E softisunlimited=0- m4 k" ?* W4 ^3 V
is64=0 ' E! Y" m' p3 k, n' W- m' i ; \: M& W; `$ ?; u( [ case "$EPIC_ARCH" in $ z% [9 k T/ W0 t: B! r- ~" Z *SUN*64)! h |( L. c# X8 _& n! q2 d
is64=1. G- p: u& L: j' {- u+ E
;;3 T& O# h4 k) c( `
amd64); Q# j2 b/ {5 g. [& {$ _& }
is64=1 ; ]/ W& T# b* M) M- e0 Z$ H ;;/ [, f, w% j. o3 f8 X0 ~& X7 x
x86sol64)- P2 U9 Y& l3 W2 w& ]
is64=1 ! U( E1 S6 v: u* B% l/ k: O ;; Z7 W3 T; ?% n8 f$ ~1 y z8 z; r
aix64)1 \2 i) `/ l( I) R( r7 A
is64=1, N Q. T: j6 d% W+ D
;; ! h9 D( ~+ I5 z' U6 \ [4 }: M suse64)& I: D8 p7 `# l4 j, u! q
is64=18 U' U. ~1 Q) g
;;) X5 p5 v2 J, c% ^
esac7 r! u+ C* L( U5 B$ @! f# P
5 }7 ^% r8 m5 j `4 j( K
if [ $dbglimit -eq 1 ]; then ' F7 h8 Q; A4 t! a! d$ f echo hard $hardlimit soft $softlimit" r1 H' F, F$ [1 W9 s/ D2 t
fi P. Q) m& ~4 J, l9 V+ P
1 r5 u: D* W x" {2 K if [ x$softlimit = "xunlimited" ]; then4 C* Y$ Y1 ~4 @
softisunlimited=1 2 k8 ?% T0 R+ N9 i E fi( I9 q, ]0 C5 H6 N, f7 M9 x9 |3 O( v
+ Q) p2 e, [3 o& O if [ x$hardlimit = "xunlimited" ]; then2 t6 T" c' V( k/ P, P6 n
hardisunlimited=1 N# _1 D1 e& D; W fi 8 U0 }' j0 `* b( Y# X! } ( l* f7 h5 n4 l$ a # 64 bit machine should have bigger than 4G, p& {. i$ S! b, A0 R3 N8 n
if [ $is64 -eq 1 ]; then 1 a/ T; W; O% O" N$ z: ?- n+ s desiredlimit=5000000 % W2 x3 o: h0 M8 E. v: ^- ^: J fi 8 n- C& S8 R X4 I ; Z! S- b! \) x" z) R7 Q if [ $hardisunlimited -eq 0 ]; then ! d% \6 K4 c6 b& @& L1 f if [ $hardlimit -lt $desiredlimit ]; then 4 c* P, w& e# h echo "WARNING: datasize hard limit $hardlimit K is too small." * \! |6 K1 c o" M5 [6 P* u fi : D5 }& x- h) U4 O fi. L f7 x; C/ J! H% K7 B' t
7 R5 K7 \8 B$ b8 R6 j I if [ $hardlimit != $softlimit ]; then & `2 g$ r* B8 O, g* f) a ulimit -Sd $hardlimit ( `3 j6 D, A8 B5 |5 M- [# echo "WARNING: datasize limit is set to `ulimit -Sd`"( M3 g3 ~) F& u. P9 Q8 A
fi/ s. L. G; b* B( x
$ h3 Q$ J" P# k$ z9 D( a) K8 L! y if [ $dbglimit -eq 1 ]; then 7 M, Q" `6 d3 C9 \6 E echo datasize hard limit: `ulimit -Hd`7 j; @. a4 d$ Z
echo datasize soft limit: `ulimit -d` 6 ` u. w x/ ]6 `6 {0 u. I% V fi* i; S6 M% s# W9 n1 w5 I/ m* [
} $ L8 V* {9 y, H4 y % J8 `" S2 i4 S/ I5 B3 ^# p S9 F4 _4 ]
# set stacksize limit to desired limit5 E) X" _3 @6 |# M& l: J% ~
# - q7 f, b3 F% D; _set_stack_limit() |. A5 i. L! W# R! F4 \+ N{ + [) o* [4 O, E/ H$ D5 v' Q4 h& o dbglimit=0 5 x! S) \9 ~, I/ _ hardlimit=`ulimit -Hs` ! r+ ?% T! c* M6 @, Q softlimit=`ulimit -s`4 P0 p7 N* K0 Y4 e
desiredlimit=60000 % ~! f, p' [$ N; U7 ~; ]( R( n0 C hardisunlimited=09 ?* O, Y- m, [$ C
softisunlimited=0 & N( \8 I, ?0 T& u. T is64=0! d5 _) a$ m7 d/ r+ }$ b. E5 T
( h% I' y5 z/ F case "$EPIC_ARCH" in 7 m9 R; a7 a: m" R3 y+ }* ~ *SUN*64) 6 }3 B' ~& ^- r9 i. W is64=1% ?. d1 T5 ?8 _) Q* [* h7 o" p
;;+ t" ^! z6 g8 C: V9 N) C! I, f
amd64)" v+ r, U& g0 {9 t( f. g/ }
is64=17 I6 x( a9 Y% ^1 _
;;+ g& J$ Q7 K1 z# |; v2 j5 U( ^; r
x86sol64)4 E# r# r. B8 L8 y% L* m/ ^# D: v
is64=1 + ]( e8 z% l1 `9 ` ;;4 h Q& e$ b7 ~- I
aix64) 4 }" b+ @8 a) @8 L5 P$ L is64=1, D5 [: Q" a- ~! A* e2 o; F/ [- s
;;- J4 @. W6 P$ \, x5 |5 w
suse64) 6 O8 o9 j+ Q4 _, t( R% ^ is64=1 1 X# p0 v' S1 y% l$ Q( J ;; 6 r1 Z) d. z0 ~( S8 u. w8 S4 b c5 c esac( }9 _4 Z" c- z
- Z' }/ ], X. l! ^& o+ n
if [ "$EPIC_WRAPPER_DVLP" = "" ]; then ( R9 _6 y# N$ I/ Y+ A! V% d if [ $is64 -eq 1 ]; then3 H2 q# Y( ]" k
desiredlimit=200000+ C1 [; j: J2 Y( j
fi0 w7 n+ X0 r+ _ |8 N
else( G( i2 E0 F+ c5 W8 ?1 z1 C5 m
case "$EPIC_ARCH" in + y9 \& W! d8 k3 _# c *SUN*64)0 L8 ~6 N7 R. s6 Y% u
desiredlimit=200000 % v; U# @9 E/ O' k0 C ;;8 I( V, F0 D! X! n/ J
esac $ ?+ [3 J7 y9 i7 ufi 9 B+ ?/ S9 e) I# k! X % O" \- \* w) w5 m if [ $dbglimit -eq 1 ]; then ) b2 v ?8 G8 U. J* ~4 N echo hard $hardlimit soft $softlimit / |+ r$ Y- ^1 w- Y5 q; Z fi * \" h8 e, m3 I6 V0 e5 |; b6 i5 _, k8 r! u o' h; F
#stacksize can not be unlimited, pick smaller number 4 I1 l+ J( S. r! Y ! I; A. _& n; E, E; K1 i; X stacklimit=$desiredlimit" i$ R" N3 x/ e y
6 A" \/ M: t+ ~# w if [ x$hardlimit = "xunlimited" ]; then# M8 a1 P; I1 o) C3 {; W
hardisunlimited=1 + |" y4 M+ {0 D% \& ~" { fi, I5 @% z) ?: ]( U% z
, L( a: _5 _, s3 _
if [ x$softlimit = "xunlimited" ]; then. F; I; S1 @& [
softisunlimited=1" f$ a" E W3 M; e0 Q$ R @
fi7 b2 p, [* B% y. ^1 |
. c9 T. s& x4 b1 ]
if [ $hardisunlimited -eq 0 ]; then ! V) J3 d6 J2 }3 M' I/ X$ m8 p) [ if [ $hardlimit -lt $desiredlimit ]; then 8 ]2 y) ^+ [9 ~ echo "WARNING: stacksize hard limit $hardlimit K is too small."& A. U$ R1 i5 q' `" v
desiredlimit=$hardlimit9 V7 L' N: @' D: ?7 ^' v
stacklimit=$desiredlimit, C; I$ A8 j% ^* }% `6 o" M; ~ k4 n
fi # B5 | n4 p: |5 `- ] fi 9 v+ ]/ l5 C, a5 L1 q" j5 X; z 3 r2 v3 }9 f: q H E& @) z0 M3 ~ # desiredlimit is set to proper value (< hardlimit)1 K# P6 w& U: _' L; f
- w2 y9 l6 k8 v; _) }3 B+ g( `' Q if [ $softisunlimited -eq 0 ]; then1 v$ G' k* V' K1 F! y
if [ $softlimit -gt $desiredlimit ]; then3 X$ ~+ h( `9 `$ b3 d& `2 o
stacklimit=$softlimit # T/ B7 R: a$ Q* M& J8 l L fi$ ?3 Y0 b( J6 }3 N3 N
fi& _# d1 ?2 n! G6 D
0 y" J6 U& |8 K6 b if [ $softlimit != $stacklimit ]; then ! h% g4 d7 q, I. }( B ulimit -Ss $stacklimit# @# h) q7 J" e+ w8 v
# echo "WARNING: stacksize limit is set to `ulimit -Ss`"+ m3 F2 u h j# h
fi " ], I' c' M7 t9 j6 ^7 N8 x 1 F z I4 L/ l! V if [ $dbglimit -eq 1 ]; then9 P& i7 e/ r Y$ y; {. y
echo stacksize hard limit: `ulimit -Hs` ; K1 }/ ?, B4 }9 x echo stackize soft limit: `ulimit -s`0 Z. b2 ]3 P; w9 S, R' B
fi+ _0 X6 E* U' e. P1 G, p9 Q
} , U5 M" b4 v* C4 Y6 m" I6 Z6 X9 B" Z. {: n# D. E2 _7 a3 \4 I/ E
open_epicscriptmessages() 0 X: U/ l% o3 s{ ! X# K2 C& b' f/ h1 U1 X#generate temp ".epicscriptmessages" file based on pid! |& o& {* `5 G+ K0 C; I L7 n
EPIC_SCRIPT_MESSAGES_FILE="$EPIC_SCRIPT_MESSAGES_FILE"$$ 2 t3 m& Q p% K pif [ -f $EPIC_SCRIPT_MESSAGES_FILE ] 6 _" o! }- i! Z0 W! Z& fthen 3 P( V! d8 i" n, L until [ ! -f $EPIC_SCRIPT_MESSAGES_FILE ]. t6 V) k; t/ q
do" t G. l7 \' n- h; m
EPIC_SCRIPT_MESSAGES_FILE="$EPIC_SCRIPT_MESSAGES_FILE"$$# h! z5 k) N3 g, y" }
done5 L- Y6 _* B5 d$ O y( ]' ~. u
fi % h& t9 R+ W( }# |% w! Y& v1 i , S; G T5 e' s5 v- ~' B* ~export EPIC_SCRIPT_MESSAGES_FILE& o% v' R1 Y5 m/ n
} 7 G% ^6 b* g7 c& Q : Q/ {+ ^7 [" v2 E/ [ 7 U5 g' v- d9 w* Icmdname=`basename $0`6 O! [( D9 `7 H' S. N* Q
postgres="n" ' z" K. `, C6 s" Z, t1 Hostore="n" 1 R* s% M2 ^8 L' bgui="n" ( u8 H7 v5 G2 i1 L0 kdatabaseOn="n", b6 O1 O$ a9 Q6 ?
f_next=0 3 h# c- f4 V2 b" w, }9 Gf_option=""9 P3 I! A! n% [9 B
o_next=04 \# d; g8 C2 U4 H
o_option="" ~ o% k8 g( {. JworkDir="" / f) i$ N; |0 C3 n8 k: |. mworkDir_next=0 " q, F: U# _1 O# E# l4 ?4 qerrFile="powrmill.err"' I: b* n3 @) q& ]
win32flags="" * Z) z d2 n+ z( k5 pln_default="ln -s" T" R' M% N+ e% [
1 f: O& B; ~& [3 }) V/ Ehar_hilo_file="" 3 y" H' t7 r5 w7 }- y6 ]have_har_flag=0 ' U7 [8 B( N) g4 d' G5 i2 d& `have_har_setup_flag=0 * j4 |2 H9 t( k& zis_special_har_run=0 * P5 z% U3 x; M: vhar_ofile_prefix="" M: z: l0 j- S( _* z& p6 X$ B/ D1 l6 L, L1 W/ t
have_va_flag=0; U8 v! c$ f( R
have_vaf_flag=0 ' z V. p1 U1 L4 T4 OVAF_FILE="", ~) N. } E a* f
VA_FILE="" ! ]" W; w0 d T3 tARGV="" , i6 Q( h7 h" f # q' x) Z& k/ u. s1 v% @ORIGINAL_COMMAND_LINE= 5 l! f2 O' b/ p. lLOOP_CTRL_FILE=".ns_ba_env"/ X \! F" \7 `, S% _. o
ALTER_HK_FILE=".alter_hkf"$ t" N; N+ G+ q- b
ALTER_COUNT_FILE=".alter_count" ) x& }8 d7 a+ B l& fMONTE_IMG_FILE=".monte_img_f"1 k% e) C" O K
MONTE_COUNT_FILE=".monte_count"/ [6 w) n" E& X7 G
MONTE_CFG_FILE=".monte_cfg"7 v8 A; n G( _0 t2 J* I
EPIC_SCRIPT_MESSAGES_FILE=".epicscriptmessages" / n$ b9 n6 \: b- j7 m3 E, C: d3 j" O- z" u5 g
open_epicscriptmessages $@! B, J$ G: h. q4 R) \5 \4 B: p
1 Z+ }; ~% b) C- s, U* v
scan_for_hva_args $@( V1 d, i8 G' o2 S( p
: K, z0 \: f; ], m3 ~( J
scan_for_har_args() - }& d" R1 K. f{, A9 b: H4 J1 b& ^/ z+ T4 `
while [ $# -gt 0 ]; do ' |; l: M) U/ K/ @, q case "$1" in 0 ]; K: r8 g+ S# Z- v$ p -har) % n8 e) Z* W( A$ A9 l) R) j* X have_har_flag=14 G* C5 m' P+ u- i$ S, X- Y5 A1 _
[ $# -gt 0 ] && shift# C3 k9 D- U# Z7 ]5 F
if [ $# -gt 0 -a `expr "$1" : '-.*'` -eq 0 ]; then 4 ]1 T+ h0 B( D4 [8 p) k har_hilo_file=$1 : l/ ^/ N, ]) j# @8 w1 p shift, ?( D, o( r, C7 O/ i. u" C, t- V/ j
fi7 X6 p' X% N' @
if [ $# -gt 0 -a `expr "$1" : '-.*'` -eq 0 ]; then" _3 E1 S. f4 e: q5 ]( J+ D
echo "Too many arguments to -har flag. Only one hilo file allowed."$ e% p6 Q7 Y5 @2 w g
exit 10 U- s/ R& Z& L c2 I) A0 _ p4 I D
fi) l4 [! u# r- f, M5 _
break- v" g, L" t' ?( c7 d
;;2 I$ ^0 s, |1 X- c- D8 V) d
-har_setup) & i# M1 ^& f& r) I9 H7 j5 `( s, u) y4 [ have_har_setup_flag=1 0 R1 h5 c) L" l8 m* l9 K/ ? break # e2 k( G! U9 w ;; 8 h# p& Q/ @- V7 H *) + c# g' [& W+ U* X7 \8 b" k1 V1 X shift . o, ^6 d$ `( [" [4 l: J ;;- q: @/ L: D1 [, w! [, s
esac& X1 z. J6 C! h0 W% a* [: A
done 6 Z7 K2 H6 |8 O0 Q( l L}" Z' J2 f$ b& r( ?
& C! R$ q, n8 X" i4 ?0 P Wscan_for_har_args $@ # X1 p5 ]) D1 ] ^5 e, I % I, N4 p. _7 N1 Afor argv in $@ 9 P5 `* B! I& P$ J+ jdo$ b5 c2 i/ ]# C5 |" v! W
ORIGINAL_COMMAND_LINE="$ORIGINAL_COMMAND_LINE $argv" 0 ~( @- m: P# c% x if [ $argv = "-gadb" ]; then 2 ?$ ?1 B/ o' S) Q! H$ G' R/ P8 n databaseOn="y" # K# R* S& N0 l) H, ^* ]0 } workDir_next=1 $ B- y! \. o/ i! y. x5 o& y2 U* |* {1 h elif [ $workDir_next -eq 1 ]; then ) x- j$ N# W& U s8 s9 z" j workDir=$argv0 o; K! W5 J( D9 G* r. v
workDir_next=0/ E' M% G3 E7 d3 F7 a+ W$ m' B) t
elif [ $argv = "-ga" ]; then . {$ M% d9 m u3 k gui="y"0 W1 d7 g5 `* E5 \
elif [ $argv = "-f" ]; then y( ^' W( ~ {, q
f_next=1 4 v$ h$ W2 u3 r+ b9 r elif [ $f_next -eq 1 ]; then ' o. q5 f. L& Y" @. d8 a# N' o$ t f_option=$argv 1 }# b& O0 S6 t2 [8 A" X f_next=0 3 S' k9 h7 d: [& v6 O. V, K" t$ S elif [ $argv = "-o" ]; then 3 v1 W) {, T5 i7 u3 y1 W o_next=1 2 | }5 m6 I* @) L$ ], B elif [ $o_next -eq 1 ]; then0 r: @3 N0 Z' a9 w0 q+ n" q$ `
o_option=$argv , B& y6 Z0 n* x* Y o_next=0+ N; l) [- @- b) Y
fi 8 ]. D* H" A( n; `0 V! Cdone' p G. F4 g' w& ^( U8 D/ ?
echo "Command line options: $ORIGINAL_COMMAND_LINE" > $EPIC_SCRIPT_MESSAGES_FILE 6 q _/ B/ ^) p8 t$ O5 W6 L
9 r: ~: L0 I7 g7 c. [if [ $databaseOn = "y" -o $gui = "y" ]; then1 F# }+ K& G3 z" o& F3 w
if [ $cmdname = "pathmill" ]; then 6 s2 F* m& L" o9 ^. K( L if [ "$EPIC_ARCH" = "SUN4_SUNOS_5" -o "$EPIC_ARCH" = "SUN4_SUNOS_5_64" ]; then F$ r) k; n% f( s$ o ostore="y" ; L6 y2 Z4 |3 \! M postgres="n" 4 S2 p+ M0 m3 j, N7 H# y" A1 V else8 f {/ @% H2 O K4 G; J
echo "athmill GUI is supported on Solaris platforms only" 1>&2 " y x9 Z1 T; s5 V5 d4 D
exit , D+ |% D2 k8 C fi& z8 S! V+ i6 p& b4 U
else 4 E9 ?& A3 m: o6 u$ N postgres="y"' L# h0 q/ [) X# W" {# y
ostore="n"4 {; k" p1 I. M- a- H
fi. v) {$ Q7 y/ T* `; l n+ e! Z: `' {
fi5 u/ P3 H( T6 q9 H) n' w: K' g
" |& _% ?) w# F4 o8 M0 z+ g/ Uif [ $gui = "y" ]; then" k! i2 q4 u. \9 s2 x, \
if [ $cmdname = "powrmill" ]; then) g9 S3 ~! Q6 |2 a6 |9 J+ P
pwga $@ ) [- c3 |( J9 q4 [7 K exit / k0 h1 e! s. P, e, Y& ^ fi 4 o4 v- c" z' ]2 H2 C, q+ [ % c$ p/ s& D, G; z5 D) l3 D& } if [ $cmdname = "pathmill" ]; then ! G& L. X, _. v9 O0 F- r if [ $ostore = "y" ]; then ! |8 m( {6 a9 g2 L' v ./pathfinder $@% Q4 ~' P; d0 E+ G! F
exit7 ~/ T! v6 | n' Q# K' j
elif [ $postgres = "y" ]; then 7 |0 u$ z3 q: D- t: a/ n3 X3 ` pmga $@( p% \; [7 n% {
exit1 m v; _ u+ s2 ]1 c6 n
fi8 M% E' k" T5 D! W, O% Z1 c) l+ ~
fi % C4 o1 [* }/ {7 J: S1 M0 n6 mfi / P4 t4 F5 u# I1 ` ' u5 S9 N. _( u9 u# \& A7 eif [ $databaseOn = "y" ]; then : Q6 H5 Y' B" o- g. Z if [ $ostore = "y" ]; then ( k3 Y* t2 I0 n) h- f2 @$ S* Z! l if [ -z "$workDir" ]; then " k9 @$ M3 X+ y% E$ q echo "Error: Missing argument for -gadb option" / Y6 n3 n$ T7 f7 e% c, y Exit 1 6 a1 C+ v% X0 u( a4 t fi 6 \# ]: j# P' `! D fi/ N) u+ r& @$ G
if [ $postgres = "y" ]; then 9 a% r0 R! m; p, @' h* u. z if [ -z "$workDir" ]; then 0 ]: b3 J8 ~- q# M& ] echo "Error: Missing argument for -gadb option"+ N. E9 r( i3 _/ }# v7 M
Exit 10 {- G- c$ S, K; O* G0 f
fi # p& X7 J2 y4 j" K. ] fi * l1 Y0 b: ~$ m5 j4 F3 k: D4 r' pfi # N* c$ L* @/ x/ }5 M5 i( p* O" ` X' o/ E$ {
if [ $postgres = "y" ]; then4 L: ? n4 ?7 W7 \+ d8 f7 a
+ |. M( p8 S# _1 _7 _
if [ -r $EPIC_BIN/scripts/gui-init ]; then( W/ D: A. z9 r# w
. $EPIC_BIN/scripts/gui-init% M9 E/ u1 J; [. b( w1 l% x
elif [ -r $SES_ROOT/bin/scripts/gui-init ]; then- {# m3 V$ O; A! H
. $SES_ROOT/bin/scripts/gui-init( X2 Z* n& l& f9 a9 @
else - m8 R) l e' |* j- W1 } f0 Q echo " ** Installation in \"$EPIC_HOME\" has been corrupted!" 1>&2 x1 L8 L2 z: W9 c. p+ T echo " file bin/scripts/gui-init is missing." 1>&22 h* H! g7 @& N. `4 ~1 j
fi: H+ H. ?6 Y; t9 ?8 v
" W2 y" v( B( I, }; r- f workfile -tool $cmdname $@ 9 z; S! h2 z7 E; Ufi7 u1 x& ~! E: u% ^3 J, t: C# I
x1 ]0 ]: a4 \- N+ w4 b- t6 k
if [ ! -z "$o_option" ]; then 8 c0 o; L* E7 W5 q, L9 u errFile=${o_option}.err3 A9 Q% o6 C6 G) P' H9 M1 h
elif [ ! -z "$f_option" ]; then 0 E# }" s: b6 \" |: H/ D if [ -d $f_option ]; then * o) j' n& ]& @2 Q) k: N errFile=${f_option}/powrmill.err % S: v& x3 I; Q else errFile=${f_option}.err6 }; I5 E- k* f* `6 `4 w' o8 [
fi ' a4 |8 `3 d* [1 C# @fi ( _/ J, L' w3 q7 y1 @' f2 e" ?7 M% ], r0 n7 m
' S7 c) m! F5 } }7 Kif [ "$EPIC_ARCH" = "RS6000_AIX_4" -o "$EPIC_ARCH" = "RS6000_AIX_5" -o "$EPIC_ARCH" = "aix64" ]; then ( f& c- {( A, [2 j. o/ z$ Z rundir=.epicrun # R. B; q5 N6 pelse8 ? [: \# G: z, X( T6 p2 x/ W/ J
rundir=.epicrun$$( ]+ r7 ?8 B' T" s0 \5 S+ I
fi 0 T* k, C2 E" k# k3 i! K" Q( l G# |( `2 T' \8 M" ~- J+ c
libpath="$rundir${EPIC_DLIM}$EPIC_DIR"6 q( D* I4 e d
- A- M# n/ U4 `7 I% [" zcwd=`pwd -P`' ~. T1 E9 Z8 K1 W8 A
if [ $cmdname = "acehdl_w" ]; then ! Y8 S( a9 n/ U: ~ cmd=`basename $0 .sun` ( _! t. M, x; S' G- O cmd=`basename $cmd _w`6 b9 s) g1 q( _- f1 S. f
else 4 T, a% q4 C/ r8 l9 M8 x cmd=`basename $0 .sun` + g- u8 Z7 {( w1 efi4 m+ |4 B4 v, m$ J
1 y7 M* a; E# I3 @6 H; O
command="$EPIC_EXEC/$cmd$EPIC_EXEX"& \0 _ h B" F. P8 K' `: h
[ ! -x "$command" ] && echo "$cmd: not installed!" 1>&2 && exit 1 ( `/ n5 I9 K/ _0 _0 B E! U; i# e7 x) g3 x
# buildmod extracts -u/-fm options and calls genepiclib - @# w5 |# b( q Y# L) K. N6 t) {: B# It also set the remaining options to variable CMDLINE( d7 f, i z- r4 q! P! t& r
# look up in .epicrc for -fm & -FM parameters8 c( }& ^1 G+ o$ k