Hex Artifact Content

Artifact 73b14e71ab5e5231b8b16a2e475452810c2a4118:


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 72 6d 20 2d 66 20 66 61 69 6c 65 64 2d 2a 2e  .rm -f failed-*.
03f0: 6c 6f 67 0a 09 09 69 66 20 5b 20 22 24 7b 44 49  log...if [ "${DI
0400: 53 54 43 4c 45 41 4e 7d 22 20 3d 20 22 31 22 20  STCLEAN}" = "1" 
0410: 5d 3b 20 74 68 65 6e 0a 09 09 09 72 6d 20 2d 72  ]; then....rm -r
0420: 66 20 22 73 72 63 22 0a 09 09 66 69 0a 09 09 69  f "src"...fi...i
0430: 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59  f [ "${CLEANONLY
0440: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e  }" = "1" ]; then
0450: 0a 09 09 09 65 78 69 74 20 30 0a 09 09 66 69 0a  ....exit 0...fi.
0460: 0a 09 09 6d 6b 64 69 72 20 2d 70 20 22 6f 75 74  ...mkdir -p "out
0470: 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20 3e 2f  /${PLATFORM}" >/
0480: 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f  dev/null 2>/dev/
0490: 6e 75 6c 6c 0a 0a 09 09 2e 2f 62 75 69 6c 64 2e  null...../build.
04a0: 73 68 20 3e 20 22 6f 75 74 2f 24 7b 50 4c 41 54  sh > "out/${PLAT
04b0: 46 4f 52 4d 7d 2f 62 75 69 6c 64 2e 6c 6f 67 22  FORM}/build.log"
04c0: 20 32 3e 26 31 20 7c 7c 20 65 78 69 74 20 31 0a   2>&1 || exit 1.
04d0: 09 29 20 7c 7c 20 66 61 69 6c 65 64 3d 31 0a 0a  .) || failed=1..
04e0: 09 69 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e  .if [ "${CLEANON
04f0: 4c 59 7d 22 20 3d 20 22 30 22 20 5d 3b 20 74 68  LY}" = "0" ]; th
0500: 65 6e 0a 09 09 65 63 68 6f 20 22 42 75 69 6c 64  en...echo "Build
0510: 69 6e 67 20 24 7b 64 69 72 7d 22 0a 09 66 69 0a  ing ${dir}"..fi.
0520: 0a 09 69 66 20 5b 20 22 24 7b 66 61 69 6c 65 64  ..if [ "${failed
0530: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e  }" = "1" ]; then
0540: 0a 09 09 63 70 20 22 24 7b 64 69 72 7d 2f 6f 75  ...cp "${dir}/ou
0550: 74 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 2f 62 75  t/${PLATFORM}/bu
0560: 69 6c 64 2e 6c 6f 67 22 20 22 24 7b 64 69 72 7d  ild.log" "${dir}
0570: 2f 66 61 69 6c 65 64 2d 24 7b 50 4c 41 54 46 4f  /failed-${PLATFO
0580: 52 4d 7d 2d 60 68 6f 73 74 6e 61 6d 65 60 2e 6c  RM}-`hostname`.l
0590: 6f 67 22 0a 0a 09 09 72 6d 20 2d 72 66 20 22 24  og"....rm -rf "$
05a0: 7b 64 69 72 7d 2f 6f 75 74 22 0a 09 09 66 61 69  {dir}/out"...fai
05b0: 6c 65 64 64 69 72 73 3d 22 24 7b 66 61 69 6c 65  leddirs="${faile
05c0: 64 64 69 72 73 7d 20 24 7b 64 69 72 7d 22 0a 09  ddirs} ${dir}"..
05d0: 09 65 63 68 6f 20 22 46 61 69 6c 65 64 20 74 6f  .echo "Failed to
05e0: 20 62 75 69 6c 64 20 24 7b 64 69 72 7d 22 0a 09   build ${dir}"..
05f0: 66 69 0a 64 6f 6e 65 0a 0a 23 20 43 6c 65 61 6e  fi.done..# Clean
0600: 75 70 20 69 73 20 64 6f 6e 65 20 61 74 20 74 68  up is done at th
0610: 69 73 20 70 6f 69 6e 74 0a 69 66 20 5b 20 22 24  is point.if [ "$
0620: 7b 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 3d 20 22  {CLEANONLY}" = "
0630: 31 22 20 5d 3b 20 74 68 65 6e 0a 09 65 78 69 74  1" ]; then..exit
0640: 20 30 0a 66 69 0a 0a 23 20 4c 65 74 20 74 68 65   0.fi..# Let the
0650: 20 75 73 65 72 20 6b 6e 6f 77 20 77 68 61 74 20   user know what 
0660: 66 61 69 6c 65 64 20 74 6f 20 62 75 69 6c 64 0a  failed to build.
0670: 69 66 20 5b 20 2d 6e 20 22 24 7b 66 61 69 6c 65  if [ -n "${faile
0680: 64 64 69 72 73 7d 22 20 5d 3b 20 74 68 65 6e 0a  ddirs}" ]; then.
0690: 09 65 63 68 6f 20 22 54 68 65 20 66 6f 6c 6c 6f  .echo "The follo
06a0: 77 69 6e 67 20 66 61 69 6c 65 64 20 74 6f 20 62  wing failed to b
06b0: 75 69 6c 64 3a 24 7b 66 61 69 6c 65 64 64 69 72  uild:${faileddir
06c0: 73 7d 22 0a 66 69 0a 0a 23 20 43 72 65 61 74 65  s}".fi..# Create
06d0: 20 74 61 72 66 69 6c 65 20 6f 66 20 62 75 69 6c   tarfile of buil
06e0: 74 20 70 61 63 6b 61 67 65 73 0a 50 4c 41 54 46  t packages.PLATF
06f0: 4f 52 4d 3d 22 24 28 2e 2f 70 6c 61 74 66 6f 72  ORM="$(./platfor
0700: 6d 29 22 0a 44 41 54 45 43 4f 44 45 3d 22 24 28  m)".DATECODE="$(
0710: 64 61 74 65 20 2b 25 59 25 6d 25 64 25 48 25 4d  date +%Y%m%d%H%M
0720: 29 22 0a 4f 55 54 46 49 4c 45 42 41 53 45 3d 22  )".OUTFILEBASE="
0730: 74 63 6c 70 6b 67 73 2d 24 7b 50 4c 41 54 46 4f  tclpkgs-${PLATFO
0740: 52 4d 7d 2d 24 7b 44 41 54 45 43 4f 44 45 7d 22  RM}-${DATECODE}"
0750: 0a 74 61 72 20 2d 63 66 20 2d 20 2a 2f 6f 75 74  .tar -cf - */out
0760: 20 7c 20 62 7a 69 70 32 20 2d 39 63 20 3e 20 22   | bzip2 -9c > "
0770: 24 7b 4f 55 54 46 49 4c 45 42 41 53 45 7d 2e 74  ${OUTFILEBASE}.t
0780: 61 72 2e 62 7a 32 22 0a 0a 65 78 69 74 20 30 0a  ar.bz2"..exit 0.