Hex Artifact Content

Artifact 49efe2ef777547cd28853944f9a496d6b1eab39c:


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 66 20 27 62 75 69 6c 64 2e 73   [ ! -f 'build.s
0020: 68 27 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f  h' ]; then..echo
0030: 20 27 45 52 52 4f 52 3a 20 54 68 69 73 20 73 63   'ERROR: This sc
0040: 72 69 70 74 20 6d 75 73 74 20 62 65 20 72 75 6e  ript must be run
0050: 20 66 72 6f 6d 20 74 68 65 20 64 69 72 65 63 74   from the direct
0060: 6f 72 79 20 69 74 20 69 73 20 69 6e 27 20 3e 26  ory it is in' >&
0070: 32 0a 0a 09 65 78 69 74 20 31 0a 66 69 0a 69 66  2...exit 1.fi.if
0080: 20 5b 20 2d 7a 20 22 24 7b 54 43 4c 56 45 52 53   [ -z "${TCLVERS
0090: 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f  }" ]; then..echo
00a0: 20 27 45 52 52 4f 52 3a 20 54 68 65 20 54 43 4c   'ERROR: The TCL
00b0: 56 45 52 53 20 65 6e 76 69 72 6f 6e 6d 65 6e 74  VERS environment
00c0: 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 74   variable is not
00d0: 20 73 65 74 27 20 3e 26 32 0a 0a 09 65 78 69 74   set' >&2...exit
00e0: 20 31 0a 66 69 0a 0a 53 52 43 3d 22 73 72 63 2f   1.fi..SRC="src/
00f0: 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2e 74 61  tcl${TCLVERS}.ta
0100: 72 2e 67 7a 22 0a 53 52 43 55 52 4c 3d 22 68 74  r.gz".SRCURL="ht
0110: 74 70 3a 2f 2f 70 72 64 6f 77 6e 6c 6f 61 64 73  tp://prdownloads
0120: 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74  .sourceforge.net
0130: 2f 74 63 6c 2f 74 63 6c 24 7b 54 43 4c 56 45 52  /tcl/tcl${TCLVER
0140: 53 7d 2d 73 72 63 2e 74 61 72 2e 67 7a 22 0a 42  S}-src.tar.gz".B
0150: 55 49 4c 44 44 49 52 3d 22 24 28 70 77 64 29 2f  UILDDIR="$(pwd)/
0160: 62 75 69 6c 64 2f 74 63 6c 24 7b 54 43 4c 56 45  build/tcl${TCLVE
0170: 52 53 7d 22 0a 4f 55 54 44 49 52 3d 22 24 28 70  RS}".OUTDIR="$(p
0180: 77 64 29 2f 6f 75 74 22 0a 49 4e 53 54 44 49 52  wd)/out".INSTDIR
0190: 3d 22 24 28 70 77 64 29 2f 69 6e 73 74 22 0a 50  ="$(pwd)/inst".P
01a0: 41 54 43 48 53 43 52 49 50 54 44 49 52 3d 22 24  ATCHSCRIPTDIR="$
01b0: 28 70 77 64 29 2f 70 61 74 63 68 73 63 72 69 70  (pwd)/patchscrip
01c0: 74 73 22 0a 50 41 54 43 48 44 49 52 3d 22 24 28  ts".PATCHDIR="$(
01d0: 70 77 64 29 2f 70 61 74 63 68 65 73 22 0a 65 78  pwd)/patches".ex
01e0: 70 6f 72 74 20 53 52 43 20 53 52 43 55 52 4c 20  port SRC SRCURL 
01f0: 42 55 49 4c 44 44 49 52 20 4f 55 54 44 49 52 20  BUILDDIR OUTDIR 
0200: 49 4e 53 54 44 49 52 20 50 41 54 43 48 53 43 52  INSTDIR PATCHSCR
0210: 49 50 54 44 49 52 20 50 41 54 43 48 44 49 52 0a  IPTDIR PATCHDIR.
0220: 0a 72 6d 20 2d 72 66 20 27 62 75 69 6c 64 27 20  .rm -rf 'build' 
0230: 27 6f 75 74 27 20 27 69 6e 73 74 27 0a 6d 6b 64  'out' 'inst'.mkd
0240: 69 72 20 27 62 75 69 6c 64 27 20 27 6f 75 74 27  ir 'build' 'out'
0250: 20 27 69 6e 73 74 27 20 7c 7c 20 65 78 69 74 20   'inst' || exit 
0260: 31 0a 0a 69 66 20 5b 20 21 20 2d 66 20 22 24 7b  1..if [ ! -f "${
0270: 53 52 43 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 6d  SRC}" ]; then..m
0280: 6b 64 69 72 20 27 73 72 63 27 20 3e 2f 64 65 76  kdir 'src' >/dev
0290: 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c  /null 2>/dev/nul
02a0: 6c 0a 0a 09 69 66 20 65 63 68 6f 20 22 24 7b 54  l...if echo "${T
02b0: 43 4c 56 45 52 53 7d 22 20 7c 20 67 72 65 70 20  CLVERS}" | grep 
02c0: 27 5e 63 76 73 5f 27 20 3e 2f 64 65 76 2f 6e 75  '^cvs_' >/dev/nu
02d0: 6c 6c 3b 20 74 68 65 6e 0a 09 09 43 56 53 54 41  ll; then...CVSTA
02e0: 47 3d 24 28 65 63 68 6f 20 22 24 7b 54 43 4c 56  G=$(echo "${TCLV
02f0: 45 52 53 7d 22 20 7c 20 73 65 64 20 27 73 2f 5e  ERS}" | sed 's/^
0300: 63 76 73 5f 2f 2f 67 27 29 0a 09 09 69 66 20 5b  cvs_//g')...if [
0310: 20 22 24 7b 43 56 53 54 41 47 7d 22 20 3d 20 22   "${CVSTAG}" = "
0320: 48 45 41 44 22 20 5d 3b 20 74 68 65 6e 0a 09 09  HEAD" ]; then...
0330: 09 43 56 53 54 41 47 3d 22 74 72 75 6e 6b 22 0a  .CVSTAG="trunk".
0340: 09 09 66 69 0a 09 09 65 78 70 6f 72 74 20 43 56  ..fi...export CV
0350: 53 54 41 47 0a 0a 09 09 28 0a 09 09 09 63 64 20  STAG....(....cd 
0360: 73 72 63 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09  src || exit 1...
0370: 09 09 72 6d 20 2d 66 20 22 74 6d 70 2d 74 63 6c  ..rm -f "tmp-tcl
0380: 2e 7a 69 70 22 20 22 74 6d 70 2d 69 74 63 6c 2e  .zip" "tmp-itcl.
0390: 7a 69 70 22 20 22 74 6d 70 2d 74 68 72 65 61 64  zip" "tmp-thread
03a0: 2e 7a 69 70 22 20 22 74 6d 70 2d 74 63 6c 63 6f  .zip" "tmp-tclco
03b0: 6e 66 69 67 2e 7a 69 70 22 0a 09 09 09 77 67 65  nfig.zip"....wge
03c0: 74 20 2d 4f 20 22 74 6d 70 2d 74 63 6c 2e 7a 69  t -O "tmp-tcl.zi
03d0: 70 22 20 22 68 74 74 70 3a 2f 2f 72 6b 65 65 6e  p" "http://rkeen
03e0: 65 2e 6f 72 67 2f 70 72 6f 6a 65 63 74 73 2f 74  e.org/projects/t
03f0: 63 6c 2f 74 63 6c 2e 66 6f 73 73 69 6c 2f 7a 69  cl/tcl.fossil/zi
0400: 70 2f 74 63 6c 2d 24 7b 43 56 53 54 41 47 7d 2e  p/tcl-${CVSTAG}.
0410: 7a 69 70 3f 75 75 69 64 3d 24 7b 43 56 53 54 41  zip?uuid=${CVSTA
0420: 47 7d 22 20 7c 7c 20 72 6d 20 2d 66 20 22 74 6d  G}" || rm -f "tm
0430: 70 2d 74 63 6c 2e 7a 69 70 22 0a 09 09 09 77 67  p-tcl.zip"....wg
0440: 65 74 20 2d 4f 20 22 74 6d 70 2d 69 74 63 6c 2e  et -O "tmp-itcl.
0450: 7a 69 70 22 20 22 68 74 74 70 3a 2f 2f 72 6b 65  zip" "http://rke
0460: 65 6e 65 2e 6f 72 67 2f 70 72 6f 6a 65 63 74 73  ene.org/projects
0470: 2f 74 63 6c 2f 69 74 63 6c 2e 66 6f 73 73 69 6c  /tcl/itcl.fossil
0480: 2f 7a 69 70 2f 69 74 63 6c 2d 24 7b 43 56 53 54  /zip/itcl-${CVST
0490: 41 47 7d 2e 7a 69 70 3f 75 75 69 64 3d 24 7b 43  AG}.zip?uuid=${C
04a0: 56 53 54 41 47 7d 22 20 7c 7c 20 72 6d 20 2d 66  VSTAG}" || rm -f
04b0: 20 22 74 6d 70 2d 69 74 63 6c 2e 7a 69 70 22 0a   "tmp-itcl.zip".
04c0: 09 09 09 77 67 65 74 20 2d 4f 20 22 74 6d 70 2d  ...wget -O "tmp-
04d0: 74 68 72 65 61 64 2e 7a 69 70 22 20 22 68 74 74  thread.zip" "htt
04e0: 70 3a 2f 2f 72 6b 65 65 6e 65 2e 6f 72 67 2f 70  p://rkeene.org/p
04f0: 72 6f 6a 65 63 74 73 2f 74 63 6c 2f 74 68 72 65  rojects/tcl/thre
0500: 61 64 2e 66 6f 73 73 69 6c 2f 7a 69 70 2f 74 68  ad.fossil/zip/th
0510: 72 65 61 64 2d 24 7b 43 56 53 54 41 47 7d 2e 7a  read-${CVSTAG}.z
0520: 69 70 3f 75 75 69 64 3d 24 7b 43 56 53 54 41 47  ip?uuid=${CVSTAG
0530: 7d 22 20 7c 7c 20 72 6d 20 2d 66 20 22 74 6d 70  }" || rm -f "tmp
0540: 2d 74 68 72 65 61 64 2e 7a 69 70 22 0a 09 09 09  -thread.zip"....
0550: 77 67 65 74 20 2d 4f 20 22 74 6d 70 2d 74 63 6c  wget -O "tmp-tcl
0560: 63 6f 6e 66 69 67 2e 7a 69 70 22 20 22 68 74 74  config.zip" "htt
0570: 70 3a 2f 2f 72 6b 65 65 6e 65 2e 6f 72 67 2f 70  p://rkeene.org/p
0580: 72 6f 6a 65 63 74 73 2f 74 63 6c 2f 74 63 6c 63  rojects/tcl/tclc
0590: 6f 6e 66 69 67 2e 66 6f 73 73 69 6c 2f 7a 69 70  onfig.fossil/zip
05a0: 2f 74 63 6c 63 6f 6e 66 69 67 2d 24 7b 43 56 53  /tclconfig-${CVS
05b0: 54 41 47 7d 2e 7a 69 70 3f 75 75 69 64 3d 24 7b  TAG}.zip?uuid=${
05c0: 43 56 53 54 41 47 7d 22 20 7c 7c 20 72 6d 20 2d  CVSTAG}" || rm -
05d0: 66 20 22 74 6d 70 2d 74 63 6c 63 6f 6e 66 69 67  f "tmp-tclconfig
05e0: 2e 7a 69 70 22 0a 0a 09 09 09 75 6e 7a 69 70 20  .zip".....unzip 
05f0: 22 74 6d 70 2d 74 63 6c 2e 7a 69 70 22 0a 09 09  "tmp-tcl.zip"...
0600: 09 72 6d 20 2d 66 20 22 74 6d 70 2d 74 63 6c 2e  .rm -f "tmp-tcl.
0610: 7a 69 70 22 0a 0a 09 09 09 75 6e 7a 69 70 20 22  zip".....unzip "
0620: 74 6d 70 2d 69 74 63 6c 2e 7a 69 70 22 0a 09 09  tmp-itcl.zip"...
0630: 09 72 6d 20 2d 66 20 22 74 6d 70 2d 69 74 63 6c  .rm -f "tmp-itcl
0640: 2e 7a 69 70 22 0a 0a 09 09 09 75 6e 7a 69 70 20  .zip".....unzip 
0650: 22 74 6d 70 2d 74 68 72 65 61 64 2e 7a 69 70 22  "tmp-thread.zip"
0660: 0a 09 09 09 72 6d 20 2d 66 20 22 74 6d 70 2d 74  ....rm -f "tmp-t
0670: 68 72 65 61 64 2e 7a 69 70 22 0a 0a 09 09 09 75  hread.zip".....u
0680: 6e 7a 69 70 20 22 74 6d 70 2d 74 63 6c 63 6f 6e  nzip "tmp-tclcon
0690: 66 69 67 2e 7a 69 70 22 0a 09 09 09 72 6d 20 2d  fig.zip"....rm -
06a0: 66 20 22 74 6d 70 2d 74 63 6c 63 6f 6e 66 69 67  f "tmp-tclconfig
06b0: 2e 7a 69 70 22 0a 0a 09 09 09 72 6d 20 2d 72 66  .zip".....rm -rf
06c0: 20 22 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 22   "tcl${TCLVERS}"
06d0: 0a 09 09 09 6d 76 20 22 74 63 6c 2d 24 7b 43 56  ....mv "tcl-${CV
06e0: 53 54 41 47 7d 22 20 22 74 63 6c 24 7b 54 43 4c  STAG}" "tcl${TCL
06f0: 56 45 52 53 7d 22 0a 09 09 09 6d 76 20 22 69 74  VERS}"....mv "it
0700: 63 6c 2d 24 7b 43 56 53 54 41 47 7d 22 20 22 74  cl-${CVSTAG}" "t
0710: 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2f 70 6b 67  cl${TCLVERS}/pkg
0720: 73 2f 69 74 63 6c 22 0a 09 09 09 6d 76 20 22 74  s/itcl"....mv "t
0730: 68 72 65 61 64 2d 24 7b 43 56 53 54 41 47 7d 22  hread-${CVSTAG}"
0740: 20 22 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2f   "tcl${TCLVERS}/
0750: 70 6b 67 73 2f 74 68 72 65 61 64 22 0a 09 09 09  pkgs/thread"....
0760: 63 70 20 2d 72 20 22 74 63 6c 63 6f 6e 66 69 67  cp -r "tclconfig
0770: 2d 24 7b 43 56 53 54 41 47 7d 22 20 22 74 63 6c  -${CVSTAG}" "tcl
0780: 24 7b 54 43 4c 56 45 52 53 7d 2f 70 6b 67 73 2f  ${TCLVERS}/pkgs/
0790: 69 74 63 6c 2f 74 63 6c 63 6f 6e 66 69 67 22 0a  itcl/tclconfig".
07a0: 09 09 09 63 70 20 2d 72 20 22 74 63 6c 63 6f 6e  ...cp -r "tclcon
07b0: 66 69 67 2d 24 7b 43 56 53 54 41 47 7d 22 20 22  fig-${CVSTAG}" "
07c0: 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2f 70 6b  tcl${TCLVERS}/pk
07d0: 67 73 2f 74 68 72 65 61 64 2f 74 63 6c 63 6f 6e  gs/thread/tclcon
07e0: 66 69 67 22 0a 09 09 09 6d 76 20 22 74 63 6c 63  fig"....mv "tclc
07f0: 6f 6e 66 69 67 2d 24 7b 43 56 53 54 41 47 7d 22  onfig-${CVSTAG}"
0800: 20 22 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2f   "tcl${TCLVERS}/
0810: 74 63 6c 63 6f 6e 66 69 67 22 0a 0a 09 09 09 69  tclconfig".....i
0820: 66 20 5b 20 2d 64 20 22 74 63 6c 24 7b 54 43 4c  f [ -d "tcl${TCL
0830: 56 45 52 53 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  VERS}" ]; then..
0840: 09 09 09 66 69 6e 64 20 22 74 63 6c 24 7b 54 43  ...find "tcl${TC
0850: 4c 56 45 52 53 7d 22 20 2d 6e 61 6d 65 20 63 6f  LVERS}" -name co
0860: 6e 66 69 67 75 72 65 20 2d 74 79 70 65 20 66 20  nfigure -type f 
0870: 7c 20 78 61 72 67 73 20 63 68 6d 6f 64 20 2b 78  | xargs chmod +x
0880: 0a 09 09 09 09 66 69 6e 64 20 22 74 63 6c 24 7b  .....find "tcl${
0890: 54 43 4c 56 45 52 53 7d 22 20 27 28 27 20 2d 6e  TCLVERS}" '(' -n
08a0: 61 6d 65 20 69 6e 73 74 61 6c 6c 2d 73 68 20 2d  ame install-sh -
08b0: 6f 20 2d 6e 61 6d 65 20 69 6e 73 74 61 6c 6c 2e  o -name install.
08c0: 73 68 20 27 29 27 20 2d 74 79 70 65 20 66 20 7c  sh ')' -type f |
08d0: 20 78 61 72 67 73 20 63 68 6d 6f 64 20 2b 78 0a   xargs chmod +x.
08e0: 0a 09 09 09 09 74 61 72 20 2d 63 66 20 2d 20 22  .....tar -cf - "
08f0: 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 22 20 7c  tcl${TCLVERS}" |
0900: 20 67 7a 69 70 20 2d 63 20 3e 20 22 2e 2e 2f 24   gzip -c > "../$
0910: 7b 53 52 43 7d 22 0a 09 09 09 66 69 0a 0a 09 09  {SRC}"....fi....
0920: 09 72 6d 20 2d 66 20 22 74 6d 70 2d 74 63 6c 2e  .rm -f "tmp-tcl.
0930: 7a 69 70 22 20 22 74 6d 70 2d 69 74 63 6c 2e 7a  zip" "tmp-itcl.z
0940: 69 70 22 20 22 74 6d 70 2d 74 68 72 65 61 64 2e  ip" "tmp-thread.
0950: 7a 69 70 22 20 22 74 6d 70 2d 74 63 6c 63 6f 6e  zip" "tmp-tclcon
0960: 66 69 67 2e 7a 69 70 22 0a 09 09 09 72 6d 20 2d  fig.zip"....rm -
0970: 72 66 20 22 74 63 6c 2d 24 7b 43 56 53 54 41 47  rf "tcl-${CVSTAG
0980: 7d 22 20 22 69 74 63 6c 2d 24 7b 43 56 53 54 41  }" "itcl-${CVSTA
0990: 47 7d 22 20 22 74 68 72 65 61 64 2d 24 7b 43 56  G}" "thread-${CV
09a0: 53 54 41 47 7d 22 20 22 74 63 6c 63 6f 6e 66 69  STAG}" "tclconfi
09b0: 67 2d 24 7b 43 56 53 54 41 47 7d 22 0a 09 09 09  g-${CVSTAG}"....
09c0: 72 6d 20 2d 72 66 20 22 74 63 6c 24 7b 54 43 4c  rm -rf "tcl${TCL
09d0: 56 45 52 53 7d 22 0a 09 09 29 0a 09 65 6c 73 65  VERS}"...)..else
09e0: 0a 09 09 72 6d 20 2d 66 20 22 24 7b 53 52 43 7d  ...rm -f "${SRC}
09f0: 2e 74 6d 70 22 0a 09 09 77 67 65 74 20 2d 4f 20  .tmp"...wget -O 
0a00: 22 24 7b 53 52 43 7d 2e 74 6d 70 22 20 22 24 7b  "${SRC}.tmp" "${
0a10: 53 52 43 55 52 4c 7d 22 20 7c 7c 20 65 78 69 74  SRCURL}" || exit
0a20: 20 31 0a 09 09 6d 76 20 22 24 7b 53 52 43 7d 2e   1...mv "${SRC}.
0a30: 74 6d 70 22 20 22 24 7b 53 52 43 7d 22 0a 09 66  tmp" "${SRC}"..f
0a40: 69 0a 66 69 0a 0a 28 0a 09 63 64 20 27 62 75 69  i.fi..(..cd 'bui
0a50: 6c 64 27 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09  ld' || exit 1...
0a60: 69 66 20 5b 20 21 20 2d 64 20 27 2e 2e 2f 62 75  if [ ! -d '../bu
0a70: 69 6c 64 73 72 63 27 20 5d 3b 20 74 68 65 6e 0a  ildsrc' ]; then.
0a80: 09 09 67 7a 69 70 20 2d 64 63 20 22 2e 2e 2f 24  ..gzip -dc "../$
0a90: 7b 53 52 43 7d 22 20 7c 20 74 61 72 20 2d 78 66  {SRC}" | tar -xf
0aa0: 20 2d 0a 09 65 6c 73 65 0a 09 09 63 70 20 2d 72   -..else...cp -r
0ab0: 70 20 2e 2e 2f 62 75 69 6c 64 73 72 63 2f 2a 20  p ../buildsrc/* 
0ac0: 27 2e 2f 27 0a 09 66 69 0a 0a 09 63 64 20 22 24  './'..fi...cd "$
0ad0: 7b 42 55 49 4c 44 44 49 52 7d 22 20 7c 7c 20 65  {BUILDDIR}" || e
0ae0: 78 69 74 20 31 0a 0a 09 23 20 41 70 70 6c 79 20  xit 1...# Apply 
0af0: 70 61 74 63 68 65 73 20 69 66 20 6e 65 65 64 65  patches if neede
0b00: 64 0a 09 66 6f 72 20 70 61 74 63 68 20 69 6e 20  d..for patch in 
0b10: 22 24 7b 50 41 54 43 48 44 49 52 7d 2f 61 6c 6c  "${PATCHDIR}/all
0b20: 22 2f 74 63 6c 2d 24 7b 54 43 4c 56 45 52 53 7d  "/tcl-${TCLVERS}
0b30: 2d 2a 2e 64 69 66 66 20 22 24 7b 50 41 54 43 48  -*.diff "${PATCH
0b40: 44 49 52 7d 2f 24 7b 54 43 4c 56 45 52 53 7d 22  DIR}/${TCLVERS}"
0b50: 2f 74 63 6c 2d 24 7b 54 43 4c 56 45 52 53 7d 2d  /tcl-${TCLVERS}-
0b60: 2a 2e 64 69 66 66 3b 20 64 6f 0a 09 09 69 66 20  *.diff; do...if 
0b70: 5b 20 21 20 2d 66 20 22 24 7b 70 61 74 63 68 7d  [ ! -f "${patch}
0b80: 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 63 6f 6e  " ]; then....con
0b90: 74 69 6e 75 65 0a 09 09 66 69 0a 20 20 20 20 20  tinue...fi.     
0ba0: 20 20 20 20 20 20 20 20 20 20 20 0a 09 09 65 63             ...ec
0bb0: 68 6f 20 22 41 70 70 6c 79 69 6e 67 3a 20 24 7b  ho "Applying: ${
0bc0: 70 61 74 63 68 7d 22 0a 09 09 24 7b 50 41 54 43  patch}"...${PATC
0bd0: 48 3a 2d 70 61 74 63 68 7d 20 2d 70 31 20 3c 20  H:-patch} -p1 < 
0be0: 22 24 7b 70 61 74 63 68 7d 22 0a 09 64 6f 6e 65  "${patch}"..done
0bf0: 0a 0a 0a 09 23 20 41 70 70 6c 79 20 70 61 74 63  ....# Apply patc
0c00: 68 20 73 63 72 69 70 74 73 20 69 66 20 6e 65 65  h scripts if nee
0c10: 64 65 64 0a 09 66 6f 72 20 70 61 74 63 68 73 63  ded..for patchsc
0c20: 72 69 70 74 20 69 6e 20 22 24 7b 50 41 54 43 48  ript in "${PATCH
0c30: 53 43 52 49 50 54 44 49 52 7d 22 2f 2a 2e 73 68  SCRIPTDIR}"/*.sh
0c40: 3b 20 64 6f 0a 09 09 69 66 20 5b 20 2d 66 20 22  ; do...if [ -f "
0c50: 24 7b 70 61 74 63 68 73 63 72 69 70 74 7d 22 20  ${patchscript}" 
0c60: 5d 3b 20 74 68 65 6e 0a 09 09 09 65 63 68 6f 20  ]; then....echo 
0c70: 22 52 75 6e 6e 69 6e 67 20 70 61 74 63 68 20 73  "Running patch s
0c80: 63 72 69 70 74 3a 20 24 7b 70 61 74 63 68 73 63  cript: ${patchsc
0c90: 72 69 70 74 7d 22 0a 0a 09 09 09 28 0a 09 09 09  ript}".....(....
0ca0: 09 2e 20 22 24 7b 70 61 74 63 68 73 63 72 69 70  .. "${patchscrip
0cb0: 74 7d 22 0a 09 09 09 29 0a 09 09 66 69 0a 09 64  t}"....)...fi..d
0cc0: 6f 6e 65 0a 0a 09 66 6f 72 20 64 69 72 20 69 6e  one...for dir in
0cd0: 20 75 6e 69 78 20 77 69 6e 20 6d 61 63 6f 73 78   unix win macosx
0ce0: 20 5f 5f 66 61 69 6c 5f 5f 3b 20 64 6f 0a 09 09   __fail__; do...
0cf0: 69 66 20 5b 20 22 24 7b 64 69 72 7d 22 20 3d 20  if [ "${dir}" = 
0d00: 22 5f 5f 66 61 69 6c 5f 5f 22 20 5d 3b 20 74 68  "__fail__" ]; th
0d10: 65 6e 0a 09 09 09 23 20 49 66 20 77 65 20 68 61  en....# If we ha
0d20: 76 65 6e 27 74 20 66 69 67 75 72 65 64 20 6f 75  ven't figured ou
0d30: 74 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 69  t how to build i
0d40: 74 2c 20 72 65 6a 65 63 74 2e 0a 0a 09 09 09 65  t, reject......e
0d50: 78 69 74 20 31 0a 09 09 66 69 0a 0a 09 09 23 20  xit 1...fi....# 
0d60: 52 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20  Remove previous 
0d70: 64 69 72 65 63 74 6f 72 79 27 73 20 22 74 63 6c  directory's "tcl
0d80: 43 6f 6e 66 69 67 2e 73 68 22 20 69 66 20 66 6f  Config.sh" if fo
0d90: 75 6e 64 0a 09 09 72 6d 20 2d 66 20 27 74 63 6c  und...rm -f 'tcl
0da0: 43 6f 6e 66 69 67 2e 73 68 27 0a 0a 09 09 63 64  Config.sh'....cd
0db0: 20 22 24 7b 42 55 49 4c 44 44 49 52 7d 2f 24 7b   "${BUILDDIR}/${
0dc0: 64 69 72 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a  dir}" || exit 1.
0dd0: 0a 09 09 65 63 68 6f 20 22 52 75 6e 6e 69 6e 67  ...echo "Running
0de0: 3a 20 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d  : ./configure --
0df0: 64 69 73 61 62 6c 65 2d 73 68 61 72 65 64 20 2d  disable-shared -
0e00: 2d 77 69 74 68 2d 65 6e 63 6f 64 69 6e 67 3d 75  -with-encoding=u
0e10: 74 66 2d 38 20 2d 2d 70 72 65 66 69 78 3d 5c 22  tf-8 --prefix=\"
0e20: 24 7b 49 4e 53 54 44 49 52 7d 5c 22 20 24 7b 43  ${INSTDIR}\" ${C
0e30: 4f 4e 46 49 47 55 52 45 45 58 54 52 41 7d 22 0a  ONFIGUREEXTRA}".
0e40: 09 09 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d  .../configure --
0e50: 64 69 73 61 62 6c 65 2d 73 68 61 72 65 64 20 2d  disable-shared -
0e60: 2d 77 69 74 68 2d 65 6e 63 6f 64 69 6e 67 3d 75  -with-encoding=u
0e70: 74 66 2d 38 20 2d 2d 70 72 65 66 69 78 3d 22 24  tf-8 --prefix="$
0e80: 7b 49 4e 53 54 44 49 52 7d 22 20 24 7b 43 4f 4e  {INSTDIR}" ${CON
0e90: 46 49 47 55 52 45 45 58 54 52 41 7d 0a 0a 09 09  FIGUREEXTRA}....
0ea0: 65 63 68 6f 20 22 52 75 6e 6e 69 6e 67 3a 20 24  echo "Running: $
0eb0: 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 22 0a 09 09  {MAKE:-make}"...
0ec0: 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 7c 7c  ${MAKE:-make} ||
0ed0: 20 63 6f 6e 74 69 6e 75 65 0a 0a 09 09 65 63 68   continue....ech
0ee0: 6f 20 22 52 75 6e 6e 69 6e 67 3a 20 24 7b 4d 41  o "Running: ${MA
0ef0: 4b 45 3a 2d 6d 61 6b 65 7d 20 69 6e 73 74 61 6c  KE:-make} instal
0f00: 6c 22 0a 09 09 24 7b 4d 41 4b 45 3a 2d 6d 61 6b  l"...${MAKE:-mak
0f10: 65 7d 20 69 6e 73 74 61 6c 6c 20 7c 7c 20 28 0a  e} install || (.
0f20: 09 09 09 23 20 57 6f 72 6b 20 77 69 74 68 20 54  ...# Work with T
0f30: 63 6c 20 38 2e 36 2e 78 27 73 20 54 43 4c 53 48  cl 8.6.x's TCLSH
0f40: 5f 4e 41 54 49 56 45 20 73 6f 6c 75 74 69 6f 6e  _NATIVE solution
0f50: 20 66 6f 72 0a 09 09 09 23 20 63 72 6f 73 73 2d   for....# cross-
0f60: 63 6f 6d 70 69 6c 65 20 69 6e 73 74 61 6c 6c 73  compile installs
0f70: 0a 0a 09 09 09 65 63 68 6f 20 22 52 75 6e 6e 69  .....echo "Runni
0f80: 6e 67 3a 20 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65  ng: ${MAKE:-make
0f90: 7d 20 69 6e 73 74 61 6c 6c 20 54 43 4c 53 48 5f  } install TCLSH_
0fa0: 4e 41 54 49 56 45 3d 5c 22 24 7b 54 43 4c 4b 49  NATIVE=\"${TCLKI
0fb0: 54 3a 2d 74 63 6c 6b 69 74 7d 5c 22 22 0a 09 09  T:-tclkit}\""...
0fc0: 09 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 69  .${MAKE:-make} i
0fd0: 6e 73 74 61 6c 6c 20 54 43 4c 53 48 5f 4e 41 54  nstall TCLSH_NAT
0fe0: 49 56 45 3d 22 24 7b 54 43 4c 4b 49 54 3a 2d 74  IVE="${TCLKIT:-t
0ff0: 63 6c 6b 69 74 7d 22 0a 09 09 29 20 7c 7c 20 28  clkit}"...) || (
1000: 0a 09 09 09 23 20 4d 61 6b 65 20 69 6e 73 74 61  ....# Make insta
1010: 6c 6c 20 63 61 6e 20 66 61 69 6c 20 69 66 20 63  ll can fail if c
1020: 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e 67 20 75  ross-compiling u
1030: 73 69 6e 67 20 54 63 6c 20 38 2e 35 2e 78 0a 09  sing Tcl 8.5.x..
1040: 09 09 23 20 62 65 63 61 75 73 65 20 74 68 65 20  ..# because the 
1050: 4d 61 6b 65 66 69 6c 65 20 63 61 6c 6c 73 20 22  Makefile calls "
1060: 24 28 54 43 4c 53 48 29 22 2e 20 20 57 65 20 63  $(TCLSH)".  We c
1070: 61 6e 27 74 20 73 69 6d 70 6c 79 0a 09 09 09 23  an't simply....#
1080: 20 72 65 64 65 66 69 6e 65 20 54 43 4c 53 48 20   redefine TCLSH 
1090: 62 65 63 61 75 73 65 20 69 74 20 61 6c 73 6f 20  because it also 
10a0: 75 73 65 73 20 54 43 4c 53 48 20 61 73 20 61 20  uses TCLSH as a 
10b0: 62 75 69 6c 64 20 74 61 72 67 65 74 0a 09 09 09  build target....
10c0: 73 65 64 20 27 73 40 5e 24 28 54 43 4c 53 48 29  sed 's@^$(TCLSH)
10d0: 40 62 6c 61 68 40 27 20 4d 61 6b 65 66 69 6c 65  @blah@' Makefile
10e0: 20 3e 20 4d 61 6b 65 66 69 6c 65 2e 6e 65 77 0a   > Makefile.new.
10f0: 09 09 09 63 61 74 20 4d 61 6b 65 66 69 6c 65 2e  ...cat Makefile.
1100: 6e 65 77 20 3e 20 4d 61 6b 65 66 69 6c 65 0a 09  new > Makefile..
1110: 09 09 72 6d 20 2d 66 20 4d 61 6b 65 66 69 6c 65  ..rm -f Makefile
1120: 2e 6e 65 77 0a 0a 09 09 09 65 63 68 6f 20 22 52  .new.....echo "R
1130: 75 6e 6e 69 6e 67 3a 20 24 7b 4d 41 4b 45 3a 2d  unning: ${MAKE:-
1140: 6d 61 6b 65 7d 20 69 6e 73 74 61 6c 6c 20 54 43  make} install TC
1150: 4c 53 48 3d 5c 22 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e  LSH=\"../../../.
1160: 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e  ./../../../../..
1170: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f  /../../../../../
1180: 2e 2e 2f 2e 2e 2f 2e 2e 2f 24 28 77 68 69 63 68  ../../../$(which
1190: 20 22 24 7b 54 43 4c 4b 49 54 3a 2d 74 63 6c 6b   "${TCLKIT:-tclk
11a0: 69 74 7d 22 29 5c 22 22 0a 09 09 09 24 7b 4d 41  it}")\""....${MA
11b0: 4b 45 3a 2d 6d 61 6b 65 7d 20 69 6e 73 74 61 6c  KE:-make} instal
11c0: 6c 20 54 43 4c 53 48 3d 22 2e 2e 2f 2e 2e 2f 2e  l TCLSH="../../.
11d0: 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e  ./../../../../..
11e0: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f  /../../../../../
11f0: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 24 28 77 68  ../../../../$(wh
1200: 69 63 68 20 22 24 7b 54 43 4c 4b 49 54 3a 2d 74  ich "${TCLKIT:-t
1210: 63 6c 6b 69 74 7d 22 29 22 0a 09 09 29 20 7c 7c  clkit}")"...) ||
1220: 20 28 0a 09 09 09 23 20 4d 61 6b 65 20 69 6e 73   (....# Make ins
1230: 74 61 6c 6c 20 63 61 6e 20 66 61 69 6c 20 69 66  tall can fail if
1240: 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e 67   cross-compiling
1250: 20 75 73 69 6e 67 20 54 63 6c 20 38 2e 35 2e 39   using Tcl 8.5.9
1260: 0a 09 09 09 23 20 62 65 63 61 75 73 65 20 74 68  ....# because th
1270: 65 20 4d 61 6b 65 66 69 6c 65 20 63 61 6c 6c 73  e Makefile calls
1280: 20 22 24 7b 54 43 4c 5f 45 58 45 7d 22 2e 20 20   "${TCL_EXE}".  
1290: 57 65 20 63 61 6e 27 74 20 73 69 6d 70 6c 79 0a  We can't simply.
12a0: 09 09 09 23 20 72 65 64 65 66 69 6e 65 20 54 43  ...# redefine TC
12b0: 4c 5f 45 58 45 20 62 65 63 61 75 73 65 20 69 74  L_EXE because it
12c0: 20 61 6c 73 6f 20 75 73 65 73 20 54 43 4c 5f 45   also uses TCL_E
12d0: 58 45 20 61 73 20 61 20 62 75 69 6c 64 20 74 61  XE as a build ta
12e0: 72 67 65 74 0a 09 09 09 73 65 64 20 27 73 40 5e  rget....sed 's@^
12f0: 24 7b 54 43 4c 5f 45 58 45 7d 40 62 6c 61 68 40  ${TCL_EXE}@blah@
1300: 27 20 4d 61 6b 65 66 69 6c 65 20 3e 20 4d 61 6b  ' Makefile > Mak
1310: 65 66 69 6c 65 2e 6e 65 77 0a 09 09 09 63 61 74  efile.new....cat
1320: 20 4d 61 6b 65 66 69 6c 65 2e 6e 65 77 20 3e 20   Makefile.new > 
1330: 4d 61 6b 65 66 69 6c 65 0a 09 09 09 72 6d 20 2d  Makefile....rm -
1340: 66 20 4d 61 6b 65 66 69 6c 65 2e 6e 65 77 0a 0a  f Makefile.new..
1350: 09 09 09 65 63 68 6f 20 22 52 75 6e 6e 69 6e 67  ...echo "Running
1360: 3a 20 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20  : ${MAKE:-make} 
1370: 69 6e 73 74 61 6c 6c 20 54 43 4c 5f 45 58 45 3d  install TCL_EXE=
1380: 5c 22 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e  \"../../../../..
1390: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f  /../../../../../
13a0: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e  ../../../../../.
13b0: 2e 2f 2e 2e 2f 24 28 77 68 69 63 68 20 22 24 7b  ./../$(which "${
13c0: 54 43 4c 4b 49 54 3a 2d 74 63 6c 6b 69 74 7d 22  TCLKIT:-tclkit}"
13d0: 29 5c 22 22 0a 09 09 09 24 7b 4d 41 4b 45 3a 2d  )\""....${MAKE:-
13e0: 6d 61 6b 65 7d 20 69 6e 73 74 61 6c 6c 20 54 43  make} install TC
13f0: 4c 5f 45 58 45 3d 22 2e 2e 2f 2e 2e 2f 2e 2e 2f  L_EXE="../../../
1400: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e  ../../../../../.
1410: 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e  ./../../../../..
1420: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 24 28 77 68 69 63  /../../../$(whic
1430: 68 20 22 24 7b 54 43 4c 4b 49 54 3a 2d 74 63 6c  h "${TCLKIT:-tcl
1440: 6b 69 74 7d 22 29 22 0a 09 09 29 20 7c 7c 20 65  kit}")"...) || e
1450: 78 69 74 20 31 0a 0a 09 09 6d 6b 64 69 72 20 22  xit 1....mkdir "
1460: 24 7b 4f 55 54 44 49 52 7d 2f 6c 69 62 22 20 7c  ${OUTDIR}/lib" |
1470: 7c 20 65 78 69 74 20 31 0a 09 09 63 70 20 2d 72  | exit 1...cp -r
1480: 20 22 24 7b 49 4e 53 54 44 49 52 7d 2f 6c 69 62   "${INSTDIR}/lib
1490: 22 2f 2a 20 22 24 7b 4f 55 54 44 49 52 7d 2f 6c  "/* "${OUTDIR}/l
14a0: 69 62 2f 22 0a 09 09 72 6d 20 2d 72 66 20 22 24  ib/"...rm -rf "$
14b0: 7b 4f 55 54 44 49 52 7d 2f 6c 69 62 2f 70 6b 67  {OUTDIR}/lib/pkg
14c0: 63 6f 6e 66 69 67 22 0a 09 09 72 6d 20 2d 66 20  config"...rm -f 
14d0: 22 24 7b 4f 55 54 44 49 52 7d 22 2f 6c 69 62 2f  "${OUTDIR}"/lib/
14e0: 2a 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f  * >/dev/null 2>/
14f0: 64 65 76 2f 6e 75 6c 6c 0a 09 09 66 69 6e 64 20  dev/null...find 
1500: 22 24 7b 4f 55 54 44 49 52 7d 22 20 2d 6e 61 6d  "${OUTDIR}" -nam
1510: 65 20 27 2a 2e 61 27 20 7c 20 78 61 72 67 73 20  e '*.a' | xargs 
1520: 72 6d 20 2d 66 20 3e 2f 64 65 76 2f 6e 75 6c 6c  rm -f >/dev/null
1530: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 0a 09 09   2>/dev/null....
1540: 23 20 43 6c 65 61 6e 20 75 70 20 70 61 63 6b 61  # Clean up packa
1550: 67 65 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74  ges that are not
1560: 20 6e 65 65 64 65 64 0a 09 09 69 66 20 5b 20 2d   needed...if [ -
1570: 6e 20 22 24 7b 4b 49 54 43 52 45 41 54 4f 52 5f  n "${KITCREATOR_
1580: 4d 49 4e 42 55 49 4c 44 7d 22 20 5d 3b 20 74 68  MINBUILD}" ]; th
1590: 65 6e 0a 09 09 09 66 69 6e 64 20 22 24 7b 4f 55  en....find "${OU
15a0: 54 44 49 52 7d 22 20 2d 6e 61 6d 65 20 22 74 63  TDIR}" -name "tc
15b0: 6c 74 65 73 74 2a 22 20 2d 74 79 70 65 20 64 20  ltest*" -type d 
15c0: 7c 20 78 61 72 67 73 20 72 6d 20 2d 72 66 0a 09  | xargs rm -rf..
15d0: 09 66 69 0a 0a 09 09 23 20 43 6c 65 61 6e 20 75  .fi....# Clean u
15e0: 70 20 65 6e 63 6f 64 69 6e 67 73 0a 09 09 69 66  p encodings...if
15f0: 20 5b 20 2d 6e 20 22 24 7b 4b 49 54 43 52 45 41   [ -n "${KITCREA
1600: 54 4f 52 5f 4d 49 4e 45 4e 43 4f 44 49 4e 47 53  TOR_MINENCODINGS
1610: 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 4b 45  }" ]; then....KE
1620: 45 50 45 4e 43 4f 44 49 4e 47 53 3d 22 20 61 73  EPENCODINGS=" as
1630: 63 69 69 2e 65 6e 63 20 63 70 31 32 35 32 2e 65  cii.enc cp1252.e
1640: 6e 63 20 69 73 6f 38 38 35 39 2d 31 2e 65 6e 63  nc iso8859-1.enc
1650: 20 69 73 6f 38 38 35 39 2d 31 35 2e 65 6e 63 20   iso8859-15.enc 
1660: 69 73 6f 38 38 35 39 2d 32 2e 65 6e 63 20 6b 6f  iso8859-2.enc ko
1670: 69 38 2d 72 2e 65 6e 63 20 6d 61 63 52 6f 6d 61  i8-r.enc macRoma
1680: 6e 2e 65 6e 63 20 22 0a 09 09 09 65 78 70 6f 72  n.enc "....expor
1690: 74 20 4b 45 45 50 45 4e 43 4f 44 49 4e 47 53 0a  t KEEPENCODINGS.
16a0: 09 09 09 66 69 6e 64 20 22 24 7b 4f 55 54 44 49  ...find "${OUTDI
16b0: 52 7d 2f 6c 69 62 22 20 2d 6e 61 6d 65 20 27 65  R}/lib" -name 'e
16c0: 6e 63 6f 64 69 6e 67 27 20 2d 74 79 70 65 20 64  ncoding' -type d
16d0: 20 7c 20 77 68 69 6c 65 20 72 65 61 64 20 65 6e   | while read en
16e0: 63 64 69 72 3b 20 64 6f 0a 09 09 09 09 28 0a 09  cdir; do.....(..
16f0: 09 09 09 09 63 64 20 22 24 7b 65 6e 63 64 69 72  ....cd "${encdir
1700: 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 09  }" || exit 1....
1710: 09 09 09 66 6f 72 20 66 69 6c 65 20 69 6e 20 2a  ...for file in *
1720: 3b 20 64 6f 0a 09 09 09 09 09 09 69 66 20 65 63  ; do.......if ec
1730: 68 6f 20 22 20 24 7b 4b 45 45 50 45 4e 43 4f 44  ho " ${KEEPENCOD
1740: 49 4e 47 53 7d 20 22 20 7c 20 67 72 65 70 20 22  INGS} " | grep "
1750: 20 24 7b 66 69 6c 65 7d 20 22 20 3e 2f 64 65 76   ${file} " >/dev
1760: 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 09 09  /null; then.....
1770: 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 09 09 09  ...continue.....
1780: 09 09 66 69 0a 0a 09 09 09 09 09 09 72 6d 20 2d  ..fi........rm -
1790: 66 20 22 24 7b 66 69 6c 65 7d 22 0a 09 09 09 09  f "${file}".....
17a0: 09 64 6f 6e 65 0a 09 09 09 09 29 0a 09 09 09 64  .done.....)....d
17b0: 6f 6e 65 0a 09 09 66 69 0a 0a 09 09 62 72 65 61  one...fi....brea
17c0: 6b 0a 09 64 6f 6e 65 0a 29 20 7c 7c 20 65 78 69  k..done.) || exi
17d0: 74 20 31 0a 0a 65 78 69 74 20 30 0a              t 1..exit 0.