Hex Artifact Content

Artifact 440fd45f77c5f15db686e7c8ddffec3251ac77af:


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 69 66 20 5b 20 21 20 2d 66 20  bash..if [ ! -f 
0020: 27 62 75 69 6c 64 2e 73 68 27 20 5d 3b 20 74 68  'build.sh' ]; th
0030: 65 6e 0a 09 65 63 68 6f 20 27 45 52 52 4f 52 3a  en..echo 'ERROR:
0040: 20 54 68 69 73 20 73 63 72 69 70 74 20 6d 75 73   This script mus
0050: 74 20 62 65 20 72 75 6e 20 66 72 6f 6d 20 74 68  t be run from th
0060: 65 20 64 69 72 65 63 74 6f 72 79 20 69 74 20 69  e directory it i
0070: 73 20 69 6e 27 20 3e 26 32 0a 0a 09 65 78 69 74  s in' >&2...exit
0080: 20 31 0a 66 69 0a 69 66 20 5b 20 2d 7a 20 22 24   1.fi.if [ -z "$
0090: 7b 54 43 4c 56 45 52 53 7d 22 20 5d 3b 20 74 68  {TCLVERS}" ]; th
00a0: 65 6e 0a 09 65 63 68 6f 20 27 45 52 52 4f 52 3a  en..echo 'ERROR:
00b0: 20 54 68 65 20 54 43 4c 56 45 52 53 20 65 6e 76   The TCLVERS env
00c0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
00d0: 65 20 69 73 20 6e 6f 74 20 73 65 74 27 20 3e 26  e is not set' >&
00e0: 32 0a 0a 09 65 78 69 74 20 31 0a 66 69 0a 0a 4b  2...exit 1.fi..K
00f0: 49 54 53 48 56 45 52 53 3d 22 30 2e 30 22 0a 42  ITSHVERS="0.0".B
0100: 55 49 4c 44 44 49 52 3d 22 24 28 70 77 64 29 2f  UILDDIR="$(pwd)/
0110: 62 75 69 6c 64 2f 6b 69 74 73 68 2d 24 7b 4b 49  build/kitsh-${KI
0120: 54 53 48 56 45 52 53 7d 22 0a 4f 55 54 44 49 52  TSHVERS}".OUTDIR
0130: 3d 22 24 28 70 77 64 29 2f 6f 75 74 22 0a 49 4e  ="$(pwd)/out".IN
0140: 53 54 44 49 52 3d 22 24 28 70 77 64 29 2f 69 6e  STDIR="$(pwd)/in
0150: 73 74 22 0a 4f 54 48 45 52 50 4b 47 53 44 49 52  st".OTHERPKGSDIR
0160: 3d 22 24 28 70 77 64 29 2f 2e 2e 2f 22 0a 65 78  ="$(pwd)/../".ex
0170: 70 6f 72 74 20 4b 49 54 53 48 56 45 52 53 20 42  port KITSHVERS B
0180: 55 49 4c 44 44 49 52 20 4f 55 54 44 49 52 20 49  UILDDIR OUTDIR I
0190: 4e 53 54 44 49 52 20 4f 54 48 45 52 50 4b 47 53  NSTDIR OTHERPKGS
01a0: 44 49 52 0a 0a 23 20 53 65 74 20 63 6f 6e 66 69  DIR..# Set confi
01b0: 67 75 72 65 20 6f 70 74 69 6f 6e 73 20 66 6f 72  gure options for
01c0: 20 74 68 69 73 20 73 75 62 2d 70 72 6f 6a 65 63   this sub-projec
01d0: 74 0a 4c 44 46 4c 41 47 53 3d 22 24 7b 4b 43 5f  t.LDFLAGS="${KC_
01e0: 4b 49 54 53 48 5f 4c 44 46 4c 41 47 53 7d 22 0a  KITSH_LDFLAGS}".
01f0: 43 46 4c 41 47 53 3d 22 24 7b 4b 43 5f 4b 49 54  CFLAGS="${KC_KIT
0200: 53 48 5f 43 46 4c 41 47 53 7d 22 0a 43 50 50 46  SH_CFLAGS}".CPPF
0210: 4c 41 47 53 3d 22 24 7b 4b 43 5f 4b 49 54 53 48  LAGS="${KC_KITSH
0220: 5f 43 50 50 46 4c 41 47 53 7d 22 0a 4c 49 42 53  _CPPFLAGS}".LIBS
0230: 3d 22 24 7b 4b 43 5f 4b 49 54 53 48 5f 4c 49 42  ="${KC_KITSH_LIB
0240: 53 7d 22 0a 65 78 70 6f 72 74 20 4c 44 46 4c 41  S}".export LDFLA
0250: 47 53 20 43 46 4c 41 47 53 20 43 50 50 46 4c 41  GS CFLAGS CPPFLA
0260: 47 53 20 4c 49 42 53 0a 0a 69 66 20 5b 20 2d 7a  GS LIBS..if [ -z
0270: 20 22 24 7b 45 4e 41 42 4c 45 43 4f 4d 50 52 45   "${ENABLECOMPRE
0280: 53 53 49 4f 4e 7d 22 20 5d 3b 20 74 68 65 6e 0a  SSION}" ]; then.
0290: 09 45 4e 41 42 4c 45 43 4f 4d 50 52 45 53 53 49  .ENABLECOMPRESSI
02a0: 4f 4e 3d 22 31 22 0a 66 69 0a 65 78 70 6f 72 74  ON="1".fi.export
02b0: 20 45 4e 41 42 4c 45 43 4f 4d 50 52 45 53 53 49   ENABLECOMPRESSI
02c0: 4f 4e 0a 0a 72 6d 20 2d 72 66 20 27 62 75 69 6c  ON..rm -rf 'buil
02d0: 64 27 20 27 6f 75 74 27 20 27 69 6e 73 74 27 0a  d' 'out' 'inst'.
02e0: 6d 6b 64 69 72 20 27 6f 75 74 27 20 27 69 6e 73  mkdir 'out' 'ins
02f0: 74 27 20 7c 7c 20 65 78 69 74 20 31 0a 0a 0a 28  t' || exit 1...(
0300: 0a 09 63 70 20 2d 72 20 27 62 75 69 6c 64 73 72  ..cp -r 'buildsr
0310: 63 27 20 27 62 75 69 6c 64 27 0a 09 63 64 20 22  c' 'build'..cd "
0320: 24 7b 42 55 49 4c 44 44 49 52 7d 22 20 7c 7c 20  ${BUILDDIR}" || 
0330: 65 78 69 74 20 31 0a 0a 09 23 20 46 69 78 20 75  exit 1...# Fix u
0340: 70 20 61 72 63 68 69 76 65 73 20 74 68 61 74 20  p archives that 
0350: 54 63 6c 20 67 65 74 73 20 77 72 6f 6e 67 0a 09  Tcl gets wrong..
0360: 66 6f 72 20 61 72 63 68 69 76 65 20 69 6e 20 2e  for archive in .
0370: 2e 2f 2e 2e 2f 2e 2e 2f 74 63 6c 2f 69 6e 73 74  ./../../tcl/inst
0380: 2f 6c 69 62 2f 64 64 65 2a 2f 74 63 6c 64 64 65  /lib/dde*/tcldde
0390: 2a 2e 61 20 2e 2e 2f 2e 2e 2f 2e 2e 2f 74 63 6c  *.a ../../../tcl
03a0: 2f 69 6e 73 74 2f 6c 69 62 2f 72 65 67 2a 2f 74  /inst/lib/reg*/t
03b0: 63 6c 72 65 67 2a 2e 61 3b 20 64 6f 0a 09 09 69  clreg*.a; do...i
03c0: 66 20 5b 20 21 20 2d 66 20 22 24 7b 61 72 63 68  f [ ! -f "${arch
03d0: 69 76 65 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09  ive}" ]; then...
03e0: 09 63 6f 6e 74 69 6e 75 65 0a 09 09 66 69 0a 0a  .continue...fi..
03f0: 09 09 72 6d 20 2d 72 66 20 5f 5f 54 45 4d 50 5f  ..rm -rf __TEMP_
0400: 5f 0a 09 09 28 0a 09 09 09 6d 6b 64 69 72 20 5f  _...(....mkdir _
0410: 5f 54 45 4d 50 5f 5f 20 7c 7c 20 65 78 69 74 20  _TEMP__ || exit 
0420: 31 0a 09 09 09 63 64 20 5f 5f 54 45 4d 50 5f 5f  1....cd __TEMP__
0430: 0a 0a 09 09 09 23 23 20 50 61 74 63 68 20 61 72  .....## Patch ar
0440: 63 68 69 76 65 20 6e 61 6d 65 0a 09 09 09 61 72  chive name....ar
0450: 63 68 69 76 65 3d 22 2e 2e 2f 24 7b 61 72 63 68  chive="../${arch
0460: 69 76 65 7d 22 0a 0a 09 09 09 22 24 7b 41 52 3a  ive}"....."${AR:
0470: 2d 61 72 7d 22 20 78 20 22 24 7b 61 72 63 68 69  -ar}" x "${archi
0480: 76 65 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a  ve}" || exit 1..
0490: 09 09 09 72 6d 20 2d 66 20 22 24 7b 61 72 63 68  ...rm -f "${arch
04a0: 69 76 65 7d 22 0a 0a 09 09 09 22 24 7b 41 52 3a  ive}"....."${AR:
04b0: 2d 61 72 7d 22 20 63 72 20 22 24 7b 61 72 63 68  -ar}" cr "${arch
04c0: 69 76 65 7d 22 20 2a 2e 6f 20 7c 7c 20 65 78 69  ive}" *.o || exi
04d0: 74 20 31 0a 09 09 09 22 24 7b 52 41 4e 4c 49 42  t 1...."${RANLIB
04e0: 3a 2d 72 61 6e 6c 69 62 7d 22 20 22 24 7b 61 72  :-ranlib}" "${ar
04f0: 63 68 69 76 65 7d 22 20 7c 7c 20 74 72 75 65 0a  chive}" || true.
0500: 09 09 29 0a 09 64 6f 6e 65 0a 0a 09 23 20 43 6c  ..)..done...# Cl
0510: 65 61 6e 75 70 2c 20 6a 75 73 74 20 69 6e 63 61  eanup, just inca
0520: 73 65 20 74 68 65 20 69 6e 63 6f 6d 69 6e 67 20  se the incoming 
0530: 64 69 72 65 63 74 6f 72 79 20 77 61 73 20 6e 6f  directory was no
0540: 74 20 70 72 65 2d 63 6c 65 61 6e 65 64 0a 09 24  t pre-cleaned..$
0550: 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 64 69 73  {MAKE:-make} dis
0560: 74 63 6c 65 61 6e 20 3e 2f 64 65 76 2f 6e 75 6c  tclean >/dev/nul
0570: 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 09 72  l 2>/dev/null..r
0580: 6d 20 2d 72 66 20 27 73 74 61 72 70 61 63 6b 2e  m -rf 'starpack.
0590: 76 66 73 27 0a 0a 09 23 20 43 72 65 61 74 65 20  vfs'...# Create 
05a0: 56 46 53 20 64 69 72 65 63 74 6f 72 79 0a 09 6d  VFS directory..m
05b0: 6b 64 69 72 20 22 73 74 61 72 70 61 63 6b 2e 76  kdir "starpack.v
05c0: 66 73 22 0a 09 6d 6b 64 69 72 20 22 73 74 61 72  fs"..mkdir "star
05d0: 70 61 63 6b 2e 76 66 73 2f 6c 69 62 22 0a 0a 09  pack.vfs/lib"...
05e0: 23 23 20 43 6f 70 79 20 69 6e 20 61 6c 6c 20 62  ## Copy in all b
05f0: 75 69 6c 74 20 64 69 72 65 63 74 6f 72 69 65 73  uilt directories
0600: 0a 09 63 70 20 2d 72 20 22 24 7b 4f 54 48 45 52  ..cp -r "${OTHER
0610: 50 4b 47 53 44 49 52 7d 22 2f 2a 2f 6f 75 74 2f  PKGSDIR}"/*/out/
0620: 2a 20 27 73 74 61 72 70 61 63 6b 2e 76 66 73 2f  * 'starpack.vfs/
0630: 27 0a 0a 09 23 23 20 52 65 6e 61 6d 65 20 74 68  '...## Rename th
0640: 65 20 22 76 66 73 22 20 70 61 63 6b 61 67 65 20  e "vfs" package 
0650: 64 69 72 65 63 74 6f 72 79 20 74 6f 20 77 68 61  directory to wha
0660: 74 20 22 62 6f 6f 74 2e 74 63 6c 22 20 65 78 70  t "boot.tcl" exp
0670: 65 63 74 73 0a 09 6d 76 20 27 73 74 61 72 70 61  ects..mv 'starpa
0680: 63 6b 2e 76 66 73 2f 6c 69 62 27 2f 76 66 73 2a  ck.vfs/lib'/vfs*
0690: 20 27 73 74 61 72 70 61 63 6b 2e 76 66 73 2f 6c   'starpack.vfs/l
06a0: 69 62 2f 76 66 73 27 0a 0a 09 23 23 20 49 6e 73  ib/vfs'...## Ins
06b0: 74 61 6c 6c 20 22 62 6f 6f 74 2e 74 63 6c 22 0a  tall "boot.tcl".
06c0: 09 63 70 20 27 62 6f 6f 74 2e 74 63 6c 27 20 27  .cp 'boot.tcl' '
06d0: 73 74 61 72 70 61 63 6b 2e 76 66 73 2f 27 0a 0a  starpack.vfs/'..
06e0: 09 23 20 46 69 67 75 72 65 20 6f 75 74 20 69 66  .# Figure out if
06f0: 20 7a 6c 69 62 20 63 6f 6d 70 69 6c 65 64 20 28   zlib compiled (
0700: 69 66 20 6e 6f 74 2c 20 74 68 65 20 73 79 73 74  if not, the syst
0710: 65 6d 20 7a 6c 69 62 20 77 69 6c 6c 20 62 65 20  em zlib will be 
0720: 75 73 65 64 20 61 6e 64 20 77 65 0a 09 23 20 77  used and we..# w
0730: 69 6c 6c 20 6e 65 65 64 20 74 6f 20 68 61 76 65  ill need to have
0740: 20 74 68 61 74 20 70 72 65 73 65 6e 74 29 0a 09   that present)..
0750: 5a 4c 49 42 44 49 52 3d 22 24 28 63 64 20 22 24  ZLIBDIR="$(cd "$
0760: 7b 4f 54 48 45 52 50 4b 47 53 44 49 52 7d 2f 7a  {OTHERPKGSDIR}/z
0770: 6c 69 62 2f 69 6e 73 74 22 20 32 3e 2f 64 65 76  lib/inst" 2>/dev
0780: 2f 6e 75 6c 6c 20 26 26 20 70 77 64 29 22 0a 09  /null && pwd)"..
0790: 65 78 70 6f 72 74 20 5a 4c 49 42 44 49 52 0a 09  export ZLIBDIR..
07a0: 69 66 20 5b 20 2d 7a 20 22 24 7b 5a 4c 49 42 44  if [ -z "${ZLIBD
07b0: 49 52 7d 22 20 2d 6f 20 21 20 2d 66 20 22 24 7b  IR}" -o ! -f "${
07c0: 5a 4c 49 42 44 49 52 7d 2f 6c 69 62 2f 6c 69 62  ZLIBDIR}/lib/lib
07d0: 7a 2e 61 22 20 5d 3b 20 74 68 65 6e 0a 09 09 75  z.a" ]; then...u
07e0: 6e 73 65 74 20 5a 4c 49 42 44 49 52 0a 09 66 69  nset ZLIBDIR..fi
07f0: 0a 0a 09 23 20 43 6f 70 79 20 75 73 65 72 20 73  ...# Copy user s
0800: 70 65 63 69 66 69 65 64 20 6b 69 74 2e 72 63 20  pecified kit.rc 
0810: 61 6e 64 20 6b 69 74 2e 69 63 6f 20 69 6e 20 74  and kit.ico in t
0820: 6f 20 62 75 69 6c 64 20 64 69 72 65 63 74 6f 72  o build director
0830: 79 2c 20 69 66 20 66 6f 75 6e 64 0a 09 63 70 20  y, if found..cp 
0840: 22 24 7b 4b 49 54 43 52 45 41 54 4f 52 5f 49 43  "${KITCREATOR_IC
0850: 4f 4e 7d 22 20 22 24 7b 42 55 49 4c 44 44 49 52  ON}" "${BUILDDIR
0860: 7d 2f 6b 69 74 2e 69 63 6f 22 0a 09 63 70 20 22  }/kit.ico"..cp "
0870: 24 7b 4b 49 54 43 52 45 41 54 4f 52 5f 52 43 7d  ${KITCREATOR_RC}
0880: 22 20 22 24 7b 42 55 49 4c 44 44 49 52 7d 2f 6b  " "${BUILDDIR}/k
0890: 69 74 2e 72 63 22 0a 0a 09 23 20 49 6e 63 6c 75  it.rc"...# Inclu
08a0: 64 65 20 65 78 74 72 61 20 6f 62 6a 65 63 74 73  de extra objects
08b0: 20 61 73 20 72 65 71 75 69 72 65 64 0a 09 23 23   as required..##
08c0: 20 49 6e 69 74 69 61 6c 69 7a 65 20 6c 69 73 74   Initialize list
08d0: 20 6f 66 20 65 78 74 72 61 20 6f 62 6a 65 63 74   of extra object
08e0: 73 0a 09 45 58 54 52 41 5f 4f 42 4a 53 3d 22 22  s..EXTRA_OBJS=""
08f0: 0a 09 65 78 70 6f 72 74 20 45 58 54 52 41 5f 4f  ..export EXTRA_O
0900: 42 4a 53 0a 0a 09 23 23 20 54 6b 20 52 65 73 6f  BJS...## Tk Reso
0910: 75 72 63 65 73 20 28 6e 65 65 64 65 64 20 66 6f  urces (needed fo
0920: 72 20 57 69 6e 33 32 20 73 75 70 70 6f 72 74 29  r Win32 support)
0930: 20 2d 2d 20 72 65 6d 6f 76 65 20 6b 69 74 2d 66   -- remove kit-f
0940: 6f 75 6e 64 20 72 65 73 6f 75 72 63 65 73 20 74  ound resources t
0950: 6f 20 70 72 65 76 65 6e 74 20 74 68 65 20 73 79  o prevent the sy
0960: 6d 62 6f 6c 73 20 66 72 6f 6d 20 62 65 69 6e 67  mbols from being
0970: 20 69 6e 20 63 6f 6e 66 6c 69 63 74 0a 09 54 4b   in conflict..TK
0980: 44 49 52 3d 22 24 28 63 64 20 22 24 7b 4f 54 48  DIR="$(cd "${OTH
0990: 45 52 50 4b 47 53 44 49 52 7d 2f 74 6b 2f 69 6e  ERPKGSDIR}/tk/in
09a0: 73 74 22 20 26 26 20 70 77 64 29 22 0a 09 54 4b  st" && pwd)"..TK
09b0: 52 53 52 43 3d 22 24 7b 54 4b 44 49 52 7d 2f 6c  RSRC="${TKDIR}/l
09c0: 69 62 2f 74 6b 62 61 73 65 2e 72 65 73 2e 6f 22  ib/tkbase.res.o"
09d0: 0a 09 69 66 20 5b 20 2d 6e 20 22 24 7b 54 4b 44  ..if [ -n "${TKD
09e0: 49 52 7d 22 20 2d 61 20 2d 66 20 22 24 7b 54 4b  IR}" -a -f "${TK
09f0: 52 53 52 43 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  RSRC}" ]; then..
0a00: 09 45 58 54 52 41 5f 4f 42 4a 53 3d 22 24 7b 45  .EXTRA_OBJS="${E
0a10: 58 54 52 41 5f 4f 42 4a 53 7d 20 24 7b 54 4b 52  XTRA_OBJS} ${TKR
0a20: 53 52 43 7d 22 0a 0a 09 09 65 63 68 6f 20 27 20  SRC}"....echo ' 
0a30: 2a 2a 2a 20 52 65 6d 6f 76 69 6e 67 20 22 6b 69  *** Removing "ki
0a40: 74 2e 72 63 22 20 73 69 6e 63 65 20 77 65 20 68  t.rc" since we h
0a50: 61 76 65 20 54 6b 20 77 69 74 68 20 69 74 73 20  ave Tk with its 
0a60: 6f 77 6e 20 72 65 73 6f 75 72 63 65 20 66 69 6c  own resource fil
0a70: 65 27 0a 0a 09 09 72 6d 20 2d 66 20 22 24 7b 42  e'....rm -f "${B
0a80: 55 49 4c 44 44 49 52 7d 2f 6b 69 74 2e 72 63 22  UILDDIR}/kit.rc"
0a90: 0a 09 66 69 0a 0a 09 23 20 44 65 74 65 72 6d 69  ..fi...# Determi
0aa0: 6e 65 20 69 66 20 74 61 72 67 65 74 20 69 73 20  ne if target is 
0ab0: 4b 69 74 44 4c 4c 20 6f 72 20 4b 69 74 53 48 0a  KitDLL or KitSH.
0ac0: 09 69 66 20 5b 20 22 24 7b 4b 49 54 54 41 52 47  .if [ "${KITTARG
0ad0: 45 54 7d 22 20 3d 20 22 6b 69 74 64 6c 6c 22 20  ET}" = "kitdll" 
0ae0: 5d 3b 20 74 68 65 6e 0a 09 09 43 4f 4e 46 49 47  ]; then...CONFIG
0af0: 55 52 45 45 58 54 52 41 3d 22 24 7b 43 4f 4e 46  UREEXTRA="${CONF
0b00: 49 47 55 52 45 45 58 54 52 41 7d 20 2d 2d 65 6e  IGUREEXTRA} --en
0b10: 61 62 6c 65 2d 6b 69 74 64 6c 6c 22 0a 09 66 69  able-kitdll"..fi
0b20: 0a 0a 09 23 20 43 6f 6d 70 69 6c 65 20 4b 69 74  ...# Compile Kit
0b30: 0a 09 69 66 20 5b 20 2d 7a 20 22 24 7b 5a 4c 49  ..if [ -z "${ZLI
0b40: 42 44 49 52 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  BDIR}" ]; then..
0b50: 09 65 63 68 6f 20 22 52 75 6e 6e 69 6e 67 3a 20  .echo "Running: 
0b60: 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d 77 69  ./configure --wi
0b70: 74 68 2d 74 63 6c 3d 5c 22 24 7b 54 43 4c 43 4f  th-tcl=\"${TCLCO
0b80: 4e 46 49 47 44 49 52 7d 5c 22 20 24 7b 43 4f 4e  NFIGDIR}\" ${CON
0b90: 46 49 47 55 52 45 45 58 54 52 41 7d 22 0a 0a 09  FIGUREEXTRA}"...
0ba0: 09 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d 77  ../configure --w
0bb0: 69 74 68 2d 74 63 6c 3d 22 24 7b 54 43 4c 43 4f  ith-tcl="${TCLCO
0bc0: 4e 46 49 47 44 49 52 7d 22 20 24 7b 43 4f 4e 46  NFIGDIR}" ${CONF
0bd0: 49 47 55 52 45 45 58 54 52 41 7d 0a 09 65 6c 73  IGUREEXTRA}..els
0be0: 65 0a 09 09 65 63 68 6f 20 22 52 75 6e 6e 69 6e  e...echo "Runnin
0bf0: 67 3a 20 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d  g: ./configure -
0c00: 2d 77 69 74 68 2d 74 63 6c 3d 5c 22 24 7b 54 43  -with-tcl=\"${TC
0c10: 4c 43 4f 4e 46 49 47 44 49 52 7d 5c 22 20 2d 2d  LCONFIGDIR}\" --
0c20: 77 69 74 68 2d 7a 6c 69 62 3d 5c 22 24 7b 5a 4c  with-zlib=\"${ZL
0c30: 49 42 44 49 52 7d 5c 22 20 24 7b 43 4f 4e 46 49  IBDIR}\" ${CONFI
0c40: 47 55 52 45 45 58 54 52 41 7d 22 0a 0a 09 09 2e  GUREEXTRA}".....
0c50: 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d 77 69 74  /configure --wit
0c60: 68 2d 74 63 6c 3d 22 24 7b 54 43 4c 43 4f 4e 46  h-tcl="${TCLCONF
0c70: 49 47 44 49 52 7d 22 20 2d 2d 77 69 74 68 2d 7a  IGDIR}" --with-z
0c80: 6c 69 62 3d 22 24 7b 5a 4c 49 42 44 49 52 7d 22  lib="${ZLIBDIR}"
0c90: 20 24 7b 43 4f 4e 46 49 47 55 52 45 45 58 54 52   ${CONFIGUREEXTR
0ca0: 41 7d 0a 09 66 69 0a 0a 09 65 63 68 6f 20 22 52  A}..fi...echo "R
0cb0: 75 6e 6e 69 6e 67 3a 20 24 7b 4d 41 4b 45 3a 2d  unning: ${MAKE:-
0cc0: 6d 61 6b 65 7d 20 54 43 4c 53 48 5f 4e 41 54 49  make} TCLSH_NATI
0cd0: 56 45 3d 5c 22 24 7b 54 43 4c 53 48 5f 4e 41 54  VE=\"${TCLSH_NAT
0ce0: 49 56 45 7d 5c 22 22 0a 09 24 7b 4d 41 4b 45 3a  IVE}\""..${MAKE:
0cf0: 2d 6d 61 6b 65 7d 20 54 43 4c 53 48 5f 4e 41 54  -make} TCLSH_NAT
0d00: 49 56 45 3d 22 24 7b 54 43 4c 53 48 5f 4e 41 54  IVE="${TCLSH_NAT
0d10: 49 56 45 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a  IVE}" || exit 1.
0d20: 0a 09 23 20 53 74 72 69 70 20 74 68 65 20 6b 69  ..# Strip the ki
0d30: 74 20 6f 66 20 61 6c 6c 20 73 79 6d 62 6f 6c 73  t of all symbols
0d40: 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 0a 09 22  , if possible.."
0d50: 24 7b 53 54 52 49 50 3a 2d 73 74 72 69 70 7d 22  ${STRIP:-strip}"
0d60: 20 6b 69 74 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20   kit >/dev/null 
0d70: 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 09 22 24 7b  2>/dev/null.."${
0d80: 53 54 52 49 50 3a 2d 73 74 72 69 70 7d 22 20 2d  STRIP:-strip}" -
0d90: 67 20 6c 69 62 74 63 6c 6b 69 74 2a 20 3e 2f 64  g libtclkit* >/d
0da0: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e  ev/null 2>/dev/n
0db0: 75 6c 6c 0a 0a 09 23 20 46 69 78 20 75 70 20 57  ull...# Fix up W
0dc0: 69 6e 33 32 20 44 4c 4c 20 6e 61 6d 65 73 0a 09  in32 DLL names..
0dd0: 23 23 20 2e 44 4c 4c 2e 41 20 2d 3e 20 2e 4c 49  ## .DLL.A -> .LI
0de0: 42 0a 09 66 6f 72 20 66 69 6c 65 20 69 6e 20 6c  B..for file in l
0df0: 69 62 74 63 6c 6b 69 74 2a 2e 64 6c 6c 2e 61 3b  ibtclkit*.dll.a;
0e00: 20 64 6f 0a 09 09 69 66 20 5b 20 21 20 2d 66 20   do...if [ ! -f 
0e10: 22 24 7b 66 69 6c 65 7d 22 20 5d 3b 20 74 68 65  "${file}" ]; the
0e20: 6e 0a 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 09  n....continue...
0e30: 66 69 0a 0a 09 09 6e 65 77 66 69 6c 65 3d 22 24  fi....newfile="$
0e40: 28 62 61 73 65 6e 61 6d 65 20 22 24 7b 66 69 6c  (basename "${fil
0e50: 65 7d 22 20 2e 64 6c 6c 2e 61 29 2e 6c 69 62 22  e}" .dll.a).lib"
0e60: 0a 09 09 6d 76 20 22 24 7b 66 69 6c 65 7d 22 20  ...mv "${file}" 
0e70: 22 24 7b 6e 65 77 66 69 6c 65 7d 22 0a 09 64 6f  "${newfile}"..do
0e80: 6e 65 0a 0a 09 23 23 20 2e 44 4c 4c 2e 44 45 46  ne...## .DLL.DEF
0e90: 20 2d 3e 20 2e 44 45 46 0a 09 66 6f 72 20 66 69   -> .DEF..for fi
0ea0: 6c 65 20 69 6e 20 6c 69 62 74 63 6c 6b 69 74 2a  le in libtclkit*
0eb0: 2e 64 6c 6c 2e 64 65 66 3b 20 64 6f 0a 09 09 69  .dll.def; do...i
0ec0: 66 20 5b 20 21 20 2d 66 20 22 24 7b 66 69 6c 65  f [ ! -f "${file
0ed0: 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 63 6f  }" ]; then....co
0ee0: 6e 74 69 6e 75 65 0a 09 09 66 69 0a 0a 09 09 6e  ntinue...fi....n
0ef0: 65 77 66 69 6c 65 3d 22 24 28 62 61 73 65 6e 61  ewfile="$(basena
0f00: 6d 65 20 22 24 7b 66 69 6c 65 7d 22 20 2e 64 6c  me "${file}" .dl
0f10: 6c 2e 64 65 66 29 2e 64 65 66 22 0a 09 09 6d 76  l.def).def"...mv
0f20: 20 22 24 7b 66 69 6c 65 7d 22 20 22 24 7b 6e 65   "${file}" "${ne
0f30: 77 66 69 6c 65 7d 22 0a 09 64 6f 6e 65 0a 0a 09  wfile}"..done...
0f40: 23 20 44 65 74 65 72 6d 69 6e 65 20 6e 61 6d 65  # Determine name
0f50: 20 6f 66 20 63 72 65 61 74 65 64 20 6b 69 74 0a   of created kit.
0f60: 09 4b 49 54 54 41 52 47 45 54 5f 4e 41 4d 45 3d  .KITTARGET_NAME=
0f70: 27 5f 5f 65 72 72 6f 72 5f 5f 27 0a 09 69 66 20  '__error__'..if 
0f80: 5b 20 22 24 7b 4b 49 54 54 41 52 47 45 54 7d 22  [ "${KITTARGET}"
0f90: 20 3d 20 22 6b 69 74 64 6c 6c 22 20 5d 3b 20 74   = "kitdll" ]; t
0fa0: 68 65 6e 0a 09 09 23 23 20 46 69 6e 64 20 74 68  hen...## Find th
0fb0: 65 20 6c 69 62 72 61 72 79 20 63 72 65 61 74 65  e library create
0fc0: 64 0a 09 09 66 6f 72 20 63 68 6b 6b 69 74 74 61  d...for chkkitta
0fd0: 72 67 65 74 20 69 6e 20 6c 69 62 74 63 6c 6b 69  rget in libtclki
0fe0: 74 2a 2e 2a 3b 20 64 6f 0a 09 09 09 69 66 20 5b  t*.*; do....if [
0ff0: 20 21 20 2d 66 20 22 24 7b 63 68 6b 6b 69 74 74   ! -f "${chkkitt
1000: 61 72 67 65 74 7d 22 20 5d 3b 20 74 68 65 6e 0a  arget}" ]; then.
1010: 09 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 09 09  ....continue....
1020: 66 69 0a 0a 09 09 09 69 66 20 65 63 68 6f 20 22  fi.....if echo "
1030: 24 7b 63 68 6b 6b 69 74 74 61 72 67 65 74 7d 22  ${chkkittarget}"
1040: 20 7c 20 65 67 72 65 70 20 27 5c 2e 28 6c 69 62   | egrep '\.(lib
1050: 7c 64 65 66 7c 61 29 24 27 3b 20 74 68 65 6e 0a  |def|a)$'; then.
1060: 09 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 09 09  ....continue....
1070: 66 69 0a 0a 09 09 09 4b 49 54 54 41 52 47 45 54  fi.....KITTARGET
1080: 5f 4e 41 4d 45 3d 22 24 7b 63 68 6b 6b 69 74 74  _NAME="${chkkitt
1090: 61 72 67 65 74 7d 22 0a 0a 09 09 09 62 72 65 61  arget}".....brea
10a0: 6b 0a 09 09 64 6f 6e 65 0a 0a 09 09 23 23 20 41  k...done....## A
10b0: 6c 73 6f 20 63 72 65 61 74 65 20 61 6e 20 65 78  lso create an ex
10c0: 65 63 75 74 61 62 6c 65 20 6e 61 6d 65 64 20 22  ecutable named "
10d0: 6b 69 74 22 20 73 6f 20 74 68 61 74 20 77 65 20  kit" so that we 
10e0: 63 61 6e 20 72 75 6e 20 69 74 20 6c 61 74 65 72  can run it later
10f0: 0a 09 09 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d  ...${MAKE:-make}
1100: 20 74 63 6c 73 68 0a 09 09 6d 76 20 74 63 6c 73   tclsh...mv tcls
1110: 68 20 6b 69 74 0a 09 65 6c 73 65 0a 09 09 23 23  h kit..else...##
1120: 20 54 68 65 20 65 78 65 63 75 74 61 62 6c 65 20   The executable 
1130: 69 73 20 61 6c 77 61 79 73 20 6e 61 6d 65 64 20  is always named 
1140: 22 6b 69 74 22 0a 09 09 4b 49 54 54 41 52 47 45  "kit"...KITTARGE
1150: 54 5f 4e 41 4d 45 3d 27 6b 69 74 27 0a 09 66 69  T_NAME='kit'..fi
1160: 0a 09 65 78 70 6f 72 74 20 4b 49 54 54 41 52 47  ..export KITTARG
1170: 45 54 5f 4e 41 4d 45 0a 0a 09 69 66 20 5b 20 22  ET_NAME...if [ "
1180: 78 24 7b 4b 49 54 54 41 52 47 45 54 5f 4e 41 4d  x${KITTARGET_NAM
1190: 45 7d 22 20 3d 20 27 78 5f 5f 65 72 72 6f 72 5f  E}" = 'x__error_
11a0: 5f 27 20 5d 3b 20 74 68 65 6e 0a 09 09 65 63 68  _' ]; then...ech
11b0: 6f 20 22 46 61 69 6c 65 64 20 74 6f 20 6c 6f 63  o "Failed to loc
11c0: 61 74 65 20 6b 69 74 20 74 61 72 67 65 74 21 22  ate kit target!"
11d0: 20 3e 26 32 0a 0a 09 09 65 78 69 74 20 31 0a 09   >&2....exit 1..
11e0: 66 69 0a 0a 09 23 20 49 6e 74 61 6c 6c 20 56 46  fi...# Intall VF
11f0: 53 20 6f 6e 74 6f 20 6b 69 74 0a 09 23 23 20 44  S onto kit..## D
1200: 65 74 65 72 6d 69 6e 65 20 69 66 20 77 65 20 68  etermine if we h
1210: 61 76 65 20 61 20 54 63 6c 6b 69 74 20 74 6f 20  ave a Tclkit to 
1220: 64 6f 20 74 68 69 73 20 77 6f 72 6b 0a 09 54 43  do this work..TC
1230: 4c 4b 49 54 3d 22 24 7b 54 43 4c 4b 49 54 3a 2d  LKIT="${TCLKIT:-
1240: 74 63 6c 6b 69 74 7d 22 0a 09 69 66 20 65 63 68  tclkit}"..if ech
1250: 6f 20 27 65 78 69 74 20 30 27 20 7c 20 22 24 7b  o 'exit 0' | "${
1260: 54 43 4c 4b 49 54 7d 22 20 3e 2f 64 65 76 2f 6e  TCLKIT}" >/dev/n
1270: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b  ull 2>/dev/null;
1280: 20 74 68 65 6e 0a 09 09 23 23 20 49 6e 73 74 61   then...## Insta
1290: 6c 6c 20 75 73 69 6e 67 20 65 78 69 73 74 69 6e  ll using existin
12a0: 67 20 54 63 6c 6b 69 74 0a 09 09 23 23 23 20 43  g Tclkit...### C
12b0: 61 6c 6c 20 69 6e 73 74 61 6c 6c 65 72 0a 09 09  all installer...
12c0: 65 63 68 6f 20 22 52 75 6e 6e 69 6e 67 3a 20 5c  echo "Running: \
12d0: 22 24 7b 54 43 4c 4b 49 54 7d 5c 22 20 69 6e 73  "${TCLKIT}\" ins
12e0: 74 61 6c 6c 76 66 73 2e 74 63 6c 20 5c 22 24 7b  tallvfs.tcl \"${
12f0: 4b 49 54 54 41 52 47 45 54 5f 4e 41 4d 45 7d 5c  KITTARGET_NAME}\
1300: 22 20 73 74 61 72 70 61 63 6b 2e 76 66 73 20 5c  " starpack.vfs \
1310: 22 24 7b 45 4e 41 42 4c 45 43 4f 4d 50 52 45 53  "${ENABLECOMPRES
1320: 53 49 4f 4e 7d 5c 22 22 0a 09 09 22 24 7b 54 43  SION}\""..."${TC
1330: 4c 4b 49 54 7d 22 20 69 6e 73 74 61 6c 6c 76 66  LKIT}" installvf
1340: 73 2e 74 63 6c 20 22 24 7b 4b 49 54 54 41 52 47  s.tcl "${KITTARG
1350: 45 54 5f 4e 41 4d 45 7d 22 20 73 74 61 72 70 61  ET_NAME}" starpa
1360: 63 6b 2e 76 66 73 20 22 24 7b 45 4e 41 42 4c 45  ck.vfs "${ENABLE
1370: 43 4f 4d 50 52 45 53 53 49 4f 4e 7d 22 20 7c 7c  COMPRESSION}" ||
1380: 20 65 78 69 74 20 31 0a 09 65 6c 73 65 0a 09 09   exit 1..else...
1390: 23 23 20 42 6f 6f 74 73 74 72 61 70 20 28 63 61  ## Bootstrap (ca
13a0: 6e 6e 6f 74 20 63 72 6f 73 73 2d 63 6f 6d 70 69  nnot cross-compi
13b0: 6c 65 29 0a 09 09 23 23 23 20 43 61 6c 6c 20 69  le)...### Call i
13c0: 6e 73 74 61 6c 6c 65 72 0a 09 09 63 70 20 6b 69  nstaller...cp ki
13d0: 74 20 72 75 6e 6b 69 74 0a 09 09 65 63 68 6f 20  t runkit...echo 
13e0: 22 73 65 74 20 61 72 67 76 20 5b 6c 69 73 74 20  "set argv [list 
13f0: 7b 24 7b 4b 49 54 54 41 52 47 45 54 5f 4e 41 4d  {${KITTARGET_NAM
1400: 45 7d 7d 20 73 74 61 72 70 61 63 6b 2e 76 66 73  E}} starpack.vfs
1410: 20 7b 24 7b 45 4e 41 42 4c 45 43 4f 4d 50 52 45   {${ENABLECOMPRE
1420: 53 53 49 4f 4e 7d 7d 5d 22 20 3e 20 73 65 74 75  SSION}}]" > setu
1430: 70 2e 74 63 6c 0a 09 09 65 63 68 6f 20 27 69 66  p.tcl...echo 'if
1440: 20 7b 5b 63 61 74 63 68 20 7b 20 63 6c 6f 63 6b   {[catch { clock
1450: 20 73 65 63 6f 6e 64 73 20 7d 5d 7d 20 7b 20 70   seconds }]} { p
1460: 72 6f 63 20 63 6c 6f 63 6b 20 61 72 67 73 20 7b  roc clock args {
1470: 20 72 65 74 75 72 6e 20 30 20 7d 20 7d 27 20 3e   return 0 } }' >
1480: 3e 20 73 65 74 75 70 2e 74 63 6c 0a 09 09 65 63  > setup.tcl...ec
1490: 68 6f 20 27 73 6f 75 72 63 65 20 69 6e 73 74 61  ho 'source insta
14a0: 6c 6c 76 66 73 2e 74 63 6c 27 20 3e 3e 20 73 65  llvfs.tcl' >> se
14b0: 74 75 70 2e 74 63 6c 0a 0a 09 09 65 63 68 6f 20  tup.tcl....echo 
14c0: 27 52 75 6e 6e 69 6e 67 3a 20 65 63 68 6f 20 7c  'Running: echo |
14d0: 20 2e 2f 72 75 6e 6b 69 74 27 0a 09 09 65 63 68   ./runkit'...ech
14e0: 6f 20 7c 20 2e 2f 72 75 6e 6b 69 74 20 73 65 74  o | ./runkit set
14f0: 75 70 2e 74 63 6c 20 7c 7c 20 65 78 69 74 20 31  up.tcl || exit 1
1500: 0a 09 66 69 0a 0a 09 23 20 43 6c 65 61 6e 75 70  ..fi...# Cleanup
1510: 0a 09 69 66 20 5b 20 22 24 7b 4b 49 54 54 41 52  ..if [ "${KITTAR
1520: 47 45 54 7d 22 20 3d 20 22 6b 69 74 64 6c 6c 22  GET}" = "kitdll"
1530: 20 5d 3b 20 74 68 65 6e 0a 09 09 23 23 20 52 65   ]; then...## Re
1540: 6d 6f 76 65 20 62 75 69 6c 74 20 69 6e 74 65 72  move built inter
1550: 70 72 65 74 65 72 73 20 69 66 20 77 65 20 61 72  preters if we ar
1560: 65 20 62 75 69 6c 64 69 6e 67 20 4b 69 74 44 4c  e building KitDL
1570: 4c 20 2d 2d 0a 09 09 23 23 20 74 68 65 79 27 72  L --...## they'r
1580: 65 20 6a 75 73 74 20 74 69 6e 79 20 73 74 75 62  e just tiny stub
1590: 73 20 61 6e 79 77 61 79 0a 09 09 72 6d 20 2d 66  s anyway...rm -f
15a0: 20 6b 69 74 20 72 75 6e 6b 69 74 0a 09 66 69 0a   kit runkit..fi.
15b0: 0a 09 65 78 69 74 20 30 0a 29 20 7c 7c 20 65 78  ..exit 0.) || ex
15c0: 69 74 20 31 0a 0a 65 78 69 74 20 30 0a           it 1..exit 0.