Hex Artifact Content

Artifact 55d33286bc2a3e76cad677e89ac24ae5c950efa0:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 4d 41  #! /bin/bash..MA
0010: 47 49 43 46 49 4c 45 46 49 4c 45 3d 22 24 30 2e  GICFILEFILE="$0.
0020: 6d 61 67 69 63 2e 66 69 6c 65 22 0a 4d 41 47 49  magic.file".MAGI
0030: 43 4f 53 46 49 4c 45 3d 22 24 30 2e 6d 61 67 69  COSFILE="$0.magi
0040: 63 2e 6f 73 22 0a 4d 41 47 49 43 50 4c 41 54 46  c.os".MAGICPLATF
0050: 49 4c 45 3d 22 24 30 2e 6d 61 67 69 63 2e 70 6c  ILE="$0.magic.pl
0060: 61 74 66 6f 72 6d 22 0a 0a 4f 53 4e 41 4d 45 3d  atform"..OSNAME=
0070: 22 60 75 6e 61 6d 65 20 2d 73 60 22 0a 43 50 55  "`uname -s`".CPU
0080: 50 4c 41 54 3d 22 60 75 6e 61 6d 65 20 2d 6d 60  PLAT="`uname -m`
0090: 22 0a 0a 69 66 20 5b 20 2d 66 20 22 24 7b 4d 41  "..if [ -f "${MA
00a0: 47 49 43 46 49 4c 45 46 49 4c 45 7d 22 20 2d 61  GICFILEFILE}" -a
00b0: 20 2d 66 20 22 24 7b 4d 41 47 49 43 4f 53 46 49   -f "${MAGICOSFI
00c0: 4c 45 7d 22 20 2d 61 20 2d 66 20 22 24 7b 4d 41  LE}" -a -f "${MA
00d0: 47 49 43 50 4c 41 54 46 49 4c 45 7d 22 20 5d 3b  GICPLATFILE}" ];
00e0: 20 74 68 65 6e 0a 09 4d 41 47 49 43 50 4c 41 54   then..MAGICPLAT
00f0: 3d 22 24 28 63 61 74 20 22 24 7b 4d 41 47 49 43  ="$(cat "${MAGIC
0100: 50 4c 41 54 46 49 4c 45 7d 22 29 22 0a 09 4d 41  PLATFILE}")"..MA
0110: 47 49 43 4f 53 3d 22 24 28 63 61 74 20 22 24 7b  GICOS="$(cat "${
0120: 4d 41 47 49 43 4f 53 46 49 4c 45 7d 22 29 22 0a  MAGICOSFILE}")".
0130: 09 4d 41 47 49 43 46 49 4c 45 3d 22 24 28 63 61  .MAGICFILE="$(ca
0140: 74 20 22 24 7b 4d 41 47 49 43 46 49 4c 45 46 49  t "${MAGICFILEFI
0150: 4c 45 7d 22 20 7c 20 64 64 20 63 6f 6e 76 3d 6c  LE}" | dd conv=l
0160: 63 61 73 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  case 2>/dev/null
0170: 29 22 0a 0a 09 63 61 73 65 20 22 24 7b 4d 41 47  )"...case "${MAG
0180: 49 43 50 4c 41 54 7d 22 20 69 6e 0a 09 09 75 6e  ICPLAT}" in...un
0190: 69 78 29 0a 09 09 09 63 61 73 65 20 22 24 7b 4d  ix)....case "${M
01a0: 41 47 49 43 46 49 4c 45 7d 22 20 69 6e 0a 09 09  AGICFILE}" in...
01b0: 09 09 2a 65 6c 66 2a 78 38 36 2d 36 34 2a 29 0a  ..*elf*x86-64*).
01c0: 09 09 09 09 09 43 50 55 50 4c 41 54 3d 22 78 38  .....CPUPLAT="x8
01d0: 36 5f 36 34 22 0a 09 09 09 09 09 3b 3b 0a 09 09  6_64"......;;...
01e0: 09 09 2a 65 6c 66 2a 69 6e 74 65 6c 5c 20 38 30  ..*elf*intel\ 80
01f0: 33 38 36 2a 29 0a 09 09 09 09 09 43 50 55 50 4c  386*)......CPUPL
0200: 41 54 3d 22 69 78 38 36 22 0a 09 09 09 09 09 3b  AT="ix86"......;
0210: 3b 0a 09 09 09 09 2a 70 61 72 69 73 63 2a 29 0a  ;.....*parisc*).
0220: 09 09 09 09 09 43 50 55 50 4c 41 54 3d 22 70 61  .....CPUPLAT="pa
0230: 72 69 73 63 22 0a 09 09 09 09 09 3b 3b 0a 09 09  risc"......;;...
0240: 09 09 2a 65 6c 66 2a 33 32 2d 62 69 74 2a 73 70  ..*elf*32-bit*sp
0250: 61 72 63 2a 29 0a 09 09 09 09 09 43 50 55 50 4c  arc*)......CPUPL
0260: 41 54 3d 22 73 70 61 72 63 22 0a 09 09 09 09 09  AT="sparc"......
0270: 3b 3b 0a 09 09 09 09 2a 65 6c 66 2a 36 34 2d 62  ;;.....*elf*64-b
0280: 69 74 2a 73 70 61 72 63 2a 29 0a 09 09 09 09 09  it*sparc*)......
0290: 43 50 55 50 4c 41 54 3d 22 73 70 61 72 63 36 34  CPUPLAT="sparc64
02a0: 22 0a 09 09 09 09 09 3b 3b 0a 09 09 09 09 2a 70  "......;;.....*p
02b0: 61 2d 72 69 73 63 2a 29 0a 09 09 09 09 09 43 50  a-risc*)......CP
02c0: 55 50 4c 41 54 3d 22 70 61 72 69 73 63 22 0a 09  UPLAT="parisc"..
02d0: 09 09 09 09 3b 3b 0a 09 09 09 65 73 61 63 0a 0a  ....;;....esac..
02e0: 09 09 09 69 66 20 5b 20 22 24 7b 4d 41 47 49 43  ...if [ "${MAGIC
02f0: 4f 53 7d 22 20 21 3d 20 22 60 75 6e 61 6d 65 20  OS}" != "`uname 
0300: 2d 73 60 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09  -s`" ]; then....
0310: 09 23 20 43 72 6f 73 73 20 63 6f 6d 70 69 6c 69  .# Cross compili
0320: 6e 67 2c 20 74 72 79 20 74 6f 20 64 65 74 65 72  ng, try to deter
0330: 6d 69 6e 65 20 4f 53 20 2e 2e 2e 0a 09 09 09 09  mine OS ........
0340: 74 72 75 65 0a 09 09 09 66 69 0a 09 09 09 3b 3b  true....fi....;;
0350: 0a 09 09 77 69 6e 29 0a 09 09 09 69 66 20 67 72  ...win)....if gr
0360: 65 70 20 22 36 34 2d 62 69 74 22 20 22 24 7b 4d  ep "64-bit" "${M
0370: 41 47 49 43 46 49 4c 45 46 49 4c 45 7d 22 20 3e  AGICFILEFILE}" >
0380: 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a  /dev/null; then.
0390: 09 09 09 09 65 63 68 6f 20 22 77 69 6e 33 32 2d  ....echo "win32-
03a0: 78 38 36 5f 36 34 22 0a 09 09 09 65 6c 73 65 0a  x86_64"....else.
03b0: 09 09 09 09 65 63 68 6f 20 22 77 69 6e 33 32 2d  ....echo "win32-
03c0: 69 78 38 36 22 0a 09 09 09 66 69 0a 0a 09 09 09  ix86"....fi.....
03d0: 65 78 69 74 20 30 0a 09 09 09 3b 3b 0a 09 09 6d  exit 0....;;...m
03e0: 61 63 6f 73 78 29 0a 09 09 09 3b 3b 0a 09 65 73  acosx)....;;..es
03f0: 61 63 0a 66 69 0a 0a 63 61 73 65 20 22 24 7b 4f  ac.fi..case "${O
0400: 53 4e 41 4d 45 7d 22 20 69 6e 0a 09 4c 69 6e 75  SNAME}" in..Linu
0410: 78 29 0a 09 09 47 4c 49 42 43 56 45 52 53 3d 24  x)...GLIBCVERS=$
0420: 28 73 74 72 69 6e 67 73 20 2f 6c 69 62 2f 6c 69  (strings /lib/li
0430: 62 63 2e 73 6f 2e 36 20 7c 20 67 72 65 70 20 27  bc.so.6 | grep '
0440: 5e 47 4c 49 42 43 5f 5b 30 2d 39 5d 5b 30 2d 39  ^GLIBC_[0-9][0-9
0450: 5d 2a 5c 2e 5b 30 2d 39 5d 2a 27 20 7c 20 63 75  ]*\.[0-9]*' | cu
0460: 74 20 2d 66 20 32 2d 20 2d 64 20 5f 20 7c 20 63  t -f 2- -d _ | c
0470: 75 74 20 2d 66 20 31 2d 32 20 2d 64 20 2e 20 7c  ut -f 1-2 -d . |
0480: 20 73 65 64 20 27 73 40 5c 2e 40 20 40 67 27 20   sed 's@\.@ @g' 
0490: 7c 20 20 73 6f 72 74 20 2d 6e 20 2b 30 20 2b 31  |  sort -n +0 +1
04a0: 20 7c 20 74 61 69 6c 20 2d 31 20 7c 20 73 65 64   | tail -1 | sed
04b0: 20 27 73 40 20 40 5c 2e 40 67 27 29 0a 0a 09 09   's@ @\.@g')....
04c0: 63 61 73 65 20 22 24 7b 43 50 55 50 4c 41 54 7d  case "${CPUPLAT}
04d0: 22 20 69 6e 0a 09 09 09 69 3f 38 36 29 0a 09 09  " in....i?86)...
04e0: 09 09 43 50 55 50 4c 41 54 3d 22 69 78 38 36 22  ..CPUPLAT="ix86"
04f0: 0a 09 09 09 09 3b 3b 0a 09 09 09 73 75 6e 34 6d  .....;;....sun4m
0500: 29 0a 09 09 09 09 43 50 55 50 4c 41 54 3d 22 73  ).....CPUPLAT="s
0510: 70 61 72 63 22 0a 09 09 09 09 3b 3b 0a 09 09 65  parc".....;;...e
0520: 73 61 63 0a 0a 09 09 65 63 68 6f 20 22 6c 69 6e  sac....echo "lin
0530: 75 78 2d 67 6c 69 62 63 24 7b 47 4c 49 42 43 56  ux-glibc${GLIBCV
0540: 45 52 53 7d 2d 24 7b 43 50 55 50 4c 41 54 7d 22  ERS}-${CPUPLAT}"
0550: 0a 09 09 3b 3b 0a 09 53 75 6e 4f 53 29 0a 09 09  ...;;..SunOS)...
0560: 53 55 4e 4d 41 4a 56 45 52 3d 24 28 75 6e 61 6d  SUNMAJVER=$(unam
0570: 65 20 2d 72 20 7c 20 63 75 74 20 2d 66 20 31 20  e -r | cut -f 1 
0580: 2d 64 20 2e 29 0a 09 09 53 55 4e 4d 49 4e 56 45  -d .)...SUNMINVE
0590: 52 3d 24 28 75 6e 61 6d 65 20 2d 72 20 7c 20 63  R=$(uname -r | c
05a0: 75 74 20 2d 66 20 32 20 2d 64 20 2e 29 0a 09 09  ut -f 2 -d .)...
05b0: 53 4f 4c 56 45 52 3d 22 24 5b 24 7b 53 55 4e 4d  SOLVER="$[${SUNM
05c0: 41 4a 56 45 52 7d 20 2d 20 33 5d 2e 24 7b 53 55  AJVER} - 3].${SU
05d0: 4e 4d 49 4e 56 45 52 7d 22 0a 0a 09 09 69 66 20  NMINVER}"....if 
05e0: 5b 20 2d 7a 20 22 24 7b 43 50 55 50 4c 41 54 7d  [ -z "${CPUPLAT}
05f0: 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 65 63 68  " ]; then....ech
0600: 6f 20 27 55 6e 61 62 6c 65 20 74 6f 20 64 65 74  o 'Unable to det
0610: 65 72 6d 69 6e 65 20 70 6c 61 74 66 6f 72 6d 27  ermine platform'
0620: 20 3e 26 32 0a 0a 09 09 09 65 78 69 74 20 31 0a   >&2.....exit 1.
0630: 09 09 66 69 0a 0a 09 09 65 63 68 6f 20 22 73 6f  ..fi....echo "so
0640: 6c 61 72 69 73 24 7b 53 4f 4c 56 45 52 7d 2d 24  laris${SOLVER}-$
0650: 7b 43 50 55 50 4c 41 54 7d 22 0a 09 09 3b 3b 0a  {CPUPLAT}"...;;.
0660: 09 48 50 2d 55 58 29 0a 09 09 65 63 68 6f 20 22  .HP-UX)...echo "
0670: 68 70 75 78 2d 24 7b 43 50 55 50 4c 41 54 7d 22  hpux-${CPUPLAT}"
0680: 0a 09 09 3b 3b 0a 09 2a 29 0a 09 09 69 66 20 5b  ...;;..*)...if [
0690: 20 2d 7a 20 22 24 7b 43 50 55 50 4c 41 54 7d 22   -z "${CPUPLAT}"
06a0: 20 5d 3b 20 74 68 65 6e 0a 09 09 09 43 50 55 50   ]; then....CPUP
06b0: 4c 41 54 3d 22 60 75 6e 61 6d 65 20 2d 6d 20 7c  LAT="`uname -m |
06c0: 20 64 64 20 63 6f 6e 76 3d 6c 63 61 73 65 20 32   dd conv=lcase 2
06d0: 3e 2f 64 65 76 2f 6e 75 6c 6c 60 22 0a 09 09 66  >/dev/null`"...f
06e0: 69 0a 0a 09 09 65 63 68 6f 20 22 60 75 6e 61 6d  i....echo "`unam
06f0: 65 20 2d 73 20 7c 20 64 64 20 63 6f 6e 76 3d 6c  e -s | dd conv=l
0700: 63 61 73 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  case 2>/dev/null
0710: 60 2d 24 7b 43 50 55 50 4c 41 54 7d 22 0a 09 09  `-${CPUPLAT}"...
0720: 3b 3b 0a 65 73 61 63 0a                          ;;.esac.