Hex Artifact Content

Artifact 35b0320bb70bcd19504c903c939a64b5c3f42ca5:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 62 61 73 68 0a 0a 54 43 4c 56 45 52 53 3d 22 38  bash..TCLVERS="8
0020: 2e 35 2e 31 34 22 0a 69 66 20 65 63 68 6f 20 22  .5.14".if echo "
0030: 24 31 22 20 7c 20 67 72 65 70 20 27 5e 5b 30 2d  $1" | grep '^[0-
0040: 39 5d 5b 30 2d 39 5d 2a 5c 2e 27 20 3e 2f 64 65  9][0-9]*\.' >/de
0050: 76 2f 6e 75 6c 6c 20 7c 7c 20 65 63 68 6f 20 22  v/null || echo "
0060: 24 31 22 20 7c 20 65 67 72 65 70 20 27 5e 28 63  $1" | egrep '^(c
0070: 76 73 7c 66 6f 73 73 69 6c 29 5f 27 20 3e 2f 64  vs|fossil)_' >/d
0080: 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 54  ev/null; then..T
0090: 43 4c 56 45 52 53 3d 22 24 31 22 0a 0a 09 73 68  CLVERS="$1"...sh
00a0: 69 66 74 0a 66 69 0a 65 78 70 6f 72 74 20 54 43  ift.fi.export TC
00b0: 4c 56 45 52 53 0a 0a 23 20 44 65 74 65 72 6d 69  LVERS..# Determi
00c0: 6e 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 6d  ne appropriate m
00d0: 6f 64 65 0a 6d 6f 64 65 3d 22 62 75 69 6c 64 22  ode.mode="build"
00e0: 0a 69 66 20 5b 20 22 24 31 22 20 3d 20 22 63 6c  .if [ "$1" = "cl
00f0: 65 61 6e 22 20 5d 3b 20 74 68 65 6e 0a 09 73 68  ean" ]; then..sh
0100: 69 66 74 0a 0a 09 6d 6f 64 65 3d 22 63 6c 65 61  ift...mode="clea
0110: 6e 22 0a 66 69 0a 69 66 20 5b 20 22 24 31 22 20  n".fi.if [ "$1" 
0120: 3d 20 22 64 69 73 74 63 6c 65 61 6e 22 20 5d 3b  = "distclean" ];
0130: 20 74 68 65 6e 0a 09 73 68 69 66 74 0a 0a 09 6d   then..shift...m
0140: 6f 64 65 3d 22 64 69 73 74 63 6c 65 61 6e 22 0a  ode="distclean".
0150: 66 69 0a 0a 23 20 56 65 72 69 66 79 20 74 68 61  fi..# Verify tha
0160: 74 20 22 70 72 65 2e 73 68 22 20 68 61 73 20 62  t "pre.sh" has b
0170: 65 65 6e 20 72 75 6e 20 69 66 20 74 68 69 73 20  een run if this 
0180: 69 73 20 61 20 64 65 76 65 6c 6f 70 6d 65 6e 74  is a development
0190: 20 73 6e 61 70 73 68 6f 74 20 6f 66 0a 23 20 4b   snapshot of.# K
01a0: 69 74 43 72 65 61 74 6f 72 0a 69 66 20 5b 20 2d  itCreator.if [ -
01b0: 66 20 27 62 75 69 6c 64 2f 70 72 65 2e 73 68 27  f 'build/pre.sh'
01c0: 20 5d 3b 20 74 68 65 6e 0a 09 69 66 20 21 20 66   ]; then..if ! f
01d0: 69 6e 64 20 27 6b 69 74 73 68 2f 62 75 69 6c 64  ind 'kitsh/build
01e0: 73 72 63 2f 27 20 2d 6e 61 6d 65 20 63 6f 6e 66  src/' -name conf
01f0: 69 67 75 72 65 20 2d 74 79 70 65 20 66 20 32 3e  igure -type f 2>
0200: 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 67 72 65 70  /dev/null | grep
0210: 20 63 6f 6e 66 69 67 75 72 65 20 3e 2f 64 65 76   configure >/dev
0220: 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 65 63  /null; then...ec
0230: 68 6f 20 22 50 6c 65 61 73 65 20 72 65 6d 65 6d  ho "Please remem
0240: 62 65 72 20 74 6f 20 72 75 6e 20 27 62 75 69 6c  ber to run 'buil
0250: 64 2f 70 72 65 2e 73 68 27 20 69 66 20 79 6f 75  d/pre.sh' if you
0260: 20 65 78 70 65 63 74 20 74 68 69 73 20 62 75 69   expect this bui
0270: 6c 64 20 74 6f 20 77 6f 72 6b 2e 22 20 3e 26 32  ld to work." >&2
0280: 0a 09 66 69 0a 66 69 0a 0a 23 20 44 65 66 69 6e  ..fi.fi..# Defin
0290: 65 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c  e the list of al
02a0: 6c 20 70 61 63 6b 61 67 65 73 2c 20 66 6f 72 20  l packages, for 
02b0: 63 6c 65 61 6e 69 6e 67 20 70 75 72 70 6f 73 65  cleaning purpose
02c0: 73 0a 4b 49 54 43 52 45 41 54 4f 52 5f 41 4c 4c  s.KITCREATOR_ALL
02d0: 50 4b 47 53 3d 22 6b 69 74 73 68 20 74 63 6c 20  PKGS="kitsh tcl 
02e0: 74 63 6c 76 66 73 20 7a 6c 69 62 20 74 6b 20 69  tclvfs zlib tk i
02f0: 74 63 6c 20 6d 6b 34 74 63 6c 20 74 68 72 65 61  tcl mk4tcl threa
0300: 64 20 64 62 75 73 22 0a 66 6f 72 20 70 6b 67 20  d dbus".for pkg 
0310: 69 6e 20 24 7b 4b 49 54 43 52 45 41 54 4f 52 5f  in ${KITCREATOR_
0320: 41 4c 4c 50 4b 47 53 7d 3b 20 64 6f 0a 09 72 6d  ALLPKGS}; do..rm
0330: 20 2d 66 20 22 24 7b 70 6b 67 7d 2f 62 75 69 6c   -f "${pkg}/buil
0340: 64 2e 6c 6f 67 22 0a 09 72 6d 20 2d 72 66 20 22  d.log"..rm -rf "
0350: 24 7b 70 6b 67 7d 2f 6f 75 74 22 20 22 24 7b 70  ${pkg}/out" "${p
0360: 6b 67 7d 2f 69 6e 73 74 22 20 22 24 7b 70 6b 67  kg}/inst" "${pkg
0370: 7d 2f 62 75 69 6c 64 22 0a 0a 09 72 6d 20 2d 72  }/build"...rm -r
0380: 66 20 22 24 7b 70 6b 67 7d 2f 73 72 63 22 2f 74  f "${pkg}/src"/t
0390: 6d 70 2d 2a 0a 0a 09 69 66 20 5b 20 22 24 7b 6d  mp-*...if [ "${m
03a0: 6f 64 65 7d 22 20 3d 20 22 64 69 73 74 63 6c 65  ode}" = "distcle
03b0: 61 6e 22 20 5d 3b 20 74 68 65 6e 0a 09 09 72 6d  an" ]; then...rm
03c0: 20 2d 72 66 20 22 24 7b 70 6b 67 7d 2f 73 72 63   -rf "${pkg}/src
03d0: 22 0a 09 66 69 0a 64 6f 6e 65 0a 0a 23 20 57 65  "..fi.done..# We
03e0: 27 72 65 20 61 6c 6c 20 64 6f 6e 65 20 69 66 20  're all done if 
03f0: 77 65 27 72 65 20 69 6e 20 63 6c 65 61 6e 20 6f  we're in clean o
0400: 72 20 64 69 73 74 63 6c 65 61 6e 20 6d 6f 64 65  r distclean mode
0410: 0a 69 66 20 5b 20 22 24 7b 6d 6f 64 65 7d 22 20  .if [ "${mode}" 
0420: 3d 20 22 63 6c 65 61 6e 22 20 2d 6f 20 22 24 7b  = "clean" -o "${
0430: 6d 6f 64 65 7d 22 20 3d 20 22 64 69 73 74 63 6c  mode}" = "distcl
0440: 65 61 6e 22 20 5d 3b 20 74 68 65 6e 0a 09 72 6d  ean" ]; then..rm
0450: 20 2d 66 20 74 63 6c 6b 69 74 2d 2a 0a 09 72 6d   -f tclkit-*..rm
0460: 20 2d 66 20 6c 69 62 74 63 6c 6b 69 74 2a 2e 2a   -f libtclkit*.*
0470: 0a 0a 09 65 78 69 74 20 30 0a 66 69 0a 0a 23 20  ...exit 0.fi..# 
0480: 41 64 64 20 70 61 63 6b 61 67 65 73 20 69 6d 70  Add packages imp
0490: 6c 69 65 64 20 62 79 20 74 68 65 20 61 64 64 69  lied by the addi
04a0: 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73  tional arguments
04b0: 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 4b 49 54 43  .if [ -z "${KITC
04c0: 52 45 41 54 4f 52 5f 50 4b 47 53 7d 22 20 5d 3b  REATOR_PKGS}" ];
04d0: 20 74 68 65 6e 0a 09 4b 49 54 43 52 45 41 54 4f   then..KITCREATO
04e0: 52 5f 50 4b 47 53 3d 22 74 6b 20 69 74 63 6c 20  R_PKGS="tk itcl 
04f0: 6d 6b 34 74 63 6c 22 0a 66 69 0a 0a 43 4f 4e 46  mk4tcl".fi..CONF
0500: 49 47 55 52 45 45 58 54 52 41 3d 22 24 40 22 0a  IGUREEXTRA="$@".
0510: 65 78 70 6f 72 74 20 43 4f 4e 46 49 47 55 52 45  export CONFIGURE
0520: 45 58 54 52 41 0a 0a 69 66 20 65 63 68 6f 20 22  EXTRA..if echo "
0530: 20 24 7b 43 4f 4e 46 49 47 55 52 45 45 58 54 52   ${CONFIGUREEXTR
0540: 41 7d 20 22 20 7c 20 67 72 65 70 20 27 20 2d 2d  A} " | grep ' --
0550: 65 6e 61 62 6c 65 2d 74 68 72 65 61 64 73 27 20  enable-threads' 
0560: 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65  >/dev/null 2>/de
0570: 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 4b 49  v/null; then..KI
0580: 54 43 52 45 41 54 4f 52 5f 50 4b 47 53 3d 22 24  TCREATOR_PKGS="$
0590: 7b 4b 49 54 43 52 45 41 54 4f 52 5f 50 4b 47 53  {KITCREATOR_PKGS
05a0: 7d 20 74 68 72 65 61 64 22 0a 66 69 0a 0a 23 20  } thread".fi..# 
05b0: 53 65 74 20 64 65 66 61 75 6c 74 20 74 61 72 67  Set default targ
05c0: 65 74 0a 4b 49 54 54 41 52 47 45 54 3d 22 6b 69  et.KITTARGET="ki
05d0: 74 73 68 22 0a 65 78 70 6f 72 74 20 4b 49 54 54  tsh".export KITT
05e0: 41 52 47 45 54 0a 0a 23 20 46 69 78 20 75 70 20  ARGET..# Fix up 
05f0: 70 61 63 6b 61 67 65 20 6c 69 73 74 0a 23 23 20  package list.## 
0600: 49 66 20 62 75 69 6c 64 69 6e 67 20 4b 69 74 44  If building KitD
0610: 4c 4c 2c 20 64 65 66 69 6e 65 20 69 74 20 61 73  LL, define it as
0620: 20 6f 75 72 20 74 61 72 67 65 74 0a 69 66 20 65   our target.if e
0630: 63 68 6f 20 22 20 24 7b 4b 49 54 43 52 45 41 54  cho " ${KITCREAT
0640: 4f 52 5f 50 4b 47 53 7d 20 22 20 7c 20 67 72 65  OR_PKGS} " | gre
0650: 70 20 27 20 6b 69 74 64 6c 6c 20 27 20 3e 2f 64  p ' kitdll ' >/d
0660: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e  ev/null 2>/dev/n
0670: 75 6c 6c 3b 20 74 68 65 6e 0a 09 4b 49 54 43 52  ull; then..KITCR
0680: 45 41 54 4f 52 5f 50 4b 47 53 3d 22 24 28 65 63  EATOR_PKGS="$(ec
0690: 68 6f 20 22 20 24 7b 4b 49 54 43 52 45 41 54 4f  ho " ${KITCREATO
06a0: 52 5f 50 4b 47 53 7d 20 22 20 7c 20 73 65 64 20  R_PKGS} " | sed 
06b0: 27 73 40 20 6b 69 74 64 6c 6c 20 40 20 40 67 3b  's@ kitdll @ @g;
06c0: 73 40 5e 20 20 2a 40 40 3b 73 40 20 20 2a 24 40  s@^  *@@;s@  *$@
06d0: 40 3b 73 40 20 20 20 2a 40 20 40 67 27 29 22 0a  @;s@   *@ @g')".
06e0: 09 4b 49 54 54 41 52 47 45 54 3d 22 6b 69 74 64  .KITTARGET="kitd
06f0: 6c 6c 22 0a 66 69 0a 0a 23 20 49 66 20 74 68 65  ll".fi..# If the
0700: 20 75 73 65 72 20 6d 61 6e 75 61 6c 6c 79 20 72   user manually r
0710: 65 71 75 65 73 74 65 64 20 22 2d 2d 65 6e 61 62  equested "--enab
0720: 6c 65 2d 6b 69 74 64 6c 6c 22 2c 20 6d 61 6b 65  le-kitdll", make
0730: 20 69 74 20 73 6f 0a 69 66 20 65 63 68 6f 20 22   it so.if echo "
0740: 78 20 24 40 20 22 20 7c 20 67 72 65 70 20 27 20  x $@ " | grep ' 
0750: 5b 2d 5d 5b 2d 5d 65 6e 61 62 6c 65 2d 6b 69 74  [-][-]enable-kit
0760: 64 6c 6c 20 27 20 3e 2f 64 65 76 2f 6e 75 6c 6c  dll ' >/dev/null
0770: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68   2>/dev/null; th
0780: 65 6e 0a 09 4b 49 54 54 41 52 47 45 54 3d 22 6b  en..KITTARGET="k
0790: 69 74 64 6c 6c 22 0a 66 69 0a 0a 23 23 20 49 66  itdll".fi..## If
07a0: 20 62 75 69 6c 64 69 6e 67 20 4b 69 74 44 4c 4c   building KitDLL
07b0: 20 61 6e 64 20 54 6b 2c 20 6d 75 73 74 20 64 6f   and Tk, must do
07c0: 20 54 6b 20 73 74 61 74 69 63 61 6c 6c 79 0a 23   Tk statically.#
07d0: 23 23 20 28 57 65 6c 6c 2c 20 77 65 20 64 6f 6e  ## (Well, we don
07e0: 27 74 20 48 41 56 45 20 74 6f 2c 20 62 75 74 20  't HAVE to, but 
07f0: 69 74 20 77 6f 75 6c 64 20 64 65 66 65 61 74 20  it would defeat 
0800: 6d 75 63 68 20 6f 66 20 74 68 65 20 70 75 72 70  much of the purp
0810: 6f 73 65 29 0a 69 66 20 5b 20 22 24 7b 4b 49 54  ose).if [ "${KIT
0820: 54 41 52 47 45 54 7d 22 20 3d 20 22 6b 69 74 64  TARGET}" = "kitd
0830: 6c 6c 22 20 5d 3b 20 74 68 65 6e 0a 09 69 66 20  ll" ]; then..if 
0840: 65 63 68 6f 20 22 20 24 7b 4b 49 54 43 52 45 41  echo " ${KITCREA
0850: 54 4f 52 5f 50 4b 47 53 7d 20 22 20 7c 20 67 72  TOR_PKGS} " | gr
0860: 65 70 20 27 20 74 6b 20 27 20 3e 2f 64 65 76 2f  ep ' tk ' >/dev/
0870: 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  null 2>/dev/null
0880: 3b 20 74 68 65 6e 0a 09 09 69 66 20 5b 20 22 24  ; then...if [ "$
0890: 7b 53 54 41 54 49 43 54 4b 7d 22 20 21 3d 20 22  {STATICTK}" != "
08a0: 31 22 20 2d 61 20 22 24 7b 53 54 41 54 49 43 54  1" -a "${STATICT
08b0: 4b 7d 22 20 21 3d 20 22 2d 31 22 20 5d 3b 20 74  K}" != "-1" ]; t
08c0: 68 65 6e 0a 09 09 09 65 63 68 6f 20 27 57 61 72  hen....echo 'War
08d0: 6e 69 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 54 6b  ning: Linking Tk
08e0: 20 73 74 61 74 69 63 61 6c 6c 79 20 62 65 63 61   statically beca
08f0: 75 73 65 20 79 6f 75 20 61 72 65 20 62 75 69 6c  use you are buil
0900: 64 69 6e 67 20 4b 69 74 44 4c 4c 27 20 32 3e 26  ding KitDLL' 2>&
0910: 31 0a 09 09 09 65 63 68 6f 20 27 20 20 20 20 20  1....echo '     
0920: 20 20 20 20 53 65 74 20 53 54 41 54 49 43 54 4b      Set STATICTK
0930: 20 74 6f 20 2d 31 20 69 66 20 79 6f 75 20 72 65   to -1 if you re
0940: 61 6c 6c 79 20 77 61 6e 74 20 74 6f 20 6c 69 6e  ally want to lin
0950: 6b 20 54 6b 20 64 79 6e 61 6d 69 63 61 6c 6c 79  k Tk dynamically
0960: 2e 27 20 3e 26 32 0a 0a 09 09 09 53 54 41 54 49  .' >&2.....STATI
0970: 43 54 4b 3d 22 31 22 0a 09 09 09 65 78 70 6f 72  CTK="1"....expor
0980: 74 20 53 54 41 54 49 43 54 4b 0a 09 09 66 69 0a  t STATICTK...fi.
0990: 0a 09 09 69 66 20 5b 20 2d 7a 20 22 24 7b 53 54  ...if [ -z "${ST
09a0: 41 54 49 43 4d 4b 34 7d 22 20 5d 3b 20 74 68 65  ATICMK4}" ]; the
09b0: 6e 0a 09 09 09 65 63 68 6f 20 27 57 61 72 6e 69  n....echo 'Warni
09c0: 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 4d 6b 34 74  ng: Linking Mk4t
09d0: 63 6c 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62  cl dynamically b
09e0: 65 63 61 75 73 65 20 79 6f 75 20 61 72 65 20 62  ecause you are b
09f0: 75 69 6c 64 69 6e 67 20 4b 69 74 44 4c 4c 27 20  uilding KitDLL' 
0a00: 32 3e 26 31 0a 09 09 09 65 63 68 6f 20 27 20 20  2>&1....echo '  
0a10: 20 20 20 20 20 20 20 53 65 74 20 53 54 41 54 49         Set STATI
0a20: 43 4d 4b 34 20 74 6f 20 31 20 69 66 20 79 6f 75  CMK4 to 1 if you
0a30: 20 72 65 61 6c 6c 79 20 77 61 6e 74 20 74 6f 20   really want to 
0a40: 6c 69 6e 6b 20 4d 6b 34 74 63 6c 20 73 74 61 74  link Mk4tcl stat
0a50: 69 63 61 6c 6c 79 2e 27 20 3e 26 32 0a 0a 09 09  ically.' >&2....
0a60: 09 53 54 41 54 49 43 4d 4b 34 3d 22 30 22 0a 09  .STATICMK4="0"..
0a70: 09 09 65 78 70 6f 72 74 20 53 54 41 54 49 43 4d  ..export STATICM
0a80: 4b 34 0a 09 09 66 69 0a 09 66 69 0a 66 69 0a 0a  K4...fi..fi.fi..
0a90: 23 20 46 69 6e 64 20 57 69 6e 64 6f 77 73 20 72  # Find Windows r
0aa0: 65 73 6f 75 72 63 65 2d 72 65 6c 61 74 65 64 20  esource-related 
0ab0: 66 69 6c 65 73 0a 69 66 20 5b 20 2d 66 20 22 6b  files.if [ -f "k
0ac0: 69 74 2e 69 63 6f 22 20 5d 3b 20 74 68 65 6e 0a  it.ico" ]; then.
0ad0: 09 4b 49 54 43 52 45 41 54 4f 52 5f 49 43 4f 4e  .KITCREATOR_ICON
0ae0: 3d 22 24 28 70 77 64 29 2f 6b 69 74 2e 69 63 6f  ="$(pwd)/kit.ico
0af0: 22 0a 65 6c 73 65 0a 09 4b 49 54 43 52 45 41 54  ".else..KITCREAT
0b00: 4f 52 5f 49 43 4f 4e 3d 22 24 28 65 63 68 6f 20  OR_ICON="$(echo 
0b10: 22 24 28 70 77 64 29 2f 6b 69 74 73 68 2f 62 75  "$(pwd)/kitsh/bu
0b20: 69 6c 64 73 72 63 22 2f 6b 69 74 73 68 2d 2a 2f  ildsrc"/kitsh-*/
0b30: 6b 69 74 2e 69 63 6f 29 22 0a 66 69 0a 69 66 20  kit.ico)".fi.if 
0b40: 5b 20 2d 66 20 22 6b 69 74 2e 72 63 22 20 5d 3b  [ -f "kit.rc" ];
0b50: 20 74 68 65 6e 0a 09 4b 49 54 43 52 45 41 54 4f   then..KITCREATO
0b60: 52 5f 52 43 3d 22 24 28 70 77 64 29 2f 6b 69 74  R_RC="$(pwd)/kit
0b70: 2e 72 63 22 0a 65 6c 73 65 0a 09 4b 49 54 43 52  .rc".else..KITCR
0b80: 45 41 54 4f 52 5f 52 43 3d 22 24 28 65 63 68 6f  EATOR_RC="$(echo
0b90: 20 22 24 28 70 77 64 29 2f 6b 69 74 73 68 2f 62   "$(pwd)/kitsh/b
0ba0: 75 69 6c 64 73 72 63 22 2f 6b 69 74 73 68 2d 2a  uildsrc"/kitsh-*
0bb0: 2f 6b 69 74 2e 72 63 29 22 0a 66 69 0a 65 78 70  /kit.rc)".fi.exp
0bc0: 6f 72 74 20 4b 49 54 43 52 45 41 54 4f 52 5f 49  ort KITCREATOR_I
0bd0: 43 4f 4e 20 4b 49 54 43 52 45 41 54 4f 52 5f 52  CON KITCREATOR_R
0be0: 43 0a 0a 23 20 44 65 74 65 72 6d 69 6e 65 20 68  C..# Determine h
0bf0: 6f 77 20 77 65 20 69 6e 76 6f 6b 65 20 61 20 54  ow we invoke a T
0c00: 63 6c 20 69 6e 74 65 72 70 72 65 74 65 72 0a 69  cl interpreter.i
0c10: 66 20 5b 20 2d 7a 20 22 24 7b 54 43 4c 53 48 5f  f [ -z "${TCLSH_
0c20: 4e 41 54 49 56 45 7d 22 20 5d 3b 20 74 68 65 6e  NATIVE}" ]; then
0c30: 0a 09 54 43 4c 53 48 5f 4e 41 54 49 56 45 3d 22  ..TCLSH_NATIVE="
0c40: 66 61 6c 73 65 22 0a 66 69 0a 66 6f 72 20 74 65  false".fi.for te
0c50: 73 74 73 68 20 69 6e 20 22 24 7b 54 43 4c 53 48  stsh in "${TCLSH
0c60: 5f 4e 41 54 49 56 45 7d 22 20 74 63 6c 73 68 20  _NATIVE}" tclsh 
0c70: 74 63 6c 73 68 38 2e 34 20 74 63 6c 73 68 38 2e  tclsh8.4 tclsh8.
0c80: 35 20 74 63 6c 73 68 38 2e 36 20 22 24 7b 54 43  5 tclsh8.6 "${TC
0c90: 4c 4b 49 54 3a 2d 74 63 6c 6b 69 74 7d 22 3b 20  LKIT:-tclkit}"; 
0ca0: 64 6f 0a 09 69 66 20 65 63 68 6f 20 27 65 78 69  do..if echo 'exi
0cb0: 74 20 30 27 20 7c 20 22 24 7b 74 65 73 74 73 68  t 0' | "${testsh
0cc0: 7d 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e  }" >/dev/null 2>
0cd0: 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a  /dev/null; then.
0ce0: 09 09 54 43 4c 53 48 5f 4e 41 54 49 56 45 3d 22  ..TCLSH_NATIVE="
0cf0: 24 7b 74 65 73 74 73 68 7d 22 0a 0a 09 09 62 72  ${testsh}"....br
0d00: 65 61 6b 0a 09 66 69 0a 64 6f 6e 65 0a 65 78 70  eak..fi.done.exp
0d10: 6f 72 74 20 54 43 4c 53 48 5f 4e 41 54 49 56 45  ort TCLSH_NATIVE
0d20: 0a 0a 23 20 44 6f 20 62 75 69 6c 64 0a 66 61 69  ..# Do build.fai
0d30: 6c 65 64 70 6b 67 73 3d 22 22 0a 62 75 69 6c 64  ledpkgs="".build
0d40: 66 61 69 6c 65 64 3d 22 30 22 0a 66 6f 72 20 70  failed="0".for p
0d50: 6b 67 20 69 6e 20 74 63 6c 20 74 63 6c 76 66 73  kg in tcl tclvfs
0d60: 20 7a 6c 69 62 20 24 7b 4b 49 54 43 52 45 41 54   zlib ${KITCREAT
0d70: 4f 52 5f 50 4b 47 53 7d 20 6b 69 74 73 68 3b 20  OR_PKGS} kitsh; 
0d80: 64 6f 0a 09 65 63 68 6f 20 2d 6e 20 22 42 75 69  do..echo -n "Bui
0d90: 6c 64 69 6e 67 20 24 7b 70 6b 67 7d 20 2e 2e 2e  lding ${pkg} ...
0da0: 22 0a 0a 09 66 61 69 6c 65 64 3d 22 30 22 0a 09  "...failed="0"..
0db0: 28 0a 09 09 63 64 20 22 24 7b 70 6b 67 7d 22 20  (...cd "${pkg}" 
0dc0: 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65  >/dev/null 2>/de
0dd0: 76 2f 6e 75 6c 6c 20 7c 7c 20 65 78 69 74 20 31  v/null || exit 1
0de0: 0a 0a 09 09 2e 2f 62 75 69 6c 64 2e 73 68 20 33  ...../build.sh 3
0df0: 3e 26 31 20 34 3e 26 32 20 3e 20 62 75 69 6c 64  >&1 4>&2 > build
0e00: 2e 6c 6f 67 20 32 3e 26 31 20 7c 7c 20 65 78 69  .log 2>&1 || exi
0e10: 74 20 31 0a 09 29 20 7c 7c 20 66 61 69 6c 65 64  t 1..) || failed
0e20: 3d 22 31 22 0a 0a 09 69 66 20 5b 20 22 24 7b 66  ="1"...if [ "${f
0e30: 61 69 6c 65 64 7d 22 20 3d 20 22 31 22 20 5d 3b  ailed}" = "1" ];
0e40: 20 74 68 65 6e 0a 09 09 65 63 68 6f 20 22 20 66   then...echo " f
0e50: 61 69 6c 65 64 2e 22 0a 09 09 66 61 69 6c 65 64  ailed."...failed
0e60: 70 6b 67 73 3d 22 24 7b 66 61 69 6c 65 64 70 6b  pkgs="${failedpk
0e70: 67 73 7d 20 24 7b 70 6b 67 7d 22 0a 09 65 6c 73  gs} ${pkg}"..els
0e80: 65 0a 09 09 65 63 68 6f 20 22 20 64 6f 6e 65 2e  e...echo " done.
0e90: 22 0a 09 66 69 0a 0a 09 63 61 73 65 20 22 24 7b  "..fi...case "${
0ea0: 70 6b 67 7d 22 20 69 6e 0a 09 09 74 63 6c 29 0a  pkg}" in...tcl).
0eb0: 09 09 09 54 43 4c 43 4f 4e 46 49 47 44 49 52 3d  ...TCLCONFIGDIR=
0ec0: 24 28 66 69 6e 64 20 22 24 28 70 77 64 29 2f 74  $(find "$(pwd)/t
0ed0: 63 6c 2f 62 75 69 6c 64 22 20 2d 6e 61 6d 65 20  cl/build" -name 
0ee0: 74 63 6c 43 6f 6e 66 69 67 2e 73 68 20 7c 20 68  tclConfig.sh | h
0ef0: 65 61 64 20 2d 31 20 7c 20 73 65 64 20 27 73 40  ead -1 | sed 's@
0f00: 2f 5b 5e 2f 5d 2a 24 40 40 27 29 0a 09 09 09 54  /[^/]*$@@')....T
0f10: 43 4c 43 4f 4e 46 49 47 44 49 52 54 41 49 4c 3d  CLCONFIGDIRTAIL=
0f20: 22 24 28 62 61 73 65 6e 61 6d 65 20 22 24 7b 54  "$(basename "${T
0f30: 43 4c 43 4f 4e 46 49 47 44 49 52 7d 22 29 22 0a  CLCONFIGDIR}")".
0f40: 09 09 09 65 78 70 6f 72 74 20 54 43 4c 43 4f 4e  ...export TCLCON
0f50: 46 49 47 44 49 52 20 54 43 4c 43 4f 4e 46 49 47  FIGDIR TCLCONFIG
0f60: 44 49 52 54 41 49 4c 0a 09 09 09 3b 3b 0a 09 65  DIRTAIL....;;..e
0f70: 73 61 63 0a 0a 09 69 66 20 5b 20 22 24 7b 66 61  sac...if [ "${fa
0f80: 69 6c 65 64 7d 22 20 3d 20 22 31 22 20 5d 3b 20  iled}" = "1" ]; 
0f90: 74 68 65 6e 0a 09 09 62 75 69 6c 64 66 61 69 6c  then...buildfail
0fa0: 65 64 3d 22 31 22 0a 09 66 69 0a 64 6f 6e 65 0a  ed="1"..fi.done.
0fb0: 0a 69 66 20 5b 20 2d 6e 20 22 24 7b 66 61 69 6c  .if [ -n "${fail
0fc0: 65 64 70 6b 67 73 7d 22 20 5d 3b 20 74 68 65 6e  edpkgs}" ]; then
0fd0: 0a 09 65 63 68 6f 20 22 46 61 69 6c 65 64 20 74  ..echo "Failed t
0fe0: 6f 20 62 75 69 6c 64 3a 24 7b 66 61 69 6c 65 64  o build:${failed
0ff0: 70 6b 67 73 7d 22 0a 66 69 0a 0a 69 66 20 5b 20  pkgs}".fi..if [ 
1000: 22 24 7b 62 75 69 6c 64 66 61 69 6c 65 64 7d 22  "${buildfailed}"
1010: 20 21 3d 20 22 30 22 20 5d 3b 20 74 68 65 6e 0a   != "0" ]; then.
1020: 09 65 63 68 6f 20 27 57 41 52 4e 49 4e 47 3a 20  .echo 'WARNING: 
1030: 42 75 69 6c 64 20 69 73 20 6c 69 6b 65 6c 79 20  Build is likely 
1040: 69 6e 63 6f 6d 70 6c 65 74 65 20 6f 72 20 66 61  incomplete or fa
1050: 69 6c 65 64 2e 27 20 3e 26 32 0a 66 69 0a 0a 63  iled.' >&2.fi..c
1060: 70 20 27 6b 69 74 73 68 2f 62 75 69 6c 64 27 2f  p 'kitsh/build'/
1070: 6b 69 74 73 68 2d 2a 2f 6c 69 62 74 63 6c 6b 69  kitsh-*/libtclki
1080: 74 2a 20 2e 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20  t* . >/dev/null 
1090: 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 63 70 20 27  2>/dev/null.cp '
10a0: 6b 69 74 73 68 2f 62 75 69 6c 64 27 2f 6b 69 74  kitsh/build'/kit
10b0: 73 68 2d 2a 2f 6b 69 74 20 22 74 63 6c 6b 69 74  sh-*/kit "tclkit
10c0: 2d 24 7b 54 43 4c 56 45 52 53 7d 22 20 3e 2f 64  -${TCLVERS}" >/d
10d0: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e  ev/null 2>/dev/n
10e0: 75 6c 6c 0a 0a 66 6f 72 20 70 6f 73 74 73 63 72  ull..for postscr
10f0: 69 70 74 20 69 6e 20 63 6f 6d 6d 6f 6e 2f 70 6f  ipt in common/po
1100: 73 74 2f 2a 3b 20 64 6f 0a 09 69 66 20 5b 20 21  st/*; do..if [ !
1110: 20 2d 66 20 22 24 7b 70 6f 73 74 73 63 72 69 70   -f "${postscrip
1120: 74 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 63 6f  t}" ]; then...co
1130: 6e 74 69 6e 75 65 0a 09 66 69 0a 0a 09 22 24 7b  ntinue..fi..."${
1140: 70 6f 73 74 73 63 72 69 70 74 7d 22 0a 64 6f 6e  postscript}".don
1150: 65 0a 0a 65 78 69 74 20 22 24 7b 62 75 69 6c 64  e..exit "${build
1160: 66 61 69 6c 65 64 7d 22 0a                       failed}".