Artifact d269657dc49e31c28a0d9905dca94f0c41d40847:
- Executable file
mk4tcl/build.sh
— part of check-in
[44e0b4f94c]
at
2010-09-26 04:40:56
on branch trunk
— Added preliminary support for using a Tcl-based metakit reader (mk4tcl.tcl,
based off ReadKit) if Mk4tcl support not found
Updated mk4tcl to cleanup if build fails, to prevent false detection (user: rkeene, size: 2104) [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 4d 4b 34 56 45 52 53 3d 22 1.fi..MK4VERS=" 00f0: 32 2e 34 2e 39 2e 37 22 0a 53 52 43 3d 22 73 72 2.4.9.7".SRC="sr 0100: 63 2f 6d 65 74 61 6b 69 74 2d 24 7b 4d 4b 34 56 c/metakit-${MK4V 0110: 45 52 53 7d 2e 74 61 72 2e 67 7a 22 0a 53 52 43 ERS}.tar.gz".SRC 0120: 55 52 4c 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e URL="http://www. 0130: 65 71 75 69 34 2e 63 6f 6d 2f 70 75 62 2f 6d 6b equi4.com/pub/mk 0140: 2f 6d 65 74 61 6b 69 74 2d 24 7b 4d 4b 34 56 45 /metakit-${MK4VE 0150: 52 53 7d 2e 74 61 72 2e 67 7a 22 0a 42 55 49 4c RS}.tar.gz".BUIL 0160: 44 44 49 52 3d 22 24 28 70 77 64 29 2f 62 75 69 DDIR="$(pwd)/bui 0170: 6c 64 2f 6d 65 74 61 6b 69 74 2d 24 7b 4d 4b 34 ld/metakit-${MK4 0180: 56 45 52 53 7d 22 0a 4f 55 54 44 49 52 3d 22 24 VERS}".OUTDIR="$ 0190: 28 70 77 64 29 2f 6f 75 74 22 0a 49 4e 53 54 44 (pwd)/out".INSTD 01a0: 49 52 3d 22 24 28 70 77 64 29 2f 69 6e 73 74 22 IR="$(pwd)/inst" 01b0: 0a 50 41 54 43 48 44 49 52 3d 22 24 28 70 77 64 .PATCHDIR="$(pwd 01c0: 29 2f 70 61 74 63 68 65 73 22 0a 65 78 70 6f 72 )/patches".expor 01d0: 74 20 4d 4b 34 56 45 52 53 20 53 52 43 20 53 52 t MK4VERS SRC SR 01e0: 43 55 52 4c 20 42 55 49 4c 44 44 49 52 20 4f 55 CURL BUILDDIR OU 01f0: 54 44 49 52 20 49 4e 53 54 44 49 52 20 50 41 54 TDIR INSTDIR PAT 0200: 43 48 44 49 52 0a 0a 72 6d 20 2d 72 66 20 27 62 CHDIR..rm -rf 'b 0210: 75 69 6c 64 27 20 27 6f 75 74 27 20 27 69 6e 73 uild' 'out' 'ins 0220: 74 27 0a 6d 6b 64 69 72 20 27 62 75 69 6c 64 27 t'.mkdir 'build' 0230: 20 27 6f 75 74 27 20 27 69 6e 73 74 27 20 7c 7c 'out' 'inst' || 0240: 20 65 78 69 74 20 31 0a 0a 54 43 4c 5f 56 45 52 exit 1..TCL_VER 0250: 53 49 4f 4e 3d 22 75 6e 6b 6e 6f 77 6e 22 0a 69 SION="unknown".i 0260: 66 20 5b 20 2d 66 20 22 24 7b 54 43 4c 43 4f 4e f [ -f "${TCLCON 0270: 46 49 47 44 49 52 7d 2f 74 63 6c 43 6f 6e 66 69 FIGDIR}/tclConfi 0280: 67 2e 73 68 22 20 5d 3b 20 74 68 65 6e 0a 20 20 g.sh" ]; then. 0290: 20 20 20 20 20 20 73 6f 75 72 63 65 20 22 24 7b source "${ 02a0: 54 43 4c 43 4f 4e 46 49 47 44 49 52 7d 2f 74 63 TCLCONFIGDIR}/tc 02b0: 6c 43 6f 6e 66 69 67 2e 73 68 22 0a 66 69 0a 65 lConfig.sh".fi.e 02c0: 78 70 6f 72 74 20 54 43 4c 5f 56 45 52 53 49 4f xport TCL_VERSIO 02d0: 4e 0a 0a 69 66 20 5b 20 21 20 2d 66 20 22 24 7b N..if [ ! -f "${ 02e0: 53 52 43 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 6d SRC}" ]; then..m 02f0: 6b 64 69 72 20 27 73 72 63 27 20 3e 2f 64 65 76 kdir 'src' >/dev 0300: 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c /null 2>/dev/nul 0310: 6c 0a 0a 09 72 6d 20 2d 66 20 22 24 7b 53 52 43 l...rm -f "${SRC 0320: 7d 2e 74 6d 70 22 0a 09 77 67 65 74 20 2d 4f 20 }.tmp"..wget -O 0330: 22 24 7b 53 52 43 7d 2e 74 6d 70 22 20 22 24 7b "${SRC}.tmp" "${ 0340: 53 52 43 55 52 4c 7d 22 20 7c 7c 20 65 78 69 74 SRCURL}" || exit 0350: 20 31 0a 09 6d 76 20 22 24 7b 53 52 43 7d 2e 74 1..mv "${SRC}.t 0360: 6d 70 22 20 22 24 7b 53 52 43 7d 22 0a 66 69 0a mp" "${SRC}".fi. 0370: 0a 28 0a 09 63 64 20 27 62 75 69 6c 64 27 20 7c .(..cd 'build' | 0380: 7c 20 65 78 69 74 20 31 0a 0a 09 69 66 20 5b 20 | exit 1...if [ 0390: 21 20 2d 64 20 27 2e 2e 2f 62 75 69 6c 64 73 72 ! -d '../buildsr 03a0: 63 27 20 5d 3b 20 74 68 65 6e 0a 09 09 67 7a 69 c' ]; then...gzi 03b0: 70 20 2d 64 63 20 22 2e 2e 2f 24 7b 53 52 43 7d p -dc "../${SRC} 03c0: 22 20 7c 20 74 61 72 20 2d 78 66 20 2d 0a 09 65 " | tar -xf -..e 03d0: 6c 73 65 20 20 20 20 0a 09 09 63 70 20 2d 72 70 lse ...cp -rp 03e0: 20 2e 2e 2f 62 75 69 6c 64 73 72 63 2f 2a 20 27 ../buildsrc/* ' 03f0: 2e 2f 27 0a 09 66 69 0a 0a 09 23 20 41 70 70 6c ./'..fi...# Appl 0400: 79 20 72 65 71 75 69 72 65 64 20 70 61 74 63 68 y required patch 0410: 65 73 0a 09 63 64 20 22 24 7b 42 55 49 4c 44 44 es..cd "${BUILDD 0420: 49 52 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 09 IR}" || exit 1.. 0430: 66 6f 72 20 70 61 74 63 68 20 69 6e 20 22 24 7b for patch in "${ 0440: 50 41 54 43 48 44 49 52 7d 2f 61 6c 6c 22 2f 6d PATCHDIR}/all"/m 0450: 65 74 61 6b 69 74 2d 24 7b 4d 4b 34 56 45 52 53 etakit-${MK4VERS 0460: 7d 2d 2a 2e 64 69 66 66 20 22 24 7b 50 41 54 43 }-*.diff "${PATC 0470: 48 44 49 52 7d 2f 24 7b 54 43 4c 5f 56 45 52 53 HDIR}/${TCL_VERS 0480: 49 4f 4e 7d 22 2f 6d 65 74 61 6b 69 74 2d 24 7b ION}"/metakit-${ 0490: 4d 4b 34 56 45 52 53 7d 2d 2a 2e 64 69 66 66 3b MK4VERS}-*.diff; 04a0: 20 64 6f 0a 09 09 69 66 20 5b 20 21 20 2d 66 20 do...if [ ! -f 04b0: 22 24 7b 70 61 74 63 68 7d 22 20 5d 3b 20 74 68 "${patch}" ]; th 04c0: 65 6e 0a 09 09 09 63 6f 6e 74 69 6e 75 65 0a 09 en....continue.. 04d0: 09 66 69 0a 0a 09 09 65 63 68 6f 20 22 41 70 70 .fi....echo "App 04e0: 6c 79 69 6e 67 3a 20 24 7b 70 61 74 63 68 7d 22 lying: ${patch}" 04f0: 0a 09 09 24 7b 50 41 54 43 48 3a 2d 70 61 74 63 ...${PATCH:-patc 0500: 68 7d 20 2d 70 31 20 3c 20 22 24 7b 70 61 74 63 h} -p1 < "${patc 0510: 68 7d 22 0a 09 64 6f 6e 65 0a 0a 09 63 64 20 22 h}"..done...cd " 0520: 24 7b 42 55 49 4c 44 44 49 52 7d 2f 75 6e 69 78 ${BUILDDIR}/unix 0530: 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 23 20 " || exit 1...# 0540: 49 66 20 77 65 20 61 72 65 20 62 75 69 6c 64 69 If we are buildi 0550: 6e 67 20 66 6f 72 20 57 69 6e 33 32 2c 20 77 65 ng for Win32, we 0560: 20 6e 65 65 64 20 74 6f 20 64 65 66 69 6e 65 20 need to define 0570: 22 42 55 49 4c 44 5f 74 63 6c 22 20 73 6f 20 74 "BUILD_tcl" so t 0580: 68 61 74 0a 09 23 20 54 43 4c 5f 53 54 4f 52 41 hat..# TCL_STORA 0590: 47 45 5f 43 4c 41 53 53 20 67 65 74 73 20 64 65 GE_CLASS gets de 05a0: 66 69 6e 65 64 20 61 73 20 44 4c 4c 45 58 50 4f fined as DLLEXPO 05b0: 52 54 2c 20 74 6f 20 6d 61 6b 65 20 73 74 61 74 RT, to make stat 05c0: 69 63 20 6c 69 6e 6b 69 6e 67 0a 09 23 20 77 6f ic linking..# wo 05d0: 72 6b 0a 09 42 55 49 4c 44 54 59 50 45 3d 22 24 rk..BUILDTYPE="$ 05e0: 28 62 61 73 65 6e 61 6d 65 20 22 24 7b 54 43 4c (basename "${TCL 05f0: 43 4f 4e 46 49 47 44 49 52 7d 22 29 22 0a 09 69 CONFIGDIR}")"..i 0600: 66 20 5b 20 22 24 7b 42 55 49 4c 44 54 59 50 45 f [ "${BUILDTYPE 0610: 7d 22 20 3d 20 22 77 69 6e 22 20 5d 3b 20 74 68 }" = "win" ]; th 0620: 65 6e 0a 09 09 43 50 50 46 4c 41 47 53 3d 22 24 en...CPPFLAGS="$ 0630: 7b 43 50 50 46 4c 41 47 53 7d 20 2d 44 42 55 49 {CPPFLAGS} -DBUI 0640: 4c 44 5f 74 63 6c 3d 31 22 0a 09 09 65 78 70 6f LD_tcl=1"...expo 0650: 72 74 20 43 50 50 46 4c 41 47 53 0a 09 66 69 0a rt CPPFLAGS..fi. 0660: 0a 09 23 20 42 75 69 6c 64 20 73 74 61 74 69 63 ..# Build static 0670: 20 6c 69 62 72 61 72 69 65 73 20 66 6f 72 20 6c libraries for l 0680: 69 6e 6b 69 6e 67 20 61 67 61 69 6e 73 74 20 54 inking against T 0690: 63 6c 6b 69 74 0a 09 2e 2f 63 6f 6e 66 69 67 75 clkit.../configu 06a0: 72 65 20 2d 2d 64 69 73 61 62 6c 65 2d 73 68 61 re --disable-sha 06b0: 72 65 64 20 2d 2d 70 72 65 66 69 78 3d 22 24 7b red --prefix="${ 06c0: 49 4e 53 54 44 49 52 7d 22 20 2d 2d 65 78 65 63 INSTDIR}" --exec 06d0: 2d 70 72 65 66 69 78 3d 22 24 7b 49 4e 53 54 44 -prefix="${INSTD 06e0: 49 52 7d 22 20 2d 2d 77 69 74 68 2d 74 63 6c 3d IR}" --with-tcl= 06f0: 22 24 7b 54 43 4c 43 4f 4e 46 49 47 44 49 52 7d "${TCLCONFIGDIR} 0700: 2f 2e 2e 2f 67 65 6e 65 72 69 63 22 20 24 7b 43 /../generic" ${C 0710: 4f 4e 46 49 47 55 52 45 45 58 54 52 41 7d 0a 09 ONFIGUREEXTRA}.. 0720: 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65 7d 20 74 63 ${MAKE:-make} tc 0730: 6c 6c 69 62 64 69 72 3d 22 24 7b 49 4e 53 54 44 llibdir="${INSTD 0740: 49 52 7d 2f 6c 69 62 22 20 41 52 3d 22 24 7b 41 IR}/lib" AR="${A 0750: 52 3a 2d 61 72 7d 22 20 52 41 4e 4c 49 42 3d 22 R:-ar}" RANLIB=" 0760: 24 7b 52 41 4e 4c 49 42 3a 2d 72 61 6e 6c 69 62 ${RANLIB:-ranlib 0770: 7d 22 20 26 26 20 5c 0a 09 24 7b 4d 41 4b 45 3a }" && \..${MAKE: 0780: 2d 6d 61 6b 65 7d 20 74 63 6c 6c 69 62 64 69 72 -make} tcllibdir 0790: 3d 22 24 7b 49 4e 53 54 44 49 52 7d 2f 6c 69 62 ="${INSTDIR}/lib 07a0: 22 20 41 52 3d 22 24 7b 41 52 3a 2d 61 72 7d 22 " AR="${AR:-ar}" 07b0: 20 52 41 4e 4c 49 42 3d 22 24 7b 52 41 4e 4c 49 RANLIB="${RANLI 07c0: 42 3a 2d 72 61 6e 6c 69 62 7d 22 20 69 6e 73 74 B:-ranlib}" inst 07d0: 61 6c 6c 20 7c 7c 20 28 0a 09 09 72 6d 20 2d 72 all || (...rm -r 07e0: 66 20 22 24 7b 49 4e 53 54 44 49 52 7d 22 0a 09 f "${INSTDIR}".. 07f0: 09 6d 6b 64 69 72 20 22 24 7b 49 4e 53 54 44 49 .mkdir "${INSTDI 0800: 52 7d 22 0a 0a 09 09 65 78 69 74 20 31 0a 09 29 R}"....exit 1..) 0810: 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 65 78 69 || exit 1...exi 0820: 74 20 30 0a 29 20 7c 7c 20 65 78 69 74 20 31 0a t 0.) || exit 1. 0830: 0a 65 78 69 74 20 30 0a .exit 0.