Artifact 83493fb613b4583fccf3465c285242a5fd962d16:
- Executable file
tcl/build.sh
— part of check-in
[66930bd6ef]
at
2010-09-26 04:42:08
on branch trunk
— Added support for minimal builds
Fixed potential loading issue for zlib in pure Tcl metakit (user: rkeene, size: 2919) [annotate] [blame] [check-ins using]
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 65 ="$(pwd)/inst".e 01a0: 78 70 6f 72 74 20 53 52 43 20 53 52 43 55 52 4c xport SRC SRCURL 01b0: 20 42 55 49 4c 44 44 49 52 20 4f 55 54 44 49 52 BUILDDIR OUTDIR 01c0: 20 49 4e 53 54 44 49 52 0a 0a 72 6d 20 2d 72 66 INSTDIR..rm -rf 01d0: 20 27 62 75 69 6c 64 27 20 27 6f 75 74 27 20 27 'build' 'out' ' 01e0: 69 6e 73 74 27 0a 6d 6b 64 69 72 20 27 62 75 69 inst'.mkdir 'bui 01f0: 6c 64 27 20 27 6f 75 74 27 20 27 69 6e 73 74 27 ld' 'out' 'inst' 0200: 20 7c 7c 20 65 78 69 74 20 31 0a 0a 69 66 20 5b || exit 1..if [ 0210: 20 21 20 2d 66 20 22 24 7b 53 52 43 7d 22 20 5d ! -f "${SRC}" ] 0220: 3b 20 74 68 65 6e 0a 09 6d 6b 64 69 72 20 27 73 ; then..mkdir 's 0230: 72 63 27 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 rc' >/dev/null 2 0240: 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 0a 09 69 66 20 >/dev/null...if 0250: 65 63 68 6f 20 22 24 7b 54 43 4c 56 45 52 53 7d echo "${TCLVERS} 0260: 22 20 7c 20 67 72 65 70 20 27 5e 63 76 73 5f 27 " | grep '^cvs_' 0270: 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 >/dev/null; the 0280: 6e 0a 09 09 43 56 53 54 41 47 3d 24 28 65 63 68 n...CVSTAG=$(ech 0290: 6f 20 22 24 7b 54 43 4c 56 45 52 53 7d 22 20 7c o "${TCLVERS}" | 02a0: 20 73 65 64 20 27 73 2f 5e 63 76 73 5f 2f 2f 67 sed 's/^cvs_//g 02b0: 27 29 0a 09 09 65 78 70 6f 72 74 20 43 56 53 54 ')...export CVST 02c0: 41 47 0a 0a 09 09 28 0a 09 09 09 63 64 20 73 72 AG....(....cd sr 02d0: 63 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 09 09 c || exit 1..... 02e0: 63 76 73 20 2d 7a 33 20 2d 64 3a 70 73 65 72 76 cvs -z3 -d:pserv 02f0: 65 72 3a 61 6e 6f 6e 79 6d 6f 75 73 40 74 63 6c er:anonymous@tcl 0300: 2e 63 76 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 .cvs.sourceforge 0310: 2e 6e 65 74 3a 2f 63 76 73 72 6f 6f 74 2f 74 63 .net:/cvsroot/tc 0320: 6c 20 63 6f 20 2d 72 20 22 24 7b 43 56 53 54 41 l co -r "${CVSTA 0330: 47 7d 22 20 2d 50 20 74 63 6c 0a 0a 09 09 09 6d G}" -P tcl.....m 0340: 76 20 74 63 6c 20 22 74 63 6c 24 7b 54 43 4c 56 v tcl "tcl${TCLV 0350: 45 52 53 7d 22 0a 0a 09 09 09 74 61 72 20 2d 63 ERS}".....tar -c 0360: 66 20 2d 20 22 74 63 6c 24 7b 54 43 4c 56 45 52 f - "tcl${TCLVER 0370: 53 7d 22 20 7c 20 67 7a 69 70 20 2d 63 20 3e 20 S}" | gzip -c > 0380: 22 2e 2e 2f 24 7b 53 52 43 7d 22 0a 09 09 29 0a "../${SRC}"...). 0390: 09 65 6c 73 65 0a 09 09 72 6d 20 2d 66 20 22 24 .else...rm -f "$ 03a0: 7b 53 52 43 7d 2e 74 6d 70 22 0a 09 09 77 67 65 {SRC}.tmp"...wge 03b0: 74 20 2d 4f 20 22 24 7b 53 52 43 7d 2e 74 6d 70 t -O "${SRC}.tmp 03c0: 22 20 22 24 7b 53 52 43 55 52 4c 7d 22 20 7c 7c " "${SRCURL}" || 03d0: 20 65 78 69 74 20 31 0a 09 09 6d 76 20 22 24 7b exit 1...mv "${ 03e0: 53 52 43 7d 2e 74 6d 70 22 20 22 24 7b 53 52 43 SRC}.tmp" "${SRC 03f0: 7d 22 0a 09 66 69 0a 66 69 0a 0a 28 0a 09 63 64 }"..fi.fi..(..cd 0400: 20 27 62 75 69 6c 64 27 20 7c 7c 20 65 78 69 74 'build' || exit 0410: 20 31 0a 0a 09 69 66 20 5b 20 21 20 2d 64 20 27 1...if [ ! -d ' 0420: 2e 2e 2f 62 75 69 6c 64 73 72 63 27 20 5d 3b 20 ../buildsrc' ]; 0430: 74 68 65 6e 0a 09 09 67 7a 69 70 20 2d 64 63 20 then...gzip -dc 0440: 22 2e 2e 2f 24 7b 53 52 43 7d 22 20 7c 20 74 61 "../${SRC}" | ta 0450: 72 20 2d 78 66 20 2d 0a 09 65 6c 73 65 0a 09 09 r -xf -..else... 0460: 63 70 20 2d 72 70 20 2e 2e 2f 62 75 69 6c 64 73 cp -rp ../builds 0470: 72 63 2f 2a 20 27 2e 2f 27 0a 09 66 69 0a 0a 09 rc/* './'..fi... 0480: 63 64 20 22 24 7b 42 55 49 4c 44 44 49 52 7d 22 cd "${BUILDDIR}" 0490: 20 7c 7c 20 65 78 69 74 20 31 0a 09 66 6f 72 20 || exit 1..for 04a0: 64 69 72 20 69 6e 20 75 6e 69 78 20 77 69 6e 20 dir in unix win 04b0: 6d 61 63 6f 73 78 3b 20 64 6f 0a 09 09 23 20 52 macosx; do...# R 04c0: 65 6d 6f 76 65 20 70 72 65 76 69 6f 75 73 20 64 emove previous d 04d0: 69 72 65 63 74 6f 72 79 27 73 20 22 74 63 6c 43 irectory's "tclC 04e0: 6f 6e 66 69 67 2e 73 68 22 20 69 66 20 66 6f 75 onfig.sh" if fou 04f0: 6e 64 0a 09 09 72 6d 20 2d 66 20 27 74 63 6c 43 nd...rm -f 'tclC 0500: 6f 6e 66 69 67 2e 73 68 27 0a 0a 09 09 63 64 20 onfig.sh'....cd 0510: 22 24 7b 42 55 49 4c 44 44 49 52 7d 2f 24 7b 64 "${BUILDDIR}/${d 0520: 69 72 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a ir}" || exit 1.. 0530: 09 09 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d .../configure -- 0540: 64 69 73 61 62 6c 65 2d 73 68 61 72 65 64 20 2d disable-shared - 0550: 2d 70 72 65 66 69 78 3d 22 24 7b 49 4e 53 54 44 -prefix="${INSTD 0560: 49 52 7d 22 20 24 7b 43 4f 4e 46 49 47 55 52 45 IR}" ${CONFIGURE 0570: 45 58 54 52 41 7d 0a 0a 09 09 24 7b 4d 41 4b 45 EXTRA}....${MAKE 0580: 3a 2d 6d 61 6b 65 7d 20 7c 7c 20 63 6f 6e 74 69 :-make} || conti 0590: 6e 75 65 0a 0a 09 09 24 7b 4d 41 4b 45 3a 2d 6d nue....${MAKE:-m 05a0: 61 6b 65 7d 20 69 6e 73 74 61 6c 6c 20 7c 7c 20 ake} install || 05b0: 28 0a 09 09 09 23 20 57 6f 72 6b 20 77 69 74 68 (....# Work with 05c0: 20 54 63 6c 20 38 2e 36 2e 78 27 73 20 54 43 4c Tcl 8.6.x's TCL 05d0: 53 48 5f 4e 41 54 49 56 45 20 73 6f 6c 75 74 69 SH_NATIVE soluti 05e0: 6f 6e 20 66 6f 72 0a 09 09 09 23 20 63 72 6f 73 on for....# cros 05f0: 73 2d 63 6f 6d 70 69 6c 65 20 69 6e 73 74 61 6c s-compile instal 0600: 6c 73 0a 0a 09 09 09 24 7b 4d 41 4b 45 3a 2d 6d ls.....${MAKE:-m 0610: 61 6b 65 7d 20 69 6e 73 74 61 6c 6c 20 54 43 4c ake} install TCL 0620: 53 48 5f 4e 41 54 49 56 45 3d 22 24 7b 54 43 4c SH_NATIVE="${TCL 0630: 4b 49 54 3a 2d 74 63 6c 6b 69 74 7d 22 0a 09 09 KIT:-tclkit}"... 0640: 29 20 7c 7c 20 28 0a 09 09 09 23 20 4d 61 6b 65 ) || (....# Make 0650: 20 69 6e 73 74 61 6c 6c 20 63 61 6e 20 66 61 69 install can fai 0660: 6c 20 69 66 20 63 72 6f 73 73 2d 63 6f 6d 70 69 l if cross-compi 0670: 6c 69 6e 67 20 75 73 69 6e 67 20 54 63 6c 20 38 ling using Tcl 8 0680: 2e 35 2e 78 0a 09 09 09 23 20 62 65 63 61 75 73 .5.x....# becaus 0690: 65 20 74 68 65 20 4d 61 6b 65 66 69 6c 65 20 63 e the Makefile c 06a0: 61 6c 6c 73 20 22 24 28 54 43 4c 53 48 29 22 2e alls "$(TCLSH)". 06b0: 20 20 57 65 20 63 61 6e 27 74 20 73 69 6d 70 6c We can't simpl 06c0: 79 0a 09 09 09 23 20 72 65 64 65 66 69 6e 65 20 y....# redefine 06d0: 54 43 4c 53 48 20 62 65 63 61 75 73 65 20 69 74 TCLSH because it 06e0: 20 61 6c 73 6f 20 75 73 65 73 20 54 43 4c 53 48 also uses TCLSH 06f0: 20 61 73 20 61 20 62 75 69 6c 64 20 74 61 72 67 as a build targ 0700: 65 74 0a 09 09 09 73 65 64 20 27 73 40 5e 24 28 et....sed 's@^$( 0710: 54 43 4c 53 48 29 40 62 6c 61 68 40 27 20 4d 61 TCLSH)@blah@' Ma 0720: 6b 65 66 69 6c 65 20 3e 20 4d 61 6b 65 66 69 6c kefile > Makefil 0730: 65 2e 6e 65 77 0a 09 09 09 63 61 74 20 4d 61 6b e.new....cat Mak 0740: 65 66 69 6c 65 2e 6e 65 77 20 3e 20 4d 61 6b 65 efile.new > Make 0750: 66 69 6c 65 0a 09 09 09 72 6d 20 2d 66 20 4d 61 file....rm -f Ma 0760: 6b 65 66 69 6c 65 2e 6e 65 77 0a 0a 09 09 09 24 kefile.new.....$ 0770: 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 69 6e 73 {MAKE:-make} ins 0780: 74 61 6c 6c 20 54 43 4c 53 48 3d 22 2e 2e 2f 2e tall TCLSH="../. 0790: 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e ./../../../../.. 07a0: 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f /../../../../../ 07b0: 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 24 ../../../../../$ 07c0: 28 77 68 69 63 68 20 22 24 7b 54 43 4c 4b 49 54 (which "${TCLKIT 07d0: 3a 2d 74 63 6c 6b 69 74 7d 22 29 22 0a 09 09 29 :-tclkit}")"...) 07e0: 0a 0a 09 09 6d 6b 64 69 72 20 22 24 7b 4f 55 54 ....mkdir "${OUT 07f0: 44 49 52 7d 2f 6c 69 62 22 20 7c 7c 20 65 78 69 DIR}/lib" || exi 0800: 74 20 31 0a 09 09 63 70 20 2d 72 20 22 24 7b 49 t 1...cp -r "${I 0810: 4e 53 54 44 49 52 7d 2f 6c 69 62 22 2f 2a 20 22 NSTDIR}/lib"/* " 0820: 24 7b 4f 55 54 44 49 52 7d 2f 6c 69 62 2f 22 0a ${OUTDIR}/lib/". 0830: 09 09 72 6d 20 2d 72 66 20 22 24 7b 4f 55 54 44 ..rm -rf "${OUTD 0840: 49 52 7d 2f 6c 69 62 2f 70 6b 67 63 6f 6e 66 69 IR}/lib/pkgconfi 0850: 67 22 0a 09 09 72 6d 20 2d 66 20 22 24 7b 4f 55 g"...rm -f "${OU 0860: 54 44 49 52 7d 22 2f 6c 69 62 2f 2a 20 3e 2f 64 TDIR}"/lib/* >/d 0870: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e ev/null 2>/dev/n 0880: 75 6c 6c 0a 09 09 66 69 6e 64 20 22 24 7b 4f 55 ull...find "${OU 0890: 54 44 49 52 7d 22 20 2d 6e 61 6d 65 20 27 2a 2e TDIR}" -name '*. 08a0: 61 27 20 7c 20 78 61 72 67 73 20 72 6d 20 2d 66 a' | xargs rm -f 08b0: 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 >/dev/null 2>/d 08c0: 65 76 2f 6e 75 6c 6c 0a 0a 09 09 23 20 43 6c 65 ev/null....# Cle 08d0: 61 6e 20 75 70 20 70 61 63 6b 61 67 65 73 20 74 an up packages t 08e0: 68 61 74 20 61 72 65 20 6e 6f 74 20 6e 65 65 64 hat are not need 08f0: 65 64 0a 09 09 69 66 20 5b 20 2d 6e 20 22 24 7b ed...if [ -n "${ 0900: 4b 49 54 43 52 45 41 54 4f 52 5f 4d 49 4e 42 55 KITCREATOR_MINBU 0910: 49 4c 44 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 ILD}" ]; then... 0920: 09 66 69 6e 64 20 22 24 7b 4f 55 54 44 49 52 7d .find "${OUTDIR} 0930: 22 20 2d 6e 61 6d 65 20 22 74 63 6c 74 65 73 74 " -name "tcltest 0940: 2a 22 20 2d 74 79 70 65 20 64 20 7c 20 78 61 72 *" -type d | xar 0950: 67 73 20 72 6d 20 2d 72 66 0a 09 09 66 69 0a 0a gs rm -rf...fi.. 0960: 09 09 23 20 43 6c 65 61 6e 20 75 70 20 65 6e 63 ..# Clean up enc 0970: 6f 64 69 6e 67 73 0a 09 09 69 66 20 5b 20 2d 6e odings...if [ -n 0980: 20 22 24 7b 4b 49 54 43 52 45 41 54 4f 52 5f 4d "${KITCREATOR_M 0990: 49 4e 45 4e 43 4f 44 49 4e 47 53 7d 22 20 5d 3b INENCODINGS}" ]; 09a0: 20 74 68 65 6e 0a 09 09 09 4b 45 45 50 45 4e 43 then....KEEPENC 09b0: 4f 44 49 4e 47 53 3d 22 20 61 73 63 69 69 2e 65 ODINGS=" ascii.e 09c0: 6e 63 20 63 70 31 32 35 32 2e 65 6e 63 20 69 73 nc cp1252.enc is 09d0: 6f 38 38 35 39 2d 31 2e 65 6e 63 20 69 73 6f 38 o8859-1.enc iso8 09e0: 38 35 39 2d 31 35 2e 65 6e 63 20 69 73 6f 38 38 859-15.enc iso88 09f0: 35 39 2d 32 2e 65 6e 63 20 6b 6f 69 38 2d 72 2e 59-2.enc koi8-r. 0a00: 65 6e 63 20 6d 61 63 52 6f 6d 61 6e 2e 65 6e 63 enc macRoman.enc 0a10: 20 22 0a 09 09 09 65 78 70 6f 72 74 20 4b 45 45 "....export KEE 0a20: 50 45 4e 43 4f 44 49 4e 47 53 0a 09 09 09 66 69 PENCODINGS....fi 0a30: 6e 64 20 22 24 7b 4f 55 54 44 49 52 7d 2f 6c 69 nd "${OUTDIR}/li 0a40: 62 22 20 2d 6e 61 6d 65 20 27 65 6e 63 6f 64 69 b" -name 'encodi 0a50: 6e 67 27 20 2d 74 79 70 65 20 64 20 7c 20 77 68 ng' -type d | wh 0a60: 69 6c 65 20 72 65 61 64 20 65 6e 63 64 69 72 3b ile read encdir; 0a70: 20 64 6f 0a 09 09 09 09 28 0a 09 09 09 09 09 63 do.....(......c 0a80: 64 20 22 24 7b 65 6e 63 64 69 72 7d 22 20 7c 7c d "${encdir}" || 0a90: 20 65 78 69 74 20 31 0a 0a 09 09 09 09 09 66 6f exit 1.......fo 0aa0: 72 20 66 69 6c 65 20 69 6e 20 2a 3b 20 64 6f 0a r file in *; do. 0ab0: 09 09 09 09 09 09 69 66 20 65 63 68 6f 20 22 20 ......if echo " 0ac0: 24 7b 4b 45 45 50 45 4e 43 4f 44 49 4e 47 53 7d ${KEEPENCODINGS} 0ad0: 20 22 20 7c 20 67 72 65 70 20 22 20 24 7b 66 69 " | grep " ${fi 0ae0: 6c 65 7d 20 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c le} " >/dev/null 0af0: 3b 20 74 68 65 6e 0a 09 09 09 09 09 09 09 63 6f ; then........co 0b00: 6e 74 69 6e 75 65 0a 09 09 09 09 09 09 66 69 0a ntinue.......fi. 0b10: 0a 09 09 09 09 09 09 72 6d 20 2d 66 20 22 24 7b .......rm -f "${ 0b20: 66 69 6c 65 7d 22 0a 09 09 09 09 09 64 6f 6e 65 file}"......done 0b30: 0a 09 09 09 09 29 0a 09 09 09 64 6f 6e 65 0a 09 .....)....done.. 0b40: 09 66 69 0a 0a 09 09 62 72 65 61 6b 0a 09 64 6f .fi....break..do 0b50: 6e 65 0a 29 20 7c 7c 20 65 78 69 74 20 31 0a 0a ne.) || exit 1.. 0b60: 65 78 69 74 20 30 0a exit 0.