LogIn E-mail
설계이야기
[sh].wrapper example
# 93 JMJS    11.6.15 14:15

#!/bin/sh
#==================================================#
# fileName : .wrapper
#==================================================#
# 1).get Abc <installed_dir>
#==================================================#

PATH="/bin:$PATH"

  __dir=`dirname $0`
  if [ "$__dir" = "." ]; then
    __dir=`cd $__dir/.. ; /bin/pwd`
  else
    __dir=`dirname $__dir`
  fi

  SYS_INST_DIR=$__dir;
  SPS_FONT_PATH="$SYS_INST_DIR/font";
  # XFont - SPS0117984
  SPS_XFONT_PATH="$SYS_INST_DIR/XFont";

#==================================================#
# 2).parsing user's command and special setting
#==================================================#
   __cmdname=`basename $0`;
   
  SYS_PROG_NAME=$__cmdname;
 
  # Auto Source user envirnoment from .bbc
  __auto_source=${ABC_BBC_AUTO_SOURCE:=None}
  if [ "$__auto_source" = "1" ]; then
    if [ -f $HOME/.bbc ]; then
       . $HOME/.bbc;
    fi
    if [ -f .bbc ]; then
       . .bbc;
    fi
  fi

  # For valgrind
  invoke_valgrind=0

  case " $* " in
     *\ -valgrind\ *)
        invoke_valgrind=1
     ;;
  esac

   ## SPS0149212
   LANG="C";
   export LANG;
   LC_ALL="C";
   export LC_ALL;

   ### SPS0115997
   #__lang=${LANG};
   #if [ "$__lang" = "ja_JP.UTF-8" ]; then
   #     LANG="ja";
   #     export LANG;
   #fi

   #__lc_all=${LC_ALL};
   #if [ "$__lc_all" = "ja_JP.UTF-8" ]; then
   #     LC_ALL="ja";
   #     export LC_ALL;
   #fi  

#==================================================#
# 3).get platform
#==================================================#
   ##
   ## SPSqa53294 Abc run 32-bit executable binary
   ## If no 64-bits install path, will run 32-bits path as default.
   __exec_arch=${ABC_EXECUTABLE_ARCH};
   __machine=`uname -s -r`;
   case "$__machine" in
    "SunOS 5.10"*)
        __machine_set=`/bin/isainfo -kv|awk '{print $1}'`
        __machine_type=`uname -p`
        if [ "$__machine_type" = "i386" ]; then  
                __NAME="SOLAMD64";
        elif [ "$__machine_type" = "x86_64" ]; then
                __NAME="SOLAMD64";
        elif [ "$__exec_arch" = "32" ]; then
                __NAME="SOLARIS2";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="SOL7";
        elif [ "$__machine_set" = "64-bit" ] \
            && [ -r $SYS_INST_DIR/platform/SOL7/bin ]; then
                __NAME="SOL7";
        else
                __NAME="SOLARIS2";
        fi
            ;;
    "SunOS 5.9"*)
        __machine_set=`/bin/isainfo -kv|awk '{print $1}'`
        if [ "$__exec_arch" = "32" ]; then
                __NAME="SOLARIS2";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="SOL7";
        elif [ "$__machine_set" = "64-bit" ] \
            && [ -r $SYS_INST_DIR/platform/SOL7/bin ]; then
                __NAME="SOL7";
        else
                __NAME="SOLARIS2";
        fi
            ;;
    "SunOS 5.8"*)
        __machine_set=`/bin/isainfo -kv|awk '{print $1}'`
        if [ "$__exec_arch" = "32" ]; then
                __NAME="SOLARIS2";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="SOL7";
        elif [ "$__machine_set" = "64-bit" ] \
            && [ -r $SYS_INST_DIR/platform/SOL7/bin ]; then
                     __NAME="SOL7";
        else
                __NAME="SOLARIS2";
        fi
            ;;
    "SunOS 5.7"*)
        __machine_set=`/bin/isainfo -kv|awk '{print $1}'`
        if [ "$__exec_arch" = "32" ]; then
                __NAME="SOLARIS2";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="SOL7";
        elif [ "$__machine_set" = "64-bit" ] \
            && [ -r $SYS_INST_DIR/platform/SOL7/bin ]; then
                symbol=`/usr/ccs/bin/nm /usr/lib/sparcv9/libCrun.so.1 | grep _ex_register64`;
                sym=`echo $symbol|awk '{print $5}'`
                if [ "$sym" = "|GLOB" ]; then
                     __NAME="SOL7";
                else
                     echo "*ERROR* -- OS compatibility problem"
                     echo "     The version of Solaris 7 you are running contains a problem in ..."
                     exit 1
                fi
        else
               __NAME="SOLARIS2";
        fi
            ;;
    "SunOS 5"*)
        if [ "$__exec_arch" = "32" ]; then
                __NAME="SOLARIS2";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="SOL7";
        else
                     __NAME="SOLARIS2";
        fi
            ;;
    "Linux"*)
         __machine_set=`uname -m`  
         if [ "$__exec_arch" = "32" ]; then
                __NAME="LINUX";
         elif [ "$__exec_arch" = "64" -a "$__machine_set" = ia64 ] \
            && [ -r $SYS_INST_DIR/platform/LINUXIA64/bin ]; then
               __NAME="LINUXIA64";
         elif [ "$__exec_arch" = "64" -a "$__machine_set" = x86_64 ] \
            && [ -r $SYS_INST_DIR/platform/LINUX64/bin ]; then
               __NAME="LINUXAMD64";
         elif [ "$__machine_set" = ia64 ] \
            && [ -r $SYS_INST_DIR/platform/LINUXIA64/bin ]; then
               __NAME="LINUXIA64";
         elif [ "$__machine_set" = x86_64 ] \
            && [ -r $SYS_INST_DIR/platform/LINUX64/bin ]; then
               __NAME="LINUXAMD64";
         else
               __NAME="LINUX";
         fi
            ;;
    "FreeBSD"*)
     __NAME="LINUX";
            ;;
    "HP-UX B.10"*)
        if [ "$__exec_arch" = "32" ]; then
                __NAME="HPPA";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="HP11";
        else
                     __NAME="HPPA";
        fi
            ;;
    "HP-UX B.11"*)
        if [ "$__exec_arch" = "32" ]; then
                __NAME="HPPA";
        elif [ "$__exec_arch" = "64" ]; then
                __NAME="HP11";
        elif [ -r $SYS_INST_DIR/platform/HP11/bin ] \
             && [ -x /bin/getconf ] \
             && [ "`/bin/getconf KERNEL_BITS 2>&1`" = "64" ]; then
                __NAME="HP11";
        else
                     __NAME="HPPA";
        fi
            ;;
     "AIX 1"*)
        __system_version=`uname -v`
        if [ "$__system_version" = "5" ]; then
                if [ "$__exec_arch" = "32" ]; then
                        __NAME="IBM51";
                elif [ "$__exec_arch" = "64" ]; then
                        __NAME="IBM51";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                elif [ -r $SYS_INST_DIR/platform/IBM51/bin ] \
                     && [ -x /usr/sbin/prtconf ] \
                     && [ "`/usr/sbin/prtconf -c`" = "CPU Type: 64-bit" ]; then
                        __NAME="IBM51";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                else
                       # SPSqa78465 - Check if IBM43 is supported
                        __NAME="IBM51";
                fi
        else
                echo "IBM43 is not supported"
                exit 1
        fi
            ;;
     "AIX 2"*)
        __system_version=`uname -v`
        if [ "$__system_version" = "5" ]; then
                if [ "$__exec_arch" = "32" ]; then
                        __NAME="IBM51";
                elif [ "$__exec_arch" = "64" ]; then
                        __NAME="IBM51";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                elif [ -r $SYS_INST_DIR/platform/IBM51/bin ] \
                     && [ -x /usr/sbin/prtconf ] \
                     && [ "`/usr/sbin/prtconf -c`" = "CPU Type: 64-bit" ]; then
                        __NAME="IBM51";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                else
                       # SPSqa78465 - Check if IBM43 is supported
                        __NAME="IBM51";
                fi
        else
                echo "IBM43 is not supported"
                exit 1
        fi
            ;;
     "AIX 3"*)
        __system_version=`uname -v`
        if [ "$__system_version" = "5" ]; then
                if [ "$__exec_arch" = "32" ]; then
                        __NAME="IBM51";
                elif [ "$__exec_arch" = "64" ]; then
                        __NAME="IBM64";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                elif [ -r $SYS_INST_DIR/platform/IBM64/bin ] \
                     && [ -x /usr/sbin/prtconf ] \
                     && [ "`/usr/sbin/prtconf -c`" = "CPU Type: 64-bit" ]; then
                        __NAME="IBM64";
      #                  LDR_CNTRL="MAXDATA=0x200000000";
      #                  export LDR_CNTRL;
                else
                       # SPSqa78465 - Check if IBM43 is supported
                        __NAME="IBM51";
                fi
        else
                echo "IBM43 is not supported"
                exit 1
        fi
            ;;
    *)
     __NAME="UNKNOW";
   ;;
   esac

#  echo "platform=$__NAME";
#==================================================#
# 4).make new command  
#==================================================#
   case "$__cmdname" in
    "nCompare")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -nCompare";
    ;;
    "ncmp")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -nCompare";
    ;;
    "nCompareg")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -nCompare -gui";
    ;;
    "Siloti")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc";
    ;;
    "siloti")    
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc";
    ;;
    "Verdi")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc";
    ;;
    "verdi")    
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc";              
    ;;
    "VerdiJP")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -encode eucjp";
    ;;
    "Verdi_dl")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc_dl -encode eucjp";
    ;;
    "nWave")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -nWave";
    ;;
    "turboWave")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -nWave";
    ;;
    "Debussy")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -deb";
    ;;
    "debussy")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/Abc -deb";
    ;;
    "fast")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/vfast";
    ;;
    "vcd2fsdb")
    newname="$SYS_INST_DIR/platform/$__NAME/bin/vfast";
    ;;
    "novas_plat")
    echo $__NAME
    exit 0
    ;;
    *)
    newname="$SYS_INST_DIR/platform/$__NAME/bin/$__cmdname";
    ;;
   esac
   export SYS_INST_DIR; export SYS_PROG_NAME;
   export SPS_FONT_PATH;
   export SPS_XFONT_PATH;
   export BBC_HOME;
   export BBC_PATH;
#==================================================#
# 5).setup on-line-help path:
#==================================================#
   ABCHLPPATH="$SYS_INST_DIR/doc";
   export ABCHLPPATH;
   XNLSPATH="$SYS_INST_DIR/etc/access/nls";
   export XNLSPATH;
#==================================================#
# 6).exec Abc product
#==================================================#
   if [ ${invoke_valgrind} = 1 ] ; then
      VALGRIND_LIB="$SYS_INST_DIR/platform/$__NAME/bin/valgrind_lib";
      export VALGRIND_LIB;
      # SPSqa81719
      PURIFY_POOL_CCC=1;
      PURIFY_POOL_CCC_SILENCE=1;
      export PURIFY_POOL_CCC;
      export PURIFY_POOL_CCC_SILENCE;
      for tmp_var in $@;
      do
         if [ "$tmp_var" != "-valgrind" ]; then
            argv="$argv $tmp_var"
         fi
      done
      exec $SYS_INST_DIR/platform/$__NAME/bin/valgrind \
           --suppressions=$SYS_INST_DIR/platform/$__NAME/bin/valgrind_lib/sps.supp \
           --workaround-gcc296-bugs=yes --leak-check=no $newname $argv
   else
      exec $newname "$@"
   fi
#==================================================#
# 7).exit ABC
#==================================================#
   exit 0

게시물: 103 건, 현재: 1 / 2 쪽
번호 제       목 작성자 등록일 방문
106  arithmetic in a makefile, shell pwd export JMJS 17.9.8 601
105  Split and merge large files JMJS 16.3.21 576
104  [Makefile]random JMJS 14.12.5 875
100  윈도우7 용량부족 winsxs 폴더 최적화 JMJS 14.10.14 1778
99  [sh,csh]while loop JMJS 13.2.6 1957
98  hostname, hostid, /sbin/ifconfig eth0 JMJS 13.1.4 3728
97  [linux]fedora 16 gome-shell extension JMJS 12.3.12 1607
96  [linux]fedora 16 grub boot order change JMJS 12.3.10 1899
95  [linux]fedora Input Method,ibus,hangul JMJS 12.3.8 1591
94  [linux]audio,mp3,mplayer,gstreamer,vlc JMJS 12.3.7 2022
93  [sh].wrapper example JMJS 11.6.15 1737
92  [make]for loop JMJS 11.9.8 1583
91  [make]conditional expression JMJS 11.5.12 1502
90  [make]shell 실행 JMJS 11.3.9 1592
89  [wish]jplot JMJS 10.5.12 1265
88  yum JMJS 09.8.12 1321
87  [CYGWIN]X setup하기 JMJS 10.8.6 2459
86  [Make]Makefile Brief JMJS 10.8.6 1303
85  ldd /user/bin/xterm JMJS 09.4.24 1024
84  [HTML]어도비 SVG 뷰어와 HTML JMJS 09.4.24 1543
83  [DOS]DOS command JMJS 09.7.20 1246
82  [DOS]DOS command brief JMJS 07.2.21 1684
81  웹페이지 소스보기 JMJS 09.4.24 1227
80  [html]자동으로 글자색 바뀜 JMJS 07.1.10 1200
79  [html]복사, 드래그 금지 JMJS 07.1.10 1675
78  [csh]cshell에서 function 못쓴다네요 JMJS 11.3.17 1172
77  리눅스에서 i386,i586,i686, x86의 차이점 JMJS 06.10.16 1509
76  [CSH]$status JMJS 06.8.21 994
75  [sh]substr, read, until,IFS,for,dirname JMJS 14.12.19 1192
74  [sh]rgbview.sh . hello.sh JMJS 10.11.30 1106
73  automount - /etc/fstab JMJS 06.2.23 1136
72  lmutil.csh JMJS 05.11.8 1449
71  화일이름에 못오는 문자 JMJS 05.9.8 1201
70  /usr/ucb /usr/ccs JMJS 05.9.5 1115
69  Solaris Version JMJS 05.9.5 1340
68  /usr/ccs/bin/nm -x debpli.so JMJS 05.8.31 1594
67  tar, gzip, zcat, uncompress, mn(.a 파일보기) JMJS 13.1.6 1448
66  find . -name -print -exec perl JMJS 09.4.17 1414
65  pkgadd -d packagefile JMJS 05.5.9 1171
64  prstat JMJS 08.10.2 1398
63  vi 명령어, vim명령어 gvim JMJS 11.2.11 4075
62  multiple directory 에서 grep ? JMJS 04.5.31 1568
61  [csh].cshrc_axis JMJS 04.5.14 1465
60  [csh].cshrc_modelsim JMJS 04.5.14 1541
59  [csh].cshrc_cadence JMJS 04.5.14 1601
58  [csh].cshrc_novas JMJS 04.5.14 1479
57  [csh].cshrc_verisity JMJS 04.5.14 1831
56  lmgrd JMJS 09.6.22 2198
55  [csh]which case JMJS 04.5.14 1469
54  [bash]example 2 JMJS 04.5.12 1566
53  [bash]example 1 JMJS 04.5.12 1541
52  fedora 12에서 touchpad disable JMJS 11.1.17 1637
51  [Perl]한국어 인코딩 JMJS 04.1.16 2386
50  [Perl]HTML에서 기호 표시를 위한 문자치환 JMJS 04.1.5 9235
49  [csh]make awk JMJS 03.6.6 1800
48  [csh]wordsplit JMJS 03.6.6 1485
47  [csh]vi2 JMJS 03.6.6 1305
46  [csh]cat.csh JMJS 03.6.6 1394
45  [csh]chgword.csh JMJS 03.6.6 1286
44  [bash]password JMJS 11.3.9 1254
43  [Tcl]bi2int JMJS 02.11.29 1250
42  [PC]ask 검색창이 자꾸 뜬다면 JMJS 09.4.24 1670
41  [csh]backup_copyc.csh; foreach; continue JMJS 09.4.24 1421
40  uname, uname -s -r, uname -p, uname -a JMJS 09.4.24 1603
39  [tk]새 창 열고 닫기 예제 JMJS 09.4.24 11207
38  [sh]if [[ "$abc" == "abc" && "$bbc" == "bbc" ]]; ... JMJS 11.3.17 1307
37  [expect]expect_scp.exp JMJS 11.3.9 1407
36  ssh -x -l soc lion scp -r ... JMJS 11.3.9 1204
35  TclTk 배열 JMJS 09.7.20 1286
34  ./configure make make install JMJS 11.1.13 1206
33  [csh]diff JMJS 10.7.14 1286
32  tr abc 123 < file1 > file2 JMJS 11.4.11 1221
31  Installing RPMforge JMJS 10.2.8 1286
30  [태그]글자색이 사라짐 JMJS 09.4.24 1376
29  [태그]자동으로 글자색이 변함 JMJS 09.4.24 1361
28  글자태그 모음 JMJS 09.4.24 1469
27  색상명과 RGB값 표 JMJS 09.4.24 1508
26  RGB 색상표 JMJS 09.4.24 1662
25  한글특수문자표 JMJS 09.4.24 1326
24  bc -l JMJS 01.5.22 1219
23  file *,  od -xc *, cat * JMJS 01.3.28 1538
22  Linux Memo JMJS 09.7.20 1416
21  xterm -fn 10x20 & JMJS 12.3.7 1270
20  W/S Tip JMJS 09.4.29 1330
19  [awk]example JMJS 10.10.30 1538
18  [csh].cshrc JMJS 11.6.21 1846
17  stop & background job JMJS 00.11.14 1201
16  W/S shout down JMJS 00.11.14 1221
15  [sed]example JMJS 16.9.5 1562
14  [DOS]Memo JMJS 00.10.29 1318
13  [csh]리스트를 만들어 foreach로 처리할때 JMJS 00.10.7 4267
12  [Tcl]Tool Command Language JMJS 09.7.24 2410
11  [csh]vi.csh JMJS 00.6.27 1335
10  [csh]Check Process JMJS 00.6.27 1231
9  [csh]Get Character and get char without 'return' JMJS 10.2.8 1370
8  [csh]foreach SED JMJS 00.6.27 1585
7  [Window]오류보고 안 뜨게하는 방법 JMJS 09.9.23 1277
6  [csh]echo.csh JMJS 00.6.27 1436
5  set DDD = `date '+%y%m'` JMJS 00.6.27 1202
4  [SH]Advanced Bash-Scripting Guide JMJS 09.4.24 1162
[1] [2]