Artifact 0884ea15898abd0b2b650946333513a63c80016d:
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 2a 2f 6f 75 74 0a 69 66 20 5b 20 22 24 rf */out.if [ "$
0180: 7b 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 3d 20 22 {CLEANONLY}" = "
0190: 31 22 20 5d 3b 20 74 68 65 6e 0a 09 72 6d 20 2d 1" ]; then..rm -
01a0: 72 66 20 74 63 6c 2f 62 75 69 6c 64 20 74 63 6c rf tcl/build tcl
01b0: 2f 69 6e 73 74 2d 2a 0a 09 72 6d 20 2d 66 20 70 /inst-*..rm -f p
01c0: 6c 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 2a 0a latform.magic.*.
01d0: 66 69 0a 69 66 20 5b 20 22 24 7b 44 49 53 54 43 fi.if [ "${DISTC
01e0: 4c 45 41 4e 7d 22 20 3d 20 22 31 22 20 5d 3b 20 LEAN}" = "1" ];
01f0: 74 68 65 6e 0a 09 72 6d 20 2d 72 66 20 74 63 6c then..rm -rf tcl
0200: 0a 66 69 0a 0a 69 66 20 5b 20 22 24 7b 43 4c 45 .fi..if [ "${CLE
0210: 41 4e 4f 4e 4c 59 7d 22 20 3d 20 22 30 22 20 5d ANONLY}" = "0" ]
0220: 3b 20 74 68 65 6e 0a 09 50 52 4f 4a 52 4f 4f 54 ; then..PROJROOT
0230: 44 49 52 3d 22 24 28 70 77 64 29 22 0a 09 65 78 DIR="$(pwd)"..ex
0240: 70 6f 72 74 20 50 52 4f 4a 52 4f 4f 54 44 49 52 port PROJROOTDIR
0250: 0a 0a 09 66 6f 72 20 54 43 4c 56 45 52 53 20 69 ...for TCLVERS i
0260: 6e 20 38 2e 35 2e 31 30 20 38 2e 34 2e 31 39 3b n 8.5.10 8.4.19;
0270: 20 64 6f 0a 09 09 54 43 4c 53 48 4f 52 54 56 45 do...TCLSHORTVE
0280: 52 53 3d 22 24 28 65 63 68 6f 20 22 24 7b 54 43 RS="$(echo "${TC
0290: 4c 56 45 52 53 7d 22 20 7c 20 63 75 74 20 2d 66 LVERS}" | cut -f
02a0: 20 31 2d 32 20 2d 64 20 27 2e 27 29 22 0a 09 09 1-2 -d '.')"...
02b0: 54 43 4c 50 52 49 56 41 54 45 3d 22 24 28 70 77 TCLPRIVATE="$(pw
02c0: 64 29 2f 74 63 6c 2f 62 75 69 6c 64 2f 74 63 6c d)/tcl/build/tcl
02d0: 24 7b 54 43 4c 56 45 52 53 7d 22 0a 09 09 54 43 ${TCLVERS}"...TC
02e0: 4c 49 4e 53 54 44 49 52 3d 22 24 28 70 77 64 29 LINSTDIR="$(pwd)
02f0: 2f 74 63 6c 2f 69 6e 73 74 2d 24 7b 54 43 4c 53 /tcl/inst-${TCLS
0300: 48 4f 52 54 56 45 52 53 7d 22 0a 09 09 65 78 70 HORTVERS}"...exp
0310: 6f 72 74 20 54 43 4c 56 45 52 53 20 54 43 4c 50 ort TCLVERS TCLP
0320: 52 49 56 41 54 45 20 54 43 4c 49 4e 53 54 44 49 RIVATE TCLINSTDI
0330: 52 0a 0a 09 09 69 66 20 5b 20 2d 66 20 22 24 7b R....if [ -f "${
0340: 54 43 4c 49 4e 53 54 44 49 52 7d 2f 6c 69 62 2f TCLINSTDIR}/lib/
0350: 74 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20 5d 3b tclConfig.sh" ];
0360: 20 74 68 65 6e 0a 09 09 09 65 63 68 6f 20 22 53 then....echo "S
0370: 6b 69 70 70 69 6e 67 20 62 75 69 6c 64 20 6f 66 kipping build of
0380: 20 54 63 6c 20 24 7b 54 43 4c 56 45 52 53 7d 20 Tcl ${TCLVERS}
0390: 28 61 6c 72 65 61 64 79 20 66 6f 75 6e 64 29 22 (already found)"
03a0: 0a 0a 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 09 .....continue...
03b0: 66 69 0a 0a 09 09 6d 6b 64 69 72 20 74 63 6c 20 fi....mkdir tcl
03c0: 74 63 6c 2f 62 75 69 6c 64 20 3e 2f 64 65 76 2f tcl/build >/dev/
03d0: 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c null 2>/dev/null
03e0: 0a 0a 09 09 23 20 43 6c 65 61 6e 20 74 68 69 73 ....# Clean this
03f0: 20 75 70 20 73 6f 20 74 68 61 74 20 6f 74 68 65 up so that othe
0400: 72 20 70 6c 61 74 66 6f 72 6d 73 20 64 6f 6e 27 r platforms don'
0410: 74 20 75 73 65 20 69 74 0a 09 09 72 6d 20 2d 66 t use it...rm -f
0420: 20 22 24 7b 50 52 4f 4a 52 4f 4f 54 44 49 52 7d "${PROJROOTDIR}
0430: 2f 70 6c 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e /platform.magic.
0440: 64 69 72 22 0a 0a 09 09 69 66 20 5b 20 21 20 2d dir"....if [ ! -
0450: 66 20 22 74 63 6c 2f 73 72 63 2f 74 63 6c 24 7b f "tcl/src/tcl${
0460: 54 43 4c 56 45 52 53 7d 2e 74 61 72 2e 67 7a 22 TCLVERS}.tar.gz"
0470: 20 5d 3b 20 74 68 65 6e 0a 09 09 09 6d 6b 64 69 ]; then....mkdi
0480: 72 20 74 63 6c 2f 73 72 63 20 3e 2f 64 65 76 2f r tcl/src >/dev/
0490: 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c null 2>/dev/null
04a0: 0a 09 09 09 77 67 65 74 20 2d 6f 20 2f 64 65 76 ....wget -o /dev
04b0: 2f 6e 75 6c 6c 20 2d 4f 20 22 74 63 6c 2f 73 72 /null -O "tcl/sr
04c0: 63 2f 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2e c/tcl${TCLVERS}.
04d0: 74 61 72 2e 67 7a 22 20 22 68 74 74 70 3a 2f 2f tar.gz" "http://
04e0: 70 72 64 6f 77 6e 6c 6f 61 64 73 2e 73 6f 75 72 prdownloads.sour
04f0: 63 65 66 6f 72 67 65 2e 6e 65 74 2f 74 63 6c 2f ceforge.net/tcl/
0500: 74 63 6c 24 7b 54 43 4c 56 45 52 53 7d 2d 73 72 tcl${TCLVERS}-sr
0510: 63 2e 74 61 72 2e 67 7a 22 0a 09 09 66 69 0a 0a c.tar.gz"...fi..
0520: 09 09 65 63 68 6f 20 22 42 75 69 6c 64 69 6e 67 ..echo "Building
0530: 20 54 63 6c 20 24 7b 54 43 4c 56 45 52 53 7d 22 Tcl ${TCLVERS}"
0540: 0a 09 09 28 0a 09 09 09 6d 6b 64 69 72 20 74 63 ...(....mkdir tc
0550: 6c 2f 62 75 69 6c 64 20 3e 2f 64 65 76 2f 6e 75 l/build >/dev/nu
0560: 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 09 ll 2>/dev/null..
0570: 09 09 63 64 20 74 63 6c 2f 62 75 69 6c 64 20 7c ..cd tcl/build |
0580: 7c 20 65 78 69 74 20 31 0a 09 09 09 67 7a 69 70 | exit 1....gzip
0590: 20 2d 64 63 20 22 2e 2e 2f 73 72 63 2f 74 63 6c -dc "../src/tcl
05a0: 24 7b 54 43 4c 56 45 52 53 7d 2e 74 61 72 2e 67 ${TCLVERS}.tar.g
05b0: 7a 22 20 7c 20 74 61 72 20 2d 78 66 20 2d 0a 0a z" | tar -xf -..
05c0: 09 09 09 23 20 53 6f 75 72 63 65 20 66 69 78 2d ...# Source fix-
05d0: 75 70 73 0a 09 09 09 23 23 20 44 44 45 20 61 6e ups....## DDE an
05e0: 64 20 52 65 67 20 63 61 6e 20 66 61 69 6c 20 74 d Reg can fail t
05f0: 6f 20 63 6f 6d 70 69 6c 65 2c 20 62 75 74 20 77 o compile, but w
0600: 65 20 64 6f 6e 27 74 20 63 61 72 65 0a 09 09 09 e don't care....
0610: 65 63 68 6f 20 27 27 20 3e 20 22 24 7b 54 43 4c echo '' > "${TCL
0620: 50 52 49 56 41 54 45 7d 2f 77 69 6e 2f 74 63 6c PRIVATE}/win/tcl
0630: 57 69 6e 44 64 65 2e 63 22 0a 09 09 09 65 63 68 WinDde.c"....ech
0640: 6f 20 27 27 20 3e 20 22 24 7b 54 43 4c 50 52 49 o '' > "${TCLPRI
0650: 56 41 54 45 7d 2f 77 69 6e 2f 74 63 6c 57 69 6e VATE}/win/tclWin
0660: 52 65 67 2e 63 22 0a 0a 09 09 09 23 23 20 4c 6f Reg.c".....## Lo
0670: 6e 67 2d 73 74 61 6e 64 69 6e 67 20 62 75 67 20 ng-standing bug
0680: 69 6e 20 54 63 6c 0a 09 09 09 65 63 68 6f 20 27 in Tcl....echo '
0690: 23 75 6e 64 65 66 20 73 74 72 74 6f 64 27 20 3e #undef strtod' >
06a0: 20 22 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 2f "${TCLPRIVATE}/
06b0: 63 6f 6d 70 61 74 2f 73 74 72 74 6f 64 2e 63 2e compat/strtod.c.
06c0: 6e 65 77 22 0a 09 09 09 63 61 74 20 22 24 7b 54 new"....cat "${T
06d0: 43 4c 50 52 49 56 41 54 45 7d 2f 63 6f 6d 70 61 CLPRIVATE}/compa
06e0: 74 2f 73 74 72 74 6f 64 2e 63 22 20 3e 3e 20 22 t/strtod.c" >> "
06f0: 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 2f 63 6f ${TCLPRIVATE}/co
0700: 6d 70 61 74 2f 73 74 72 74 6f 64 2e 63 2e 6e 65 mpat/strtod.c.ne
0710: 77 22 0a 09 09 09 63 61 74 20 22 24 7b 54 43 4c w"....cat "${TCL
0720: 50 52 49 56 41 54 45 7d 2f 63 6f 6d 70 61 74 2f PRIVATE}/compat/
0730: 73 74 72 74 6f 64 2e 63 2e 6e 65 77 22 20 3e 20 strtod.c.new" >
0740: 22 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 2f 63 "${TCLPRIVATE}/c
0750: 6f 6d 70 61 74 2f 73 74 72 74 6f 64 2e 63 22 0a ompat/strtod.c".
0760: 09 09 09 72 6d 20 2d 66 20 22 24 7b 54 43 4c 50 ...rm -f "${TCLP
0770: 52 49 56 41 54 45 7d 2f 63 6f 6d 70 61 74 2f 73 RIVATE}/compat/s
0780: 74 72 74 6f 64 2e 63 2e 6e 65 77 22 0a 0a 09 09 trtod.c.new"....
0790: 09 66 6f 72 20 64 69 72 20 69 6e 20 75 6e 69 78 .for dir in unix
07a0: 20 77 69 6e 20 6d 61 63 6f 73 78 3b 20 64 6f 0a win macosx; do.
07b0: 09 09 09 09 63 64 20 22 24 7b 54 43 4c 50 52 49 ....cd "${TCLPRI
07c0: 56 41 54 45 7d 2f 24 7b 64 69 72 7d 22 20 7c 7c VATE}/${dir}" ||
07d0: 20 65 78 69 74 20 31 0a 0a 09 09 09 09 65 63 68 exit 1......ech
07e0: 6f 20 22 20 45 78 65 63 75 74 69 6e 67 3a 20 2e o " Executing: .
07f0: 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d 65 6e 61 /configure --ena
0800: 62 6c 65 2d 74 68 72 65 61 64 73 20 24 7b 43 4f ble-threads ${CO
0810: 4e 46 49 47 55 52 45 45 58 54 52 41 7d 20 2d 2d NFIGUREEXTRA} --
0820: 70 72 65 66 69 78 3d 5c 22 24 7b 54 43 4c 49 4e prefix=\"${TCLIN
0830: 53 54 44 49 52 7d 5c 22 22 0a 09 09 09 09 2e 2f STDIR}\""....../
0840: 63 6f 6e 66 69 67 75 72 65 20 2d 2d 65 6e 61 62 configure --enab
0850: 6c 65 2d 74 68 72 65 61 64 73 20 24 7b 43 4f 4e le-threads ${CON
0860: 46 49 47 55 52 45 45 58 54 52 41 7d 20 2d 2d 70 FIGUREEXTRA} --p
0870: 72 65 66 69 78 3d 22 24 7b 54 43 4c 49 4e 53 54 refix="${TCLINST
0880: 44 49 52 7d 22 0a 0a 09 09 09 09 65 63 68 6f 20 DIR}"......echo
0890: 22 20 45 78 65 63 75 74 69 6e 67 3a 20 24 7b 4d " Executing: ${M
08a0: 41 4b 45 3a 2d 6d 61 6b 65 7d 22 0a 09 09 09 09 AKE:-make}".....
08b0: 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 7c 7c ${MAKE:-make} ||
08c0: 20 28 0a 09 09 09 09 09 72 6d 20 2d 66 20 74 63 (......rm -f tc
08d0: 6c 43 6f 6e 66 69 67 2e 73 68 0a 0a 09 09 09 09 lConfig.sh......
08e0: 09 65 78 69 74 20 31 0a 09 09 09 09 29 20 7c 7c .exit 1.....) ||
08f0: 20 63 6f 6e 74 69 6e 75 65 0a 0a 09 09 09 09 23 continue......#
0900: 23 20 4b 6c 75 64 67 65 20 74 6f 20 6d 61 6b 65 # Kludge to make
0910: 20 54 63 6c 20 69 6e 73 74 61 6c 6c 20 77 68 65 Tcl install whe
0920: 6e 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e n cross-compilin
0930: 67 2e 0a 09 09 09 09 73 65 64 20 27 73 40 5e 24 g......sed 's@^$
0940: 7b 54 43 4c 5f 45 58 45 7d 40 62 6c 61 68 40 27 {TCL_EXE}@blah@'
0950: 20 4d 61 6b 65 66 69 6c 65 20 3e 20 4d 61 6b 65 Makefile > Make
0960: 66 69 6c 65 2e 6e 65 77 0a 09 09 09 09 73 65 64 file.new.....sed
0970: 20 27 73 40 5e 24 28 54 43 4c 53 48 29 40 62 6c 's@^$(TCLSH)@bl
0980: 61 68 40 27 20 4d 61 6b 65 66 69 6c 65 2e 6e 65 ah@' Makefile.ne
0990: 77 20 3e 20 4d 61 6b 65 66 69 6c 65 0a 09 09 09 w > Makefile....
09a0: 09 72 6d 20 2d 66 20 4d 61 6b 65 66 69 6c 65 2e .rm -f Makefile.
09b0: 6e 65 77 0a 0a 09 09 09 09 65 63 68 6f 20 22 20 new......echo "
09c0: 45 78 65 63 75 74 69 6e 67 3a 20 24 7b 4d 41 4b Executing: ${MAK
09d0: 45 3a 2d 6d 61 6b 65 7d 20 69 6e 73 74 61 6c 6c E:-make} install
09e0: 22 0a 09 09 09 09 24 7b 4d 41 4b 45 3a 2d 6d 61 ".....${MAKE:-ma
09f0: 6b 65 7d 20 69 6e 73 74 61 6c 6c 20 54 43 4c 5f ke} install TCL_
0a00: 45 58 45 3d 22 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e EXE="../../../..
0a10: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f /../../../../../
0a20: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e ../../../../../.
0a30: 2e 2f 2e 2e 2f 2e 2e 2f 24 28 77 68 69 63 68 20 ./../../$(which
0a40: 22 24 7b 54 43 4c 53 48 5f 4e 41 54 49 56 45 3a "${TCLSH_NATIVE:
0a50: 2d 74 63 6c 73 68 7d 22 29 22 20 54 43 4c 53 48 -tclsh}")" TCLSH
0a60: 3d 22 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e ="../../../../..
0a70: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f /../../../../../
0a80: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e ../../../../../.
0a90: 2e 2f 2e 2e 2f 24 28 77 68 69 63 68 20 22 24 7b ./../$(which "${
0aa0: 54 43 4c 53 48 5f 4e 41 54 49 56 45 3a 2d 74 63 TCLSH_NATIVE:-tc
0ab0: 6c 73 68 7d 22 29 22 20 7c 7c 20 62 72 65 61 6b lsh}")" || break
0ac0: 0a 0a 09 09 09 09 4c 44 5f 4c 49 42 52 41 52 59 ......LD_LIBRARY
0ad0: 5f 50 41 54 48 3d 22 2e 3a 24 7b 4c 44 5f 4c 49 _PATH=".:${LD_LI
0ae0: 42 52 41 52 59 5f 50 41 54 48 7d 22 0a 09 09 09 BRARY_PATH}"....
0af0: 09 4c 44 5f 52 55 4e 5f 50 41 54 48 3d 22 2e 3a .LD_RUN_PATH=".:
0b00: 24 7b 4c 44 5f 52 55 4e 5f 50 41 54 48 7d 22 0a ${LD_RUN_PATH}".
0b10: 09 09 09 09 65 78 70 6f 72 74 20 4c 44 5f 4c 49 ....export LD_LI
0b20: 42 52 41 52 59 5f 50 41 54 48 20 4c 44 5f 52 55 BRARY_PATH LD_RU
0b30: 4e 5f 50 41 54 48 0a 0a 09 09 09 09 66 69 6c 65 N_PATH......file
0b40: 20 74 63 6c 73 68 20 74 63 6c 73 68 2a 2e 65 78 tclsh tclsh*.ex
0b50: 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 e 2>/dev/null |
0b60: 67 72 65 70 20 2d 69 76 20 27 4e 6f 20 73 75 63 grep -iv 'No suc
0b70: 68 20 66 69 6c 65 27 20 3e 20 22 24 7b 50 52 4f h file' > "${PRO
0b80: 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66 6f JROOTDIR}/platfo
0b90: 72 6d 2e 6d 61 67 69 63 2e 66 69 6c 65 22 0a 09 rm.magic.file"..
0ba0: 09 09 09 69 66 20 5b 20 2d 66 20 74 63 6c 73 68 ...if [ -f tclsh
0bb0: 2a 2e 65 78 65 20 5d 3b 20 74 68 65 6e 0a 09 09 *.exe ]; then...
0bc0: 09 09 09 65 63 68 6f 20 27 70 75 74 73 20 22 24 ...echo 'puts "$
0bd0: 3a 3a 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f ::tcl_platform(o
0be0: 73 29 22 27 20 7c 20 2e 2f 74 63 6c 73 68 2a 2e s)"' | ./tclsh*.
0bf0: 65 78 65 20 3e 20 22 24 7b 50 52 4f 4a 52 4f 4f exe > "${PROJROO
0c00: 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d 2e 6d TDIR}/platform.m
0c10: 61 67 69 63 2e 6f 73 22 20 32 3e 2f 64 65 76 2f agic.os" 2>/dev/
0c20: 6e 75 6c 6c 0a 09 09 09 09 65 6c 73 65 0a 09 09 null.....else...
0c30: 09 09 09 65 63 68 6f 20 27 70 75 74 73 20 22 24 ...echo 'puts "$
0c40: 3a 3a 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f ::tcl_platform(o
0c50: 73 29 22 27 20 7c 20 2e 2f 74 63 6c 73 68 20 3e s)"' | ./tclsh >
0c60: 20 22 24 7b 50 52 4f 4a 52 4f 4f 54 44 49 52 7d "${PROJROOTDIR}
0c70: 2f 70 6c 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e /platform.magic.
0c80: 6f 73 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a os" 2>/dev/null.
0c90: 09 09 09 09 66 69 0a 09 09 09 09 65 63 68 6f 20 ....fi.....echo
0ca0: 22 24 7b 64 69 72 7d 22 20 3e 20 22 24 7b 50 52 "${dir}" > "${PR
0cb0: 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66 OJROOTDIR}/platf
0cc0: 6f 72 6d 2e 6d 61 67 69 63 2e 70 6c 61 74 66 6f orm.magic.platfo
0cd0: 72 6d 22 0a 09 09 09 09 70 77 64 20 3e 20 22 24 rm".....pwd > "$
0ce0: 7b 50 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c {PROJROOTDIR}/pl
0cf0: 61 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 64 69 72 atform.magic.dir
0d00: 22 0a 0a 09 09 09 09 62 72 65 61 6b 0a 09 09 09 "......break....
0d10: 64 6f 6e 65 0a 0a 09 09 09 65 78 69 74 20 30 0a done.....exit 0.
0d20: 09 09 29 20 3e 20 22 74 63 6c 2f 62 75 69 6c 64 ..) > "tcl/build
0d30: 2f 62 75 69 6c 64 2d 24 7b 54 43 4c 56 45 52 53 /build-${TCLVERS
0d40: 7d 2e 6c 6f 67 22 20 32 3e 26 31 20 7c 7c 20 28 }.log" 2>&1 || (
0d50: 0a 09 09 09 65 63 68 6f 20 22 46 61 69 6c 65 64 ....echo "Failed
0d60: 20 74 6f 20 62 75 69 6c 64 20 54 63 6c 2e 20 20 to build Tcl.
0d70: 53 65 65 20 5c 22 2e 2f 74 63 6c 2f 62 75 69 6c See \"./tcl/buil
0d80: 64 2f 62 75 69 6c 64 2d 24 7b 54 43 4c 56 45 52 d/build-${TCLVER
0d90: 53 7d 2e 6c 6f 67 5c 22 22 20 3e 26 32 0a 09 09 S}.log\"" >&2...
0da0: 09 65 63 68 6f 20 27 41 62 6f 72 74 69 6e 67 2e .echo 'Aborting.
0db0: 27 20 3e 26 32 0a 0a 09 09 09 65 78 69 74 20 31 ' >&2.....exit 1
0dc0: 0a 09 09 29 20 7c 7c 20 65 78 69 74 20 31 0a 0a ...) || exit 1..
0dd0: 09 09 28 0a 09 09 09 72 6d 20 2d 66 20 22 24 7b ..(....rm -f "${
0de0: 50 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61 PROJROOTDIR}/pla
0df0: 74 66 6f 72 6d 2e 6d 61 67 69 63 2e 65 6e 76 2d tform.magic.env-
0e00: 24 7b 54 43 4c 53 48 4f 52 54 56 45 52 53 7d 22 ${TCLSHORTVERS}"
0e10: 0a 0a 09 09 09 54 43 4c 42 55 49 4c 44 44 49 52 .....TCLBUILDDIR
0e20: 3d 22 24 28 63 61 74 20 22 24 7b 50 52 4f 4a 52 ="$(cat "${PROJR
0e30: 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d OOTDIR}/platform
0e40: 2e 6d 61 67 69 63 2e 64 69 72 22 29 22 0a 09 09 .magic.dir")"...
0e50: 09 65 78 70 6f 72 74 20 54 43 4c 42 55 49 4c 44 .export TCLBUILD
0e60: 44 49 52 0a 0a 09 09 09 69 66 20 5b 20 2d 7a 20 DIR.....if [ -z
0e70: 22 24 7b 54 43 4c 42 55 49 4c 44 44 49 52 7d 22 "${TCLBUILDDIR}"
0e80: 20 5d 3b 20 74 68 65 6e 0a 09 09 09 09 54 43 4c ]; then.....TCL
0e90: 42 55 49 4c 44 44 49 52 3d 22 2f 64 65 76 2f 6e BUILDDIR="/dev/n
0ea0: 75 6c 6c 22 0a 09 09 09 66 69 0a 0a 09 09 09 69 ull"....fi.....i
0eb0: 66 20 5b 20 2d 64 20 22 24 7b 54 43 4c 49 4e 53 f [ -d "${TCLINS
0ec0: 54 44 49 52 7d 22 20 2d 61 20 2d 66 20 22 24 7b TDIR}" -a -f "${
0ed0: 54 43 4c 49 4e 53 54 44 49 52 7d 2f 6c 69 62 2f TCLINSTDIR}/lib/
0ee0: 74 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20 5d 3b tclConfig.sh" ];
0ef0: 20 74 68 65 6e 0a 09 09 09 09 54 43 4c 43 4f 4e then.....TCLCON
0f00: 46 49 47 44 49 52 3d 22 24 7b 54 43 4c 49 4e 53 FIGDIR="${TCLINS
0f10: 54 44 49 52 7d 2f 6c 69 62 22 0a 09 09 09 65 6c TDIR}/lib"....el
0f20: 69 66 20 5b 20 2d 64 20 22 24 7b 54 43 4c 42 55 if [ -d "${TCLBU
0f30: 49 4c 44 44 49 52 7d 22 20 2d 61 20 2d 66 20 22 ILDDIR}" -a -f "
0f40: 24 7b 54 43 4c 42 55 49 4c 44 44 49 52 7d 2f 74 ${TCLBUILDDIR}/t
0f50: 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20 5d 3b 20 clConfig.sh" ];
0f60: 74 68 65 6e 0a 09 09 09 09 54 43 4c 43 4f 4e 46 then.....TCLCONF
0f70: 49 47 44 49 52 3d 22 24 7b 54 43 4c 42 55 49 4c IGDIR="${TCLBUIL
0f80: 44 44 49 52 7d 22 0a 09 09 09 65 6c 73 65 0a 09 DDIR}"....else..
0f90: 09 09 09 65 63 68 6f 20 27 55 6e 61 62 6c 65 20 ...echo 'Unable
0fa0: 74 6f 20 66 69 6e 64 20 61 70 70 72 6f 70 72 69 to find appropri
0fb0: 61 74 65 20 74 63 6c 43 6f 6e 66 69 67 2e 73 68 ate tclConfig.sh
0fc0: 2c 20 61 62 6f 72 74 69 6e 67 27 20 3e 26 32 0a , aborting' >&2.
0fd0: 0a 09 09 09 09 65 78 69 74 20 31 0a 09 09 09 66 .....exit 1....f
0fe0: 69 0a 0a 09 09 09 41 44 44 46 4c 41 47 53 3d 22 i.....ADDFLAGS="
0ff0: 22 0a 09 09 09 69 66 20 5b 20 2d 6e 20 22 24 7b "....if [ -n "${
1000: 54 43 4c 50 52 49 56 41 54 45 7d 22 20 5d 3b 20 TCLPRIVATE}" ];
1010: 74 68 65 6e 0a 09 09 09 09 41 44 44 46 4c 41 47 then.....ADDFLAG
1020: 53 3d 22 24 7b 41 44 44 46 4c 41 47 53 7d 20 2d S="${ADDFLAGS} -
1030: 49 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 20 2d I${TCLPRIVATE} -
1040: 49 24 7b 54 43 4c 50 52 49 56 41 54 45 7d 2f 67 I${TCLPRIVATE}/g
1050: 65 6e 65 72 69 63 22 0a 09 09 09 66 69 0a 09 09 eneric"....fi...
1060: 09 69 66 20 5b 20 2d 6e 20 22 24 7b 54 43 4c 42 .if [ -n "${TCLB
1070: 55 49 4c 44 44 49 52 7d 22 20 5d 3b 20 74 68 65 UILDDIR}" ]; the
1080: 6e 0a 09 09 09 09 41 44 44 46 4c 41 47 53 3d 22 n.....ADDFLAGS="
1090: 24 7b 41 44 44 46 4c 41 47 53 7d 20 2d 49 24 7b ${ADDFLAGS} -I${
10a0: 54 43 4c 42 55 49 4c 44 44 49 52 7d 22 0a 09 09 TCLBUILDDIR}"...
10b0: 09 66 69 0a 09 09 09 43 46 4c 41 47 53 3d 22 24 .fi....CFLAGS="$
10c0: 7b 41 44 44 46 4c 41 47 53 7d 20 24 7b 43 46 4c {ADDFLAGS} ${CFL
10d0: 41 47 53 7d 22 0a 09 09 09 43 50 50 46 4c 41 47 AGS}"....CPPFLAG
10e0: 53 3d 22 24 7b 41 44 44 46 4c 41 47 53 7d 20 24 S="${ADDFLAGS} $
10f0: 7b 43 50 50 46 4c 41 47 53 7d 22 0a 0a 09 09 09 {CPPFLAGS}".....
1100: 75 6e 73 65 74 20 54 43 4c 56 45 52 53 0a 09 09 unset TCLVERS...
1110: 09 75 6e 73 65 74 20 41 44 44 46 4c 41 47 53 0a .unset ADDFLAGS.
1120: 09 09 09 65 78 70 6f 72 74 20 54 43 4c 42 55 49 ...export TCLBUI
1130: 4c 44 44 49 52 20 54 43 4c 43 4f 4e 46 49 47 44 LDDIR TCLCONFIGD
1140: 49 52 20 54 43 4c 50 52 49 56 41 54 45 20 43 46 IR TCLPRIVATE CF
1150: 4c 41 47 53 20 43 50 50 46 4c 41 47 53 0a 0a 09 LAGS CPPFLAGS...
1160: 09 09 72 6d 20 2d 66 20 22 24 7b 50 52 4f 4a 52 ..rm -f "${PROJR
1170: 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d OOTDIR}/platform
1180: 2e 6d 61 67 69 63 2e 65 6e 76 2d 24 7b 54 43 4c .magic.env-${TCL
1190: 53 48 4f 52 54 56 45 52 53 7d 22 0a 09 09 09 73 SHORTVERS}"....s
11a0: 65 74 20 3e 20 22 24 7b 50 52 4f 4a 52 4f 4f 54 et > "${PROJROOT
11b0: 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d 2e 6d 61 DIR}/platform.ma
11c0: 67 69 63 2e 65 6e 76 2d 24 7b 54 43 4c 53 48 4f gic.env-${TCLSHO
11d0: 52 54 56 45 52 53 7d 22 0a 09 09 09 65 78 70 6f RTVERS}"....expo
11e0: 72 74 20 3e 3e 20 22 24 7b 50 52 4f 4a 52 4f 4f rt >> "${PROJROO
11f0: 54 44 49 52 7d 2f 70 6c 61 74 66 6f 72 6d 2e 6d TDIR}/platform.m
1200: 61 67 69 63 2e 65 6e 76 2d 24 7b 54 43 4c 53 48 agic.env-${TCLSH
1210: 4f 52 54 56 45 52 53 7d 22 0a 09 09 29 0a 09 64 ORTVERS}"...)..d
1220: 6f 6e 65 0a 0a 09 72 6d 20 2d 66 20 22 24 7b 50 one...rm -f "${P
1230: 52 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 ROJROOTDIR}/plat
1240: 66 6f 72 6d 2e 6d 61 67 69 63 2e 64 69 72 22 0a form.magic.dir".
1250: 66 69 0a 0a 23 20 44 65 74 65 72 6d 69 6e 65 20 fi..# Determine
1260: 70 6c 61 74 66 6f 72 6d 0a 69 66 20 5b 20 2d 7a platform.if [ -z
1270: 20 22 24 7b 46 4f 52 43 45 5f 50 4c 41 54 46 4f "${FORCE_PLATFO
1280: 52 4d 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 50 4c RM}" ]; then..PL
1290: 41 54 46 4f 52 4d 3d 22 24 28 65 63 68 6f 20 27 ATFORM="$(echo '
12a0: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
12b0: 70 6c 61 74 66 6f 72 6d 3b 20 70 75 74 73 20 5b platform; puts [
12c0: 70 6c 61 74 66 6f 72 6d 3a 3a 69 64 65 6e 74 69 platform::identi
12d0: 66 79 5d 27 20 7c 20 2e 2f 74 63 6c 2f 69 6e 73 fy]' | ./tcl/ins
12e0: 74 2d 38 2e 35 2f 62 69 6e 2f 74 63 6c 73 68 38 t-8.5/bin/tclsh8
12f0: 2e 35 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 29 22 .5 2>/dev/null)"
1300: 0a 0a 09 69 66 20 5b 20 2d 7a 20 22 24 7b 50 4c ...if [ -z "${PL
1310: 41 54 46 4f 52 4d 7d 22 20 5d 3b 20 74 68 65 6e ATFORM}" ]; then
1320: 0a 09 09 50 4c 41 54 46 4f 52 4d 3d 22 24 28 2e ...PLATFORM="$(.
1330: 2f 70 6c 61 74 66 6f 72 6d 29 22 0a 09 66 69 0a /platform)"..fi.
1340: 65 6c 73 65 0a 09 50 4c 41 54 46 4f 52 4d 3d 22 else..PLATFORM="
1350: 24 7b 46 4f 52 43 45 5f 50 4c 41 54 46 4f 52 4d ${FORCE_PLATFORM
1360: 7d 22 0a 66 69 0a 65 78 70 6f 72 74 20 50 4c 41 }".fi.export PLA
1370: 54 46 4f 52 4d 0a 0a 23 20 53 65 74 20 70 6c 61 TFORM..# Set pla
1380: 74 66 6f 72 6d 20 73 70 65 63 69 66 69 63 20 63 tform specific c
1390: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 63 61 73 onfiguration.cas
13a0: 65 20 22 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20 e "${PLATFORM}"
13b0: 69 6e 0a 09 73 6f 6c 61 72 69 73 32 2a 29 0a 09 in..solaris2*)..
13c0: 09 4c 44 46 4c 41 47 53 3d 22 24 7b 4c 44 46 4c .LDFLAGS="${LDFL
13d0: 41 47 53 7d 20 2d 73 74 61 74 69 63 2d 6c 69 62 AGS} -static-lib
13e0: 67 63 63 22 0a 09 09 65 78 70 6f 72 74 20 4c 44 gcc"...export LD
13f0: 46 4c 41 47 53 0a 09 09 3b 3b 0a 65 73 61 63 0a FLAGS...;;.esac.
1400: 0a 23 20 42 75 69 6c 64 20 61 6c 6c 20 61 70 70 .# Build all app
1410: 72 6f 70 72 69 61 74 65 20 64 69 72 65 63 74 6f ropriate directo
1420: 72 69 65 73 0a 66 61 69 6c 65 64 64 69 72 73 3d ries.faileddirs=
1430: 22 22 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 44 49 "".if [ -z "${DI
1440: 52 53 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 44 49 RS}" ]; then..DI
1450: 52 53 3d 22 60 65 63 68 6f 20 2a 2f 60 22 0a 09 RS="`echo */`"..
1460: 50 4b 47 48 41 53 48 43 4f 44 45 3d 27 27 0a 65 PKGHASHCODE=''.e
1470: 6c 73 65 0a 09 50 4b 47 48 41 53 48 43 4f 44 45 lse..PKGHASHCODE
1480: 3d 22 24 28 28 65 63 68 6f 20 22 24 7b 44 49 52 ="$((echo "${DIR
1490: 53 7d 22 20 7c 20 74 72 20 27 20 27 20 22 5c 6e S}" | tr ' ' "\n
14a0: 22 20 7c 20 73 6f 72 74 20 7c 20 74 72 20 22 5c " | sort | tr "\
14b0: 6e 22 20 27 20 27 3b 20 65 63 68 6f 20 29 20 7c n" ' '; echo ) |
14c0: 20 73 65 64 20 27 73 40 5b 2f 20 5d 40 40 67 27 sed 's@[/ ]@@g'
14d0: 20 7c 20 6f 70 65 6e 73 73 6c 20 73 68 61 31 20 | openssl sha1
14e0: 7c 20 61 77 6b 20 27 7b 20 70 72 69 6e 74 20 24 | awk '{ print $
14f0: 31 20 7d 27 29 22 0a 66 69 0a 66 6f 72 20 64 69 1 }')".fi.for di
1500: 72 20 69 6e 20 24 7b 44 49 52 53 7d 3b 20 64 6f r in ${DIRS}; do
1510: 0a 09 65 78 70 6f 72 74 20 64 69 72 0a 0a 09 69 ..export dir...i
1520: 66 20 5b 20 21 20 2d 66 20 22 24 7b 64 69 72 7d f [ ! -f "${dir}
1530: 2f 62 75 69 6c 64 2e 73 68 22 20 5d 3b 20 74 68 /build.sh" ]; th
1540: 65 6e 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 66 en...continue..f
1550: 69 0a 0a 09 69 66 20 5b 20 22 24 7b 43 4c 45 41 i...if [ "${CLEA
1560: 4e 4f 4e 4c 59 7d 22 20 3d 20 22 30 22 20 5d 3b NONLY}" = "0" ];
1570: 20 74 68 65 6e 0a 09 09 65 63 68 6f 20 22 42 75 then...echo "Bu
1580: 69 6c 64 69 6e 67 20 24 7b 64 69 72 7d 22 0a 09 ilding ${dir}"..
1590: 66 69 0a 0a 09 66 61 69 6c 65 64 3d 30 0a 09 28 fi...failed=0..(
15a0: 0a 09 09 63 64 20 22 24 7b 64 69 72 7d 22 20 7c ...cd "${dir}" |
15b0: 7c 20 65 78 69 74 20 31 0a 0a 09 09 72 6d 20 2d | exit 1....rm -
15c0: 72 66 20 22 62 75 69 6c 64 22 20 22 6f 75 74 22 rf "build" "out"
15d0: 0a 09 09 72 6d 20 2d 66 20 66 61 69 6c 65 64 2d ...rm -f failed-
15e0: 2a 2e 6c 6f 67 0a 09 09 69 66 20 5b 20 22 24 7b *.log...if [ "${
15f0: 44 49 53 54 43 4c 45 41 4e 7d 22 20 3d 20 22 31 DISTCLEAN}" = "1
1600: 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 72 6d 20 " ]; then....rm
1610: 2d 72 66 20 22 73 72 63 22 0a 09 09 66 69 0a 09 -rf "src"...fi..
1620: 09 69 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e .if [ "${CLEANON
1630: 4c 59 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 LY}" = "1" ]; th
1640: 65 6e 0a 09 09 09 65 78 69 74 20 30 0a 09 09 66 en....exit 0...f
1650: 69 0a 0a 09 09 6d 6b 64 69 72 20 2d 70 20 22 6f i....mkdir -p "o
1660: 75 74 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 ut" >/dev/null 2
1670: 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 0a 09 09 2e 2f >/dev/null...../
1680: 62 75 69 6c 64 2e 73 68 20 3e 20 22 6f 75 74 2f build.sh > "out/
1690: 62 75 69 6c 64 2d 24 7b 50 4c 41 54 46 4f 52 4d build-${PLATFORM
16a0: 7d 2e 6c 6f 67 22 20 32 3e 26 31 20 7c 7c 20 65 }.log" 2>&1 || e
16b0: 78 69 74 20 31 0a 09 29 20 7c 7c 20 66 61 69 6c xit 1..) || fail
16c0: 65 64 3d 31 0a 0a 09 69 66 20 5b 20 22 24 7b 66 ed=1...if [ "${f
16d0: 61 69 6c 65 64 7d 22 20 3d 20 22 31 22 20 5d 3b ailed}" = "1" ];
16e0: 20 74 68 65 6e 0a 09 09 63 70 20 22 24 7b 64 69 then...cp "${di
16f0: 72 7d 2f 6f 75 74 2f 62 75 69 6c 64 2d 24 7b 50 r}/out/build-${P
1700: 4c 41 54 46 4f 52 4d 7d 2e 6c 6f 67 22 20 22 24 LATFORM}.log" "$
1710: 7b 64 69 72 7d 2f 66 61 69 6c 65 64 2d 24 7b 50 {dir}/failed-${P
1720: 4c 41 54 46 4f 52 4d 7d 2d 60 68 6f 73 74 6e 61 LATFORM}-`hostna
1730: 6d 65 60 2e 6c 6f 67 22 0a 0a 09 09 72 6d 20 2d me`.log"....rm -
1740: 72 66 20 22 24 7b 64 69 72 7d 2f 6f 75 74 22 0a rf "${dir}/out".
1750: 09 09 66 61 69 6c 65 64 64 69 72 73 3d 22 24 7b ..faileddirs="${
1760: 66 61 69 6c 65 64 64 69 72 73 7d 20 24 7b 64 69 faileddirs} ${di
1770: 72 7d 22 0a 09 09 65 63 68 6f 20 22 46 61 69 6c r}"...echo "Fail
1780: 65 64 20 74 6f 20 62 75 69 6c 64 20 24 7b 64 69 ed to build ${di
1790: 72 7d 22 0a 09 65 6c 73 65 0a 09 09 69 66 20 5b r}"..else...if [
17a0: 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 "${CLEANONLY}"
17b0: 21 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e 0a 09 != "1" ]; then..
17c0: 09 09 6f 75 74 64 69 72 3d 22 24 28 6c 73 20 2d ..outdir="$(ls -
17d0: 31 64 20 22 24 7b 64 69 72 7d 2f 6f 75 74 22 2f 1d "${dir}/out"/
17e0: 2a 2f 22 24 7b 50 4c 41 54 46 4f 52 4d 7d 2f 22 */"${PLATFORM}/"
17f0: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 68 2>/dev/null | h
1800: 65 61 64 20 2d 31 29 22 0a 0a 09 09 09 6d 76 20 ead -1)".....mv
1810: 22 24 7b 64 69 72 7d 2f 6f 75 74 2f 62 75 69 6c "${dir}/out/buil
1820: 64 2d 24 7b 50 4c 41 54 46 4f 52 4d 7d 2e 6c 6f d-${PLATFORM}.lo
1830: 67 22 20 22 24 7b 6f 75 74 64 69 72 7d 2f 62 75 g" "${outdir}/bu
1840: 69 6c 64 2e 6c 6f 67 22 20 3e 2f 64 65 76 2f 6e ild.log" >/dev/n
1850: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a ull 2>/dev/null.
1860: 09 09 66 69 0a 09 66 69 0a 64 6f 6e 65 0a 0a 23 ..fi..fi.done..#
1870: 20 43 6c 65 61 6e 75 70 20 69 73 20 64 6f 6e 65 Cleanup is done
1880: 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 0a 69 at this point.i
1890: 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59 f [ "${CLEANONLY
18a0: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e }" = "1" ]; then
18b0: 0a 09 65 78 69 74 20 30 0a 66 69 0a 0a 23 20 4c ..exit 0.fi..# L
18c0: 65 74 20 74 68 65 20 75 73 65 72 20 6b 6e 6f 77 et the user know
18d0: 20 77 68 61 74 20 66 61 69 6c 65 64 20 74 6f 20 what failed to
18e0: 62 75 69 6c 64 0a 69 66 20 5b 20 2d 6e 20 22 24 build.if [ -n "$
18f0: 7b 66 61 69 6c 65 64 64 69 72 73 7d 22 20 5d 3b {faileddirs}" ];
1900: 20 74 68 65 6e 0a 09 65 63 68 6f 20 22 54 68 65 then..echo "The
1910: 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 61 69 6c 65 following faile
1920: 64 20 74 6f 20 62 75 69 6c 64 3a 24 7b 66 61 69 d to build:${fai
1930: 6c 65 64 64 69 72 73 7d 22 0a 66 69 0a 0a 23 20 leddirs}".fi..#
1940: 43 72 65 61 74 65 20 74 61 72 66 69 6c 65 20 6f Create tarfile o
1950: 66 20 62 75 69 6c 74 20 70 61 63 6b 61 67 65 73 f built packages
1960: 0a 44 41 54 45 43 4f 44 45 3d 22 24 28 64 61 74 .DATECODE="$(dat
1970: 65 20 2b 25 59 25 6d 25 64 25 48 25 4d 29 22 0a e +%Y%m%d%H%M)".
1980: 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 50 4b 47 48 .if [ -z "${PKGH
1990: 41 53 48 43 4f 44 45 7d 22 20 5d 3b 20 74 68 65 ASHCODE}" ]; the
19a0: 6e 0a 09 4f 55 54 46 49 4c 45 42 41 53 45 3d 22 n..OUTFILEBASE="
19b0: 74 63 6c 70 6b 67 73 2d 24 7b 50 4c 41 54 46 4f tclpkgs-${PLATFO
19c0: 52 4d 7d 2d 24 7b 44 41 54 45 43 4f 44 45 7d 22 RM}-${DATECODE}"
19d0: 0a 65 6c 73 65 0a 09 4f 55 54 46 49 4c 45 42 41 .else..OUTFILEBA
19e0: 53 45 3d 22 74 63 6c 70 6b 67 73 2d 24 7b 50 4b SE="tclpkgs-${PK
19f0: 47 48 41 53 48 43 4f 44 45 7d 2d 24 7b 50 4c 41 GHASHCODE}-${PLA
1a00: 54 46 4f 52 4d 7d 2d 24 7b 44 41 54 45 43 4f 44 TFORM}-${DATECOD
1a10: 45 7d 22 0a 66 69 0a 0a 72 6d 20 2d 72 66 20 5f E}".fi..rm -rf _
1a20: 5f 74 6d 70 5f 5f 0a 6d 6b 64 69 72 20 5f 5f 74 _tmp__.mkdir __t
1a30: 6d 70 5f 5f 0a 69 6e 73 74 64 69 72 3d 22 24 28 mp__.instdir="$(
1a40: 63 64 20 5f 5f 74 6d 70 5f 5f 20 26 26 20 70 77 cd __tmp__ && pw
1a50: 64 29 22 0a 66 6f 72 20 64 69 72 20 69 6e 20 2a d)".for dir in *
1a60: 2f 3b 20 64 6f 0a 09 62 61 73 65 6e 61 6d 65 3d /; do..basename=
1a70: 22 24 28 64 69 72 6e 61 6d 65 20 22 24 7b 64 69 "$(dirname "${di
1a80: 72 7d 22 29 22 0a 09 70 6b 67 69 6e 73 74 64 69 r}")"..pkginstdi
1a90: 72 3d 22 24 7b 69 6e 73 74 64 69 72 7d 2f 24 7b r="${instdir}/${
1aa0: 64 69 72 7d 22 0a 0a 09 28 0a 09 09 63 64 20 22 dir}"...(...cd "
1ab0: 24 7b 64 69 72 7d 2f 6f 75 74 22 20 32 3e 2f 64 ${dir}/out" 2>/d
1ac0: 65 76 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e 75 ev/null >/dev/nu
1ad0: 6c 6c 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 09 ll || exit 1....
1ae0: 6d 6b 64 69 72 20 22 24 7b 70 6b 67 69 6e 73 74 mkdir "${pkginst
1af0: 64 69 72 7d 22 0a 0a 09 09 63 70 20 2d 72 20 2a dir}"....cp -r *
1b00: 20 22 24 7b 70 6b 67 69 6e 73 74 64 69 72 7d 2f "${pkginstdir}/
1b10: 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f " >/dev/null 2>/
1b20: 64 65 76 2f 6e 75 6c 6c 0a 09 29 0a 64 6f 6e 65 dev/null..).done
1b30: 0a 0a 28 0a 09 63 64 20 5f 5f 74 6d 70 5f 5f 20 ..(..cd __tmp__
1b40: 7c 7c 20 65 78 69 74 20 31 0a 0a 09 74 61 72 20 || exit 1...tar
1b50: 2d 63 66 20 2d 20 2a 0a 29 20 7c 20 62 7a 69 70 -cf - *.) | bzip
1b60: 32 20 2d 39 63 20 3e 20 22 24 7b 4f 55 54 46 49 2 -9c > "${OUTFI
1b70: 4c 45 42 41 53 45 7d 2e 74 61 72 2e 62 7a 32 22 LEBASE}.tar.bz2"
1b80: 0a 0a 72 6d 20 2d 72 66 20 5f 5f 74 6d 70 5f 5f ..rm -rf __tmp__
1b90: 0a 0a 65 78 69 74 20 30 0a ..exit 0.