Hex Artifact Content

Artifact 4f07bb6e7e9a1d32db0d9673705250655a72ee92:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 69 66  #! /bin/bash..if
0010: 20 5b 20 21 20 2d 78 20 22 2e 2f 70 6c 61 74 66   [ ! -x "./platf
0020: 6f 72 6d 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63  orm" ]; then..ec
0030: 68 6f 20 27 45 52 52 4f 52 3a 20 50 6c 61 74 66  ho 'ERROR: Platf
0040: 6f 72 6d 20 73 63 72 69 70 74 20 6e 6f 74 20 66  orm script not f
0050: 6f 75 6e 64 3a 20 2e 2f 70 6c 61 74 66 6f 72 6d  ound: ./platform
0060: 27 20 3e 26 32 0a 0a 09 65 78 69 74 20 31 0a 66  ' >&2...exit 1.f
0070: 69 0a 0a 43 4c 45 41 4e 4f 4e 4c 59 3d 30 0a 44  i..CLEANONLY=0.D
0080: 49 53 54 43 4c 45 41 4e 3d 30 0a 69 66 20 5b 20  ISTCLEAN=0.if [ 
0090: 22 24 31 22 20 3d 20 22 63 6c 65 61 6e 22 20 5d  "$1" = "clean" ]
00a0: 3b 20 74 68 65 6e 0a 09 43 4c 45 41 4e 4f 4e 4c  ; then..CLEANONL
00b0: 59 3d 31 0a 66 69 0a 69 66 20 5b 20 22 24 31 22  Y=1.fi.if [ "$1"
00c0: 20 3d 20 22 64 69 73 74 63 6c 65 61 6e 22 20 5d   = "distclean" ]
00d0: 3b 20 74 68 65 6e 0a 09 43 4c 45 41 4e 4f 4e 4c  ; then..CLEANONL
00e0: 59 3d 31 0a 09 44 49 53 54 43 4c 45 41 4e 3d 31  Y=1..DISTCLEAN=1
00f0: 0a 66 69 0a 65 78 70 6f 72 74 20 43 4c 45 41 4e  .fi.export CLEAN
0100: 4f 4e 4c 59 20 44 49 53 54 43 4c 45 41 4e 0a 0a  ONLY DISTCLEAN..
0110: 23 20 44 65 74 65 72 6d 69 6e 65 20 70 61 74 68  # Determine path
0120: 20 74 6f 20 22 74 63 6c 43 6f 6e 66 69 67 2e 73   to "tclConfig.s
0130: 68 22 0a 54 43 4c 43 4f 4e 46 49 47 44 49 52 3d  h".TCLCONFIGDIR=
0140: 24 28 0a 09 28 0a 09 09 65 63 68 6f 20 22 24 7b  $(..(...echo "${
0150: 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 7d  LD_LIBRARY_PATH}
0160: 22 20 7c 20 74 72 20 27 3a 27 20 22 5c 6e 22 0a  " | tr ':' "\n".
0170: 09 09 63 61 74 20 2f 65 74 63 2f 6c 64 2e 73 6f  ..cat /etc/ld.so
0180: 2e 63 6f 6e 66 20 32 3e 2f 64 65 76 2f 6e 75 6c  .conf 2>/dev/nul
0190: 6c 0a 09 09 63 72 6c 65 20 32 3e 2f 64 65 76 2f  l...crle 2>/dev/
01a0: 6e 75 6c 6c 20 7c 20 67 72 65 70 20 27 5e 20 2a  null | grep '^ *
01b0: 44 65 66 61 75 6c 74 20 4c 69 62 72 61 72 79 20  Default Library 
01c0: 50 61 74 68 27 20 7c 20 73 65 64 20 27 73 40 5e  Path' | sed 's@^
01d0: 20 2a 44 65 66 61 75 6c 74 20 4c 69 62 72 61 72   *Default Librar
01e0: 79 20 50 61 74 68 5b 5e 3a 5d 2a 3a 5b 5e 3a 5d  y Path[^:]*:[^:]
01f0: 2a 2f 40 2f 40 27 20 7c 20 74 72 20 27 3a 27 20  */@/@' | tr ':' 
0200: 22 5c 6e 22 0a 09 29 20 7c 20 67 72 65 70 20 27  "\n"..) | grep '
0210: 5e 2f 27 20 7c 20 77 68 69 6c 65 20 72 65 61 64  ^/' | while read
0220: 20 63 68 6b 6c 69 62 64 69 72 3b 20 64 6f 0a 09   chklibdir; do..
0230: 09 69 66 20 5b 20 2d 66 20 22 24 7b 63 68 6b 6c  .if [ -f "${chkl
0240: 69 62 64 69 72 7d 2f 74 63 6c 43 6f 6e 66 69 67  ibdir}/tclConfig
0250: 2e 73 68 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09  .sh" ]; then....
0260: 65 63 68 6f 20 22 24 7b 63 68 6b 6c 69 62 64 69  echo "${chklibdi
0270: 72 7d 22 0a 09 09 09 62 72 65 61 6b 0a 09 09 66  r}"....break...f
0280: 69 0a 09 64 6f 6e 65 0a 29 0a 69 66 20 5b 20 2d  i..done.).if [ -
0290: 7a 20 22 24 7b 54 43 4c 43 4f 4e 46 49 47 44 49  z "${TCLCONFIGDI
02a0: 52 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 54 43 4c  R}" ]; then..TCL
02b0: 43 4f 4e 46 49 47 44 49 52 3d 22 2f 75 73 72 2f  CONFIGDIR="/usr/
02c0: 6c 69 62 22 0a 66 69 0a 65 78 70 6f 72 74 20 54  lib".fi.export T
02d0: 43 4c 43 4f 4e 46 49 47 44 49 52 0a 0a 23 20 44  CLCONFIGDIR..# D
02e0: 65 74 65 72 6d 69 6e 65 20 70 6c 61 74 66 6f 72  etermine platfor
02f0: 6d 0a 50 4c 41 54 46 4f 52 4d 3d 22 24 28 2e 2f  m.PLATFORM="$(./
0300: 70 6c 61 74 66 6f 72 6d 29 22 0a 65 78 70 6f 72  platform)".expor
0310: 74 20 50 4c 41 54 46 4f 52 4d 0a 0a 23 20 42 75  t PLATFORM..# Bu
0320: 69 6c 64 20 61 6c 6c 20 61 70 70 72 6f 70 72 69  ild all appropri
0330: 61 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a  ate directories.
0340: 66 61 69 6c 65 64 64 69 72 73 3d 22 22 0a 66 6f  faileddirs="".fo
0350: 72 20 64 69 72 20 69 6e 20 2a 2f 3b 20 64 6f 0a  r dir in */; do.
0360: 09 65 78 70 6f 72 74 20 64 69 72 0a 0a 09 69 66  .export dir...if
0370: 20 5b 20 21 20 2d 66 20 22 24 7b 64 69 72 7d 2f   [ ! -f "${dir}/
0380: 62 75 69 6c 64 2e 73 68 22 20 5d 3b 20 74 68 65  build.sh" ]; the
0390: 6e 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 66 69  n...continue..fi
03a0: 0a 0a 09 66 61 69 6c 65 64 3d 30 0a 09 28 0a 09  ...failed=0..(..
03b0: 09 63 64 20 22 24 7b 64 69 72 7d 22 20 7c 7c 20  .cd "${dir}" || 
03c0: 65 78 69 74 20 31 0a 0a 09 09 72 6d 20 2d 72 66  exit 1....rm -rf
03d0: 20 22 62 75 69 6c 64 22 20 22 6f 75 74 22 0a 09   "build" "out"..
03e0: 09 69 66 20 5b 20 22 24 7b 44 49 53 54 43 4c 45  .if [ "${DISTCLE
03f0: 41 4e 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68  AN}" = "1" ]; th
0400: 65 6e 0a 09 09 09 72 6d 20 2d 72 66 20 22 73 72  en....rm -rf "sr
0410: 63 22 0a 09 09 66 69 0a 09 09 69 66 20 5b 20 22  c"...fi...if [ "
0420: 24 7b 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 3d 20  ${CLEANONLY}" = 
0430: 22 31 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 65  "1" ]; then....e
0440: 78 69 74 20 30 0a 09 09 66 69 0a 0a 09 09 6d 6b  xit 0...fi....mk
0450: 64 69 72 20 2d 70 20 22 6f 75 74 2f 24 7b 50 4c  dir -p "out/${PL
0460: 41 54 46 4f 52 4d 7d 22 20 3e 2f 64 65 76 2f 6e  ATFORM}" >/dev/n
0470: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a  ull 2>/dev/null.
0480: 0a 09 09 2e 2f 62 75 69 6c 64 2e 73 68 20 32 3e  ..../build.sh 2>
0490: 26 31 20 7c 20 74 65 65 20 22 6f 75 74 2f 24 7b  &1 | tee "out/${
04a0: 50 4c 41 54 46 4f 52 4d 7d 2f 62 75 69 6c 64 2e  PLATFORM}/build.
04b0: 6c 6f 67 22 20 7c 7c 20 65 78 69 74 20 31 0a 09  log" || exit 1..
04c0: 29 20 7c 7c 20 66 61 69 6c 65 64 3d 31 0a 0a 09  ) || failed=1...
04d0: 69 66 20 5b 20 22 24 7b 66 61 69 6c 65 64 7d 22  if [ "${failed}"
04e0: 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e 0a 09   = "1" ]; then..
04f0: 09 72 6d 20 2d 72 66 20 22 24 7b 64 69 72 7d 2f  .rm -rf "${dir}/
0500: 6f 75 74 22 0a 09 09 66 61 69 6c 65 64 64 69 72  out"...faileddir
0510: 73 3d 22 24 7b 66 61 69 6c 65 64 64 69 72 73 7d  s="${faileddirs}
0520: 20 24 7b 64 69 72 7d 22 0a 09 66 69 0a 64 6f 6e   ${dir}"..fi.don
0530: 65 0a 0a 23 20 43 6c 65 61 6e 75 70 20 69 73 20  e..# Cleanup is 
0540: 64 6f 6e 65 20 61 74 20 74 68 69 73 20 70 6f 69  done at this poi
0550: 6e 74 0a 69 66 20 5b 20 22 24 7b 43 4c 45 41 4e  nt.if [ "${CLEAN
0560: 4f 4e 4c 59 7d 22 20 3d 20 22 31 22 20 5d 3b 20  ONLY}" = "1" ]; 
0570: 74 68 65 6e 0a 09 65 78 69 74 20 30 0a 66 69 0a  then..exit 0.fi.
0580: 0a 23 20 4c 65 74 20 74 68 65 20 75 73 65 72 20  .# Let the user 
0590: 6b 6e 6f 77 20 77 68 61 74 20 66 61 69 6c 65 64  know what failed
05a0: 20 74 6f 20 62 75 69 6c 64 0a 69 66 20 5b 20 2d   to build.if [ -
05b0: 6e 20 22 24 7b 66 61 69 6c 65 64 64 69 72 73 7d  n "${faileddirs}
05c0: 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20  " ]; then..echo 
05d0: 22 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66  "The following f
05e0: 61 69 6c 65 64 20 74 6f 20 62 75 69 6c 64 3a 24  ailed to build:$
05f0: 7b 66 61 69 6c 64 64 69 72 73 7d 22 0a 66 69 0a  {failddirs}".fi.
0600: 0a 23 20 43 72 65 61 74 65 20 74 61 72 66 69 6c  .# Create tarfil
0610: 65 20 6f 66 20 62 75 69 6c 74 20 70 61 63 6b 61  e of built packa
0620: 67 65 73 0a 50 4c 41 54 46 4f 52 4d 3d 22 24 28  ges.PLATFORM="$(
0630: 2e 2f 70 6c 61 74 66 6f 72 6d 29 22 0a 44 41 54  ./platform)".DAT
0640: 45 43 4f 44 45 3d 22 24 28 64 61 74 65 20 2b 25  ECODE="$(date +%
0650: 59 25 6d 25 64 25 48 25 4d 29 22 0a 4f 55 54 46  Y%m%d%H%M)".OUTF
0660: 49 4c 45 42 41 53 45 3d 22 74 63 6c 70 6b 67 73  ILEBASE="tclpkgs
0670: 2d 24 7b 50 4c 41 54 46 4f 52 4d 7d 2d 24 7b 44  -${PLATFORM}-${D
0680: 41 54 45 43 4f 44 45 7d 22 0a 74 61 72 20 2d 63  ATECODE}".tar -c
0690: 66 20 2d 20 2a 2f 6f 75 74 20 7c 20 62 7a 69 70  f - */out | bzip
06a0: 32 20 2d 39 63 20 3e 20 22 24 7b 4f 55 54 46 49  2 -9c > "${OUTFI
06b0: 4c 45 42 41 53 45 7d 2e 74 61 72 2e 62 7a 32 22  LEBASE}.tar.bz2"
06c0: 0a 0a 65 78 69 74 20 30 0a                       ..exit 0.