Hex Artifact Content

Artifact 839f9aa1bd047ece0089b576b05e3e856d27ab91:


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 73 68 69 66 74 0a 09 43  ; then..shift..C
00b0: 4c 45 41 4e 4f 4e 4c 59 3d 31 0a 66 69 0a 69 66  LEANONLY=1.fi.if
00c0: 20 5b 20 22 24 31 22 20 3d 20 22 64 69 73 74 63   [ "$1" = "distc
00d0: 6c 65 61 6e 22 20 5d 3b 20 74 68 65 6e 0a 09 73  lean" ]; then..s
00e0: 68 69 66 74 0a 09 43 4c 45 41 4e 4f 4e 4c 59 3d  hift..CLEANONLY=
00f0: 31 0a 09 44 49 53 54 43 4c 45 41 4e 3d 31 0a 66  1..DISTCLEAN=1.f
0100: 69 0a 65 78 70 6f 72 74 20 43 4c 45 41 4e 4f 4e  i.export CLEANON
0110: 4c 59 20 44 49 53 54 43 4c 45 41 4e 0a 0a 43 4f  LY DISTCLEAN..CO
0120: 4e 46 49 47 55 52 45 45 58 54 52 41 3d 22 24 40  NFIGUREEXTRA="$@
0130: 22 0a 65 78 70 6f 72 74 20 43 4f 4e 46 49 47 55  ".export CONFIGU
0140: 52 45 45 58 54 52 41 0a 0a 23 20 44 65 74 65 72  REEXTRA..# Deter
0150: 6d 69 6e 65 20 70 61 74 68 20 74 6f 20 22 74 63  mine path to "tc
0160: 6c 43 6f 6e 66 69 67 2e 73 68 22 0a 72 6d 20 2d  lConfig.sh".rm -
0170: 72 66 20 74 63 6c 2f 62 75 69 6c 64 20 74 63 6c  rf tcl/build tcl
0180: 2f 69 6e 73 74 0a 72 6d 20 2d 66 20 70 6c 61 74  /inst.rm -f plat
0190: 66 6f 72 6d 2e 6d 61 67 69 63 2e 2a 0a 69 66 20  form.magic.*.if 
01a0: 5b 20 22 24 7b 44 49 53 54 43 4c 45 41 4e 7d 22  [ "${DISTCLEAN}"
01b0: 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e 0a 09   = "1" ]; then..
01c0: 72 6d 20 2d 72 66 20 74 63 6c 0a 66 69 0a 0a 69  rm -rf tcl.fi..i
01d0: 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59  f [ "${CLEANONLY
01e0: 7d 22 20 3d 20 22 30 22 20 5d 3b 20 74 68 65 6e  }" = "0" ]; then
01f0: 0a 09 54 43 4c 56 45 52 53 3d 22 38 2e 34 2e 31  ..TCLVERS="8.4.1
0200: 39 22 0a 09 54 43 4c 50 52 49 56 41 54 45 3d 22  9"..TCLPRIVATE="
0210: 24 28 70 77 64 29 2f 74 63 6c 2f 62 75 69 6c 64  $(pwd)/tcl/build
0220: 2f 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 22 0a  /tcl${TCLVERS}".
0230: 09 50 52 4f 4a 52 4f 4f 54 44 49 52 3d 22 24 28  .PROJROOTDIR="$(
0240: 70 77 64 29 22 0a 09 54 43 4c 49 4e 53 54 44 49  pwd)"..TCLINSTDI
0250: 52 3d 22 24 28 70 77 64 29 2f 74 63 6c 2f 69 6e  R="$(pwd)/tcl/in
0260: 73 74 22 0a 09 65 78 70 6f 72 74 20 54 43 4c 56  st"..export TCLV
0270: 45 52 53 20 54 43 4c 50 52 49 56 41 54 45 20 50  ERS TCLPRIVATE P
0280: 52 4f 4a 52 4f 4f 54 44 49 52 20 54 43 4c 49 4e  ROJROOTDIR TCLIN
0290: 53 54 44 49 52 0a 0a 09 6d 6b 64 69 72 20 74 63  STDIR...mkdir tc
02a0: 6c 20 74 63 6c 2f 62 75 69 6c 64 20 3e 2f 64 65  l tcl/build >/de
02b0: 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75  v/null 2>/dev/nu
02c0: 6c 6c 0a 0a 09 69 66 20 5b 20 21 20 2d 66 20 22  ll...if [ ! -f "
02d0: 74 63 6c 2f 73 72 63 2f 74 63 6c 24 7b 54 43 4c  tcl/src/tcl${TCL
02e0: 56 45 52 53 7d 2e 74 61 72 2e 67 7a 22 20 5d 3b  VERS}.tar.gz" ];
02f0: 20 74 68 65 6e 0a 09 09 6d 6b 64 69 72 20 74 63   then...mkdir tc
0300: 6c 2f 73 72 63 20 3e 2f 64 65 76 2f 6e 75 6c 6c  l/src >/dev/null
0310: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 09 09 77   2>/dev/null...w
0320: 67 65 74 20 2d 6f 20 2f 64 65 76 2f 6e 75 6c 6c  get -o /dev/null
0330: 20 2d 4f 20 22 74 63 6c 2f 73 72 63 2f 74 63 6c   -O "tcl/src/tcl
0340: 24 7b 54 43 4c 56 45 52 53 7d 2e 74 61 72 2e 67  ${TCLVERS}.tar.g
0350: 7a 22 20 22 68 74 74 70 3a 2f 2f 70 72 64 6f 77  z" "http://prdow
0360: 6e 6c 6f 61 64 73 2e 73 6f 75 72 63 65 66 6f 72  nloads.sourcefor
0370: 67 65 2e 6e 65 74 2f 74 63 6c 2f 74 63 6c 24 7b  ge.net/tcl/tcl${
0380: 54 43 4c 56 45 52 53 7d 2d 73 72 63 2e 74 61 72  TCLVERS}-src.tar
0390: 2e 67 7a 22 0a 09 66 69 0a 0a 09 65 63 68 6f 20  .gz"..fi...echo 
03a0: 22 42 75 69 6c 64 69 6e 67 20 54 63 6c 20 24 7b  "Building Tcl ${
03b0: 54 43 4c 56 45 52 53 7d 22 0a 09 28 0a 09 09 6d  TCLVERS}"..(...m
03c0: 6b 64 69 72 20 74 63 6c 2f 62 75 69 6c 64 20 3e  kdir tcl/build >
03d0: 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76  /dev/null 2>/dev
03e0: 2f 6e 75 6c 6c 0a 09 09 63 64 20 74 63 6c 2f 62  /null...cd tcl/b
03f0: 75 69 6c 64 20 7c 7c 20 65 78 69 74 20 31 0a 09  uild || exit 1..
0400: 09 67 7a 69 70 20 2d 64 63 20 22 2e 2e 2f 73 72  .gzip -dc "../sr
0410: 63 2f 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2e  c/tcl${TCLVERS}.
0420: 74 61 72 2e 67 7a 22 20 7c 20 74 61 72 20 2d 78  tar.gz" | tar -x
0430: 66 20 2d 0a 0a 09 09 23 20 44 44 45 20 61 6e 64  f -....# DDE and
0440: 20 52 65 67 20 63 61 6e 20 66 61 69 6c 20 74 6f   Reg can fail to
0450: 20 63 6f 6d 70 69 6c 65 2c 20 62 75 74 20 77 65   compile, but we
0460: 20 64 6f 6e 27 74 20 63 61 72 65 0a 09 09 65 63   don't care...ec
0470: 68 6f 20 27 27 20 3e 20 22 24 7b 54 43 4c 50 52  ho '' > "${TCLPR
0480: 49 56 41 54 45 7d 2f 77 69 6e 2f 74 63 6c 57 69  IVATE}/win/tclWi
0490: 6e 44 64 65 2e 63 22 0a 09 09 65 63 68 6f 20 27  nDde.c"...echo '
04a0: 27 20 3e 20 22 24 7b 54 43 4c 50 52 49 56 41 54  ' > "${TCLPRIVAT
04b0: 45 7d 2f 77 69 6e 2f 74 63 6c 57 69 6e 52 65 67  E}/win/tclWinReg
04c0: 2e 63 22 0a 0a 09 09 66 6f 72 20 64 69 72 20 69  .c"....for dir i
04d0: 6e 20 75 6e 69 78 20 77 69 6e 20 6d 61 63 6f 73  n unix win macos
04e0: 78 3b 20 64 6f 0a 09 09 09 63 64 20 22 24 7b 54  x; do....cd "${T
04f0: 43 4c 50 52 49 56 41 54 45 7d 2f 24 7b 64 69 72  CLPRIVATE}/${dir
0500: 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 09  }" || exit 1....
0510: 09 65 63 68 6f 20 22 20 45 78 65 63 75 74 69 6e  .echo " Executin
0520: 67 3a 20 2e 2f 63 6f 6e 66 69 67 75 72 65 20 24  g: ./configure $
0530: 7b 43 4f 4e 46 49 47 55 52 45 45 58 54 52 41 7d  {CONFIGUREEXTRA}
0540: 22 0a 09 09 09 2e 2f 63 6f 6e 66 69 67 75 72 65  "...../configure
0550: 20 2d 2d 64 69 73 61 62 6c 65 2d 74 68 72 65 61   --disable-threa
0560: 64 73 20 24 7b 43 4f 4e 46 49 47 55 52 45 45 58  ds ${CONFIGUREEX
0570: 54 52 41 7d 20 2d 2d 70 72 65 66 69 78 3d 22 24  TRA} --prefix="$
0580: 7b 54 43 4c 49 4e 53 54 44 49 52 7d 22 0a 0a 09  {TCLINSTDIR}"...
0590: 09 09 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20  ..${MAKE:-make} 
05a0: 7c 7c 20 63 6f 6e 74 69 6e 75 65 0a 09 09 09 24  || continue....$
05b0: 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 69 6e 73  {MAKE:-make} ins
05c0: 74 61 6c 6c 20 7c 7c 20 62 72 65 61 6b 0a 0a 09  tall || break...
05d0: 09 09 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54  ..LD_LIBRARY_PAT
05e0: 48 3d 22 2e 3a 24 7b 4c 44 5f 4c 49 42 52 41 52  H=".:${LD_LIBRAR
05f0: 59 5f 50 41 54 48 7d 22 0a 09 09 09 4c 44 5f 52  Y_PATH}"....LD_R
0600: 55 4e 5f 50 41 54 48 3d 22 2e 3a 24 7b 4c 44 5f  UN_PATH=".:${LD_
0610: 52 55 4e 5f 50 41 54 48 7d 22 0a 09 09 09 65 78  RUN_PATH}"....ex
0620: 70 6f 72 74 20 4c 44 5f 4c 49 42 52 41 52 59 5f  port LD_LIBRARY_
0630: 50 41 54 48 20 4c 44 5f 52 55 4e 5f 50 41 54 48  PATH LD_RUN_PATH
0640: 0a 0a 09 09 09 66 69 6c 65 20 74 63 6c 73 68 20  .....file tclsh 
0650: 74 63 6c 73 68 2a 2e 65 78 65 20 32 3e 2f 64 65  tclsh*.exe 2>/de
0660: 76 2f 6e 75 6c 6c 20 7c 20 67 72 65 70 20 2d 69  v/null | grep -i
0670: 76 20 27 4e 6f 20 73 75 63 68 20 66 69 6c 65 27  v 'No such file'
0680: 20 3e 20 22 24 7b 50 52 4f 4a 52 4f 4f 54 44 49   > "${PROJROOTDI
0690: 52 7d 2f 70 6c 61 74 66 6f 72 6d 2e 6d 61 67 69  R}/platform.magi
06a0: 63 2e 66 69 6c 65 22 0a 09 09 09 69 66 20 5b 20  c.file"....if [ 
06b0: 2d 66 20 74 63 6c 73 68 2a 2e 65 78 65 20 5d 3b  -f tclsh*.exe ];
06c0: 20 74 68 65 6e 0a 09 09 09 09 65 63 68 6f 20 27   then.....echo '
06d0: 70 75 74 73 20 22 24 3a 3a 74 63 6c 5f 70 6c 61  puts "$::tcl_pla
06e0: 74 66 6f 72 6d 28 6f 73 29 22 27 20 7c 20 2e 2f  tform(os)"' | ./
06f0: 74 63 6c 73 68 2a 2e 65 78 65 20 3e 20 22 24 7b  tclsh*.exe > "${
0700: 50 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61  PROJROOTDIR}/pla
0710: 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 6f 73 22 20  tform.magic.os" 
0720: 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 09 09 09 65  2>/dev/null....e
0730: 6c 73 65 0a 09 09 09 09 65 63 68 6f 20 27 70 75  lse.....echo 'pu
0740: 74 73 20 22 24 3a 3a 74 63 6c 5f 70 6c 61 74 66  ts "$::tcl_platf
0750: 6f 72 6d 28 6f 73 29 22 27 20 7c 20 2e 2f 74 63  orm(os)"' | ./tc
0760: 6c 73 68 20 3e 20 22 24 7b 50 52 4f 4a 52 4f 4f  lsh > "${PROJROO
0770: 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d 2e 6d  TDIR}/platform.m
0780: 61 67 69 63 2e 6f 73 22 20 32 3e 2f 64 65 76 2f  agic.os" 2>/dev/
0790: 6e 75 6c 6c 0a 09 09 09 66 69 0a 09 09 09 65 63  null....fi....ec
07a0: 68 6f 20 22 24 7b 64 69 72 7d 22 20 3e 20 22 24  ho "${dir}" > "$
07b0: 7b 50 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c  {PROJROOTDIR}/pl
07c0: 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 70 6c 61  atform.magic.pla
07d0: 74 66 6f 72 6d 22 0a 09 09 09 70 77 64 20 3e 20  tform"....pwd > 
07e0: 22 24 7b 50 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f  "${PROJROOTDIR}/
07f0: 70 6c 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 64  platform.magic.d
0800: 69 72 22 0a 0a 09 09 09 62 72 65 61 6b 0a 09 09  ir".....break...
0810: 64 6f 6e 65 0a 09 29 20 3e 20 22 74 63 6c 2f 62  done..) > "tcl/b
0820: 75 69 6c 64 2f 62 75 69 6c 64 2e 6c 6f 67 22 20  uild/build.log" 
0830: 32 3e 26 31 20 7c 7c 20 28 0a 09 09 65 63 68 6f  2>&1 || (...echo
0840: 20 27 46 61 69 6c 65 64 20 74 6f 20 62 75 69 6c   'Failed to buil
0850: 64 20 54 63 6c 2e 20 20 53 65 65 20 22 2e 2f 74  d Tcl.  See "./t
0860: 63 6c 2f 62 75 69 6c 64 2f 62 75 69 6c 64 2e 6c  cl/build/build.l
0870: 6f 67 22 27 0a 09 09 65 63 68 6f 20 27 50 72 6f  og"'...echo 'Pro
0880: 63 65 65 64 69 6e 67 20 77 69 74 68 20 73 79 73  ceeding with sys
0890: 74 65 6d 20 54 63 6c 2e 20 20 42 75 69 6c 64 69  tem Tcl.  Buildi
08a0: 6e 67 20 6d 69 67 68 74 20 66 61 69 6c 2e 27 0a  ng might fail.'.
08b0: 09 29 0a 0a 09 54 43 4c 42 55 49 4c 44 44 49 52  .)...TCLBUILDDIR
08c0: 3d 22 24 28 63 61 74 20 22 24 7b 50 52 4f 4a 52  ="$(cat "${PROJR
08d0: 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d  OOTDIR}/platform
08e0: 2e 6d 61 67 69 63 2e 64 69 72 22 29 22 0a 09 65  .magic.dir")"..e
08f0: 78 70 6f 72 74 20 54 43 4c 42 55 49 4c 44 44 49  xport TCLBUILDDI
0900: 52 0a 0a 09 69 66 20 5b 20 2d 64 20 22 24 7b 54  R...if [ -d "${T
0910: 43 4c 49 4e 53 54 44 49 52 7d 22 20 2d 61 20 2d  CLINSTDIR}" -a -
0920: 66 20 22 24 7b 54 43 4c 49 4e 53 54 44 49 52 7d  f "${TCLINSTDIR}
0930: 2f 6c 69 62 2f 74 63 6c 43 6f 6e 66 69 67 2e 73  /lib/tclConfig.s
0940: 68 22 20 5d 3b 20 74 68 65 6e 0a 09 09 54 43 4c  h" ]; then...TCL
0950: 43 4f 4e 46 49 47 44 49 52 3d 22 24 7b 54 43 4c  CONFIGDIR="${TCL
0960: 49 4e 53 54 44 49 52 7d 2f 6c 69 62 22 0a 09 65  INSTDIR}/lib"..e
0970: 6c 69 66 20 5b 20 2d 64 20 22 24 7b 54 43 4c 42  lif [ -d "${TCLB
0980: 55 49 4c 44 44 49 52 7d 22 20 2d 61 20 2d 66 20  UILDDIR}" -a -f 
0990: 22 24 7b 54 43 4c 42 55 49 4c 44 44 49 52 7d 2f  "${TCLBUILDDIR}/
09a0: 74 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20 5d 3b  tclConfig.sh" ];
09b0: 20 74 68 65 6e 0a 09 09 54 43 4c 43 4f 4e 46 49   then...TCLCONFI
09c0: 47 44 49 52 3d 22 24 7b 54 43 4c 42 55 49 4c 44  GDIR="${TCLBUILD
09d0: 44 49 52 7d 22 0a 09 65 6c 73 65 0a 09 09 75 6e  DIR}"..else...un
09e0: 73 65 74 20 54 43 4c 50 52 49 56 41 54 45 0a 0a  set TCLPRIVATE..
09f0: 09 09 54 43 4c 43 4f 4e 46 49 47 44 49 52 3d 24  ..TCLCONFIGDIR=$
0a00: 28 0a 09 09 09 28 0a 09 09 09 09 65 63 68 6f 20  (....(.....echo 
0a10: 22 24 7b 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41  "${LD_LIBRARY_PA
0a20: 54 48 7d 22 20 7c 20 74 72 20 27 3a 27 20 22 5c  TH}" | tr ':' "\
0a30: 6e 22 0a 09 09 09 09 63 61 74 20 2f 65 74 63 2f  n".....cat /etc/
0a40: 6c 64 2e 73 6f 2e 63 6f 6e 66 20 32 3e 2f 64 65  ld.so.conf 2>/de
0a50: 76 2f 6e 75 6c 6c 0a 09 09 09 09 63 72 6c 65 20  v/null.....crle 
0a60: 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 67 72  2>/dev/null | gr
0a70: 65 70 20 27 5e 20 2a 44 65 66 61 75 6c 74 20 4c  ep '^ *Default L
0a80: 69 62 72 61 72 79 20 50 61 74 68 27 20 7c 20 73  ibrary Path' | s
0a90: 65 64 20 27 73 40 5e 20 2a 44 65 66 61 75 6c 74  ed 's@^ *Default
0aa0: 20 4c 69 62 72 61 72 79 20 50 61 74 68 5b 5e 3a   Library Path[^:
0ab0: 5d 2a 3a 5b 5e 3a 5d 2a 2f 40 2f 40 27 20 7c 20  ]*:[^:]*/@/@' | 
0ac0: 74 72 20 27 3a 27 20 22 5c 6e 22 0a 09 09 09 29  tr ':' "\n"....)
0ad0: 20 7c 20 67 72 65 70 20 27 5e 2f 27 20 7c 20 77   | grep '^/' | w
0ae0: 68 69 6c 65 20 72 65 61 64 20 63 68 6b 6c 69 62  hile read chklib
0af0: 64 69 72 3b 20 64 6f 0a 09 09 09 09 69 66 20 5b  dir; do.....if [
0b00: 20 2d 66 20 22 24 7b 63 68 6b 6c 69 62 64 69 72   -f "${chklibdir
0b10: 7d 2f 74 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20  }/tclConfig.sh" 
0b20: 5d 3b 20 74 68 65 6e 0a 09 09 09 09 09 65 63 68  ]; then......ech
0b30: 6f 20 22 24 7b 63 68 6b 6c 69 62 64 69 72 7d 22  o "${chklibdir}"
0b40: 0a 09 09 09 09 09 62 72 65 61 6b 0a 09 09 09 09  ......break.....
0b50: 66 69 0a 09 09 09 64 6f 6e 65 0a 09 09 29 0a 09  fi....done...)..
0b60: 09 69 66 20 5b 20 2d 7a 20 22 24 7b 54 43 4c 43  .if [ -z "${TCLC
0b70: 4f 4e 46 49 47 44 49 52 7d 22 20 5d 3b 20 74 68  ONFIGDIR}" ]; th
0b80: 65 6e 0a 09 09 09 54 43 4c 43 4f 4e 46 49 47 44  en....TCLCONFIGD
0b90: 49 52 3d 22 2f 75 73 72 2f 6c 69 62 22 0a 09 09  IR="/usr/lib"...
0ba0: 66 69 0a 0a 09 09 54 43 4c 50 52 49 56 41 54 45  fi....TCLPRIVATE
0bb0: 3d 22 24 28 64 69 72 6e 61 6d 65 20 22 24 7b 54  ="$(dirname "${T
0bc0: 43 4c 43 4f 4e 46 49 47 44 49 52 7d 22 29 2f 69  CLCONFIGDIR}")/i
0bd0: 6e 63 6c 75 64 65 2f 74 63 6c 2d 70 72 69 76 61  nclude/tcl-priva
0be0: 74 65 22 0a 09 66 69 0a 0a 09 41 44 44 46 4c 41  te"..fi...ADDFLA
0bf0: 47 53 3d 22 22 0a 09 69 66 20 5b 20 2d 6e 20 22  GS=""..if [ -n "
0c00: 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 22 20 5d  ${TCLPRIVATE}" ]
0c10: 3b 20 74 68 65 6e 0a 09 09 41 44 44 46 4c 41 47  ; then...ADDFLAG
0c20: 53 3d 22 24 7b 41 44 44 46 4c 41 47 53 7d 20 2d  S="${ADDFLAGS} -
0c30: 49 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 20 2d  I${TCLPRIVATE} -
0c40: 49 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 2f 67  I${TCLPRIVATE}/g
0c50: 65 6e 65 72 69 63 22 0a 09 66 69 0a 09 69 66 20  eneric"..fi..if 
0c60: 5b 20 2d 6e 20 22 24 7b 54 43 4c 42 55 49 4c 44  [ -n "${TCLBUILD
0c70: 44 49 52 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09  DIR}" ]; then...
0c80: 41 44 44 46 4c 41 47 53 3d 22 24 7b 41 44 44 46  ADDFLAGS="${ADDF
0c90: 4c 41 47 53 7d 20 2d 49 24 7b 54 43 4c 42 55 49  LAGS} -I${TCLBUI
0ca0: 4c 44 44 49 52 7d 22 0a 09 66 69 0a 09 43 46 4c  LDDIR}"..fi..CFL
0cb0: 41 47 53 3d 22 24 7b 41 44 44 46 4c 41 47 53 7d  AGS="${ADDFLAGS}
0cc0: 20 24 7b 43 46 4c 41 47 53 7d 22 0a 09 43 50 50   ${CFLAGS}"..CPP
0cd0: 46 4c 41 47 53 3d 22 24 7b 41 44 44 46 4c 41 47  FLAGS="${ADDFLAG
0ce0: 53 7d 20 24 7b 43 50 50 46 4c 41 47 53 7d 22 0a  S} ${CPPFLAGS}".
0cf0: 0a 09 75 6e 73 65 74 20 54 43 4c 56 45 52 53 0a  ..unset TCLVERS.
0d00: 09 75 6e 73 65 74 20 41 44 44 46 4c 41 47 53 0a  .unset ADDFLAGS.
0d10: 09 65 78 70 6f 72 74 20 54 43 4c 42 55 49 4c 44  .export TCLBUILD
0d20: 44 49 52 20 54 43 4c 43 4f 4e 46 49 47 44 49 52  DIR TCLCONFIGDIR
0d30: 20 54 43 4c 50 52 49 56 41 54 45 20 43 46 4c 41   TCLPRIVATE CFLA
0d40: 47 53 20 43 50 50 46 4c 41 47 53 0a 66 69 0a 0a  GS CPPFLAGS.fi..
0d50: 23 20 44 65 74 65 72 6d 69 6e 65 20 70 6c 61 74  # Determine plat
0d60: 66 6f 72 6d 0a 69 66 20 5b 20 2d 7a 20 22 24 7b  form.if [ -z "${
0d70: 46 4f 52 43 45 5f 50 4c 41 54 46 4f 52 4d 7d 22  FORCE_PLATFORM}"
0d80: 20 5d 3b 20 74 68 65 6e 0a 09 50 4c 41 54 46 4f   ]; then..PLATFO
0d90: 52 4d 3d 22 24 28 2e 2f 70 6c 61 74 66 6f 72 6d  RM="$(./platform
0da0: 29 22 0a 09 65 78 70 6f 72 74 20 50 4c 41 54 46  )"..export PLATF
0db0: 4f 52 4d 0a 65 6c 73 65 0a 09 50 4c 41 54 46 4f  ORM.else..PLATFO
0dc0: 52 4d 3d 22 24 7b 46 4f 52 43 45 5f 50 4c 41 54  RM="${FORCE_PLAT
0dd0: 46 4f 52 4d 7d 22 0a 66 69 0a 0a 23 20 42 75 69  FORM}".fi..# Bui
0de0: 6c 64 20 61 6c 6c 20 61 70 70 72 6f 70 72 69 61  ld all appropria
0df0: 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 66  te directories.f
0e00: 61 69 6c 65 64 64 69 72 73 3d 22 22 0a 66 6f 72  aileddirs="".for
0e10: 20 64 69 72 20 69 6e 20 2a 2f 3b 20 64 6f 0a 09   dir in */; do..
0e20: 65 78 70 6f 72 74 20 64 69 72 0a 0a 09 69 66 20  export dir...if 
0e30: 5b 20 21 20 2d 66 20 22 24 7b 64 69 72 7d 2f 62  [ ! -f "${dir}/b
0e40: 75 69 6c 64 2e 73 68 22 20 5d 3b 20 74 68 65 6e  uild.sh" ]; then
0e50: 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a  ...continue..fi.
0e60: 0a 09 69 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f  ..if [ "${CLEANO
0e70: 4e 4c 59 7d 22 20 3d 20 22 30 22 20 5d 3b 20 74  NLY}" = "0" ]; t
0e80: 68 65 6e 0a 09 09 65 63 68 6f 20 22 42 75 69 6c  hen...echo "Buil
0e90: 64 69 6e 67 20 24 7b 64 69 72 7d 22 0a 09 66 69  ding ${dir}"..fi
0ea0: 0a 0a 09 66 61 69 6c 65 64 3d 30 0a 09 28 0a 09  ...failed=0..(..
0eb0: 09 63 64 20 22 24 7b 64 69 72 7d 22 20 7c 7c 20  .cd "${dir}" || 
0ec0: 65 78 69 74 20 31 0a 0a 09 09 72 6d 20 2d 72 66  exit 1....rm -rf
0ed0: 20 22 62 75 69 6c 64 22 20 22 6f 75 74 22 0a 09   "build" "out"..
0ee0: 09 72 6d 20 2d 66 20 66 61 69 6c 65 64 2d 2a 2e  .rm -f failed-*.
0ef0: 6c 6f 67 0a 09 09 69 66 20 5b 20 22 24 7b 44 49  log...if [ "${DI
0f00: 53 54 43 4c 45 41 4e 7d 22 20 3d 20 22 31 22 20  STCLEAN}" = "1" 
0f10: 5d 3b 20 74 68 65 6e 0a 09 09 09 72 6d 20 2d 72  ]; then....rm -r
0f20: 66 20 22 73 72 63 22 0a 09 09 66 69 0a 09 09 69  f "src"...fi...i
0f30: 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59  f [ "${CLEANONLY
0f40: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e  }" = "1" ]; then
0f50: 0a 09 09 09 65 78 69 74 20 30 0a 09 09 66 69 0a  ....exit 0...fi.
0f60: 0a 09 09 6d 6b 64 69 72 20 2d 70 20 22 6f 75 74  ...mkdir -p "out
0f70: 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20 3e 2f  /${PLATFORM}" >/
0f80: 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f  dev/null 2>/dev/
0f90: 6e 75 6c 6c 0a 0a 09 09 2e 2f 62 75 69 6c 64 2e  null...../build.
0fa0: 73 68 20 3e 20 22 6f 75 74 2f 24 7b 50 4c 41 54  sh > "out/${PLAT
0fb0: 46 4f 52 4d 7d 2f 62 75 69 6c 64 2e 6c 6f 67 22  FORM}/build.log"
0fc0: 20 32 3e 26 31 20 7c 7c 20 65 78 69 74 20 31 0a   2>&1 || exit 1.
0fd0: 09 29 20 7c 7c 20 66 61 69 6c 65 64 3d 31 0a 0a  .) || failed=1..
0fe0: 09 69 66 20 5b 20 22 24 7b 66 61 69 6c 65 64 7d  .if [ "${failed}
0ff0: 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e 0a  " = "1" ]; then.
1000: 09 09 63 70 20 22 24 7b 64 69 72 7d 2f 6f 75 74  ..cp "${dir}/out
1010: 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 2f 62 75 69  /${PLATFORM}/bui
1020: 6c 64 2e 6c 6f 67 22 20 22 24 7b 64 69 72 7d 2f  ld.log" "${dir}/
1030: 66 61 69 6c 65 64 2d 24 7b 50 4c 41 54 46 4f 52  failed-${PLATFOR
1040: 4d 7d 2d 60 68 6f 73 74 6e 61 6d 65 60 2e 6c 6f  M}-`hostname`.lo
1050: 67 22 0a 0a 09 09 72 6d 20 2d 72 66 20 22 24 7b  g"....rm -rf "${
1060: 64 69 72 7d 2f 6f 75 74 22 0a 09 09 66 61 69 6c  dir}/out"...fail
1070: 65 64 64 69 72 73 3d 22 24 7b 66 61 69 6c 65 64  eddirs="${failed
1080: 64 69 72 73 7d 20 24 7b 64 69 72 7d 22 0a 09 09  dirs} ${dir}"...
1090: 65 63 68 6f 20 22 46 61 69 6c 65 64 20 74 6f 20  echo "Failed to 
10a0: 62 75 69 6c 64 20 24 7b 64 69 72 7d 22 0a 09 66  build ${dir}"..f
10b0: 69 0a 64 6f 6e 65 0a 0a 23 20 43 6c 65 61 6e 75  i.done..# Cleanu
10c0: 70 20 69 73 20 64 6f 6e 65 20 61 74 20 74 68 69  p is done at thi
10d0: 73 20 70 6f 69 6e 74 0a 69 66 20 5b 20 22 24 7b  s point.if [ "${
10e0: 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 3d 20 22 31  CLEANONLY}" = "1
10f0: 22 20 5d 3b 20 74 68 65 6e 0a 09 65 78 69 74 20  " ]; then..exit 
1100: 30 0a 66 69 0a 0a 23 20 4c 65 74 20 74 68 65 20  0.fi..# Let the 
1110: 75 73 65 72 20 6b 6e 6f 77 20 77 68 61 74 20 66  user know what f
1120: 61 69 6c 65 64 20 74 6f 20 62 75 69 6c 64 0a 69  ailed to build.i
1130: 66 20 5b 20 2d 6e 20 22 24 7b 66 61 69 6c 65 64  f [ -n "${failed
1140: 64 69 72 73 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  dirs}" ]; then..
1150: 65 63 68 6f 20 22 54 68 65 20 66 6f 6c 6c 6f 77  echo "The follow
1160: 69 6e 67 20 66 61 69 6c 65 64 20 74 6f 20 62 75  ing failed to bu
1170: 69 6c 64 3a 24 7b 66 61 69 6c 65 64 64 69 72 73  ild:${faileddirs
1180: 7d 22 0a 66 69 0a 0a 23 20 43 72 65 61 74 65 20  }".fi..# Create 
1190: 74 61 72 66 69 6c 65 20 6f 66 20 62 75 69 6c 74  tarfile of built
11a0: 20 70 61 63 6b 61 67 65 73 0a 44 41 54 45 43 4f   packages.DATECO
11b0: 44 45 3d 22 24 28 64 61 74 65 20 2b 25 59 25 6d  DE="$(date +%Y%m
11c0: 25 64 25 48 25 4d 29 22 0a 4f 55 54 46 49 4c 45  %d%H%M)".OUTFILE
11d0: 42 41 53 45 3d 22 74 63 6c 70 6b 67 73 2d 24 7b  BASE="tclpkgs-${
11e0: 50 4c 41 54 46 4f 52 4d 7d 2d 24 7b 44 41 54 45  PLATFORM}-${DATE
11f0: 43 4f 44 45 7d 22 0a 74 61 72 20 2d 63 66 20 2d  CODE}".tar -cf -
1200: 20 2a 2f 6f 75 74 20 7c 20 62 7a 69 70 32 20 2d   */out | bzip2 -
1210: 39 63 20 3e 20 22 24 7b 4f 55 54 46 49 4c 45 42  9c > "${OUTFILEB
1220: 41 53 45 7d 2e 74 61 72 2e 62 7a 32 22 0a 0a 65  ASE}.tar.bz2"..e
1230: 78 69 74 20 30 0a                                xit 0.