Differences From Artifact [805b596118]:
- Executable file tcl/build.sh — part of check-in [4f2db7cae0] at 2010-10-12 15:56:10 on branch trunk — Added patch for Tcl 8.4.19 to compile with newer versions of GCC (user: rkeene, size: 5033) [annotate] [blame] [check-ins using]
To Artifact [f8ef582bfc]:
- Executable file
tcl/build.sh
— part of check-in
[0527703474]
at
2011-05-28 06:38:41
on branch trunk
— Updated to support finding TCLSH_NATIVE by the root kitcreator script and using that in most places where a native Tcl interpreter is needed
Updated to find date of Fossil checkin when a fossil tag or ID is specified and use that date for checkouts of other projects (user: rkeene, size: 6818) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
22 23 24 25 26 27 28 29 | rm -rf 'build' 'out' 'inst' mkdir 'build' 'out' 'inst' || exit 1 if [ ! -f "${SRC}" ]; then mkdir 'src' >/dev/null 2>/dev/null if echo "${TCLVERS}" | grep '^cvs_' >/dev/null; then | > > > | > > > > > > > > | > > > | > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > | > > > > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | rm -rf 'build' 'out' 'inst' mkdir 'build' 'out' 'inst' || exit 1 if [ ! -f "${SRC}" ]; then mkdir 'src' >/dev/null 2>/dev/null use_fossil='0' if echo "${TCLVERS}" | grep '^cvs_' >/dev/null; then use_fossil='1' FOSSILTAG=$(echo "${TCLVERS}" | sed 's/^cvs_//g') if [ "${FOSSILTAG}" = "HEAD" ]; then FOSSILTAG="trunk" fi elif echo "${TCLVERS}" | grep '^fossil_' >/dev/null; then use_fossil='1' FOSSILTAG=$(echo "${TCLVERS}" | sed 's/^fossil_//g') fi export FOSSILTAG if [ "${use_fossil}" = "1" ]; then ( cd src || exit 1 workdir="tmp-$$${RANDOM}${RANDOM}${RANDOM}" rm -rf "${workdir}" mkdir "${workdir}" || exit 1 cd "${workdir}" || exit 1 # Handle Tcl first, since it will be used to base other packages on wget -O "tmp-tcl.tar.gz" "http://core.tcl.tk/tcl/tarball/tcl-fossil.tar.gz?uuid=${FOSSILTAG}" || rm -f 'tmp-tcl.tar.gz' gzip -dc 'tmp-tcl.tar.gz' | tar -xf - mv "tcl-fossil" "tcl${TCLVERS}" # Determine date of this Tcl release and use that date for all other dependent packages ## Unless the release we are talking about is "trunk", in which case we use that everywhere if [ "${FOSSILTAG}" = "trunk" ]; then FOSSILDATE="${FOSSILTAG}" else FOSSILDATE="$(echo 'cd "tcl'"${TCLVERS}"'"; set file [lindex [glob *] 0]; file stat $file finfo; set date $finfo(mtime); set date [expr {$date + 1}]; puts [clock format $date -format {%Y-%m-%dT%H:%M:%S}]' | TZ='UTC' "${TCLSH_NATIVE}")" fi ## If we are unable to determine the modification date, fall-back to the tag and hope for the best if [ -z "${FOSSILDATE}" ]; then FOSSILDATE="${FOSSILTAG}" fi # Handle other packages wget -O "tmp-itcl.tar.gz" "http://core.tcl.tk/itcl/tarball/itcl-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f 'tmp-itcl.tar.gz' wget -O "tmp-thread.tar.gz" "http://core.tcl.tk/thread/tarball/thread-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f "tmp-thread.tar.gz" wget -O "tmp-tclconfig.tar.gz" "http://core.tcl.tk/tclconfig/tarball/tclconfig-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f "tmp-tclconfig.tar.gz" gzip -dc "tmp-itcl.tar.gz" | tar -xf - gzip -dc "tmp-thread.tar.gz" | tar -xf - gzip -dc "tmp-tclconfig.tar.gz" | tar -xf - mkdir -p "tcl${TCLVERS}/pkgs/" >/dev/null 2>/dev/null mv "itcl-fossil" "tcl${TCLVERS}/pkgs/itcl" mv "thread-fossil" "tcl${TCLVERS}/pkgs/thread" cp -r "tclconfig-fossil" "tcl${TCLVERS}/pkgs/itcl/tclconfig" cp -r "tclconfig-fossil" "tcl${TCLVERS}/pkgs/thread/tclconfig" mv "tclconfig-fossil" "tcl${TCLVERS}/tclconfig" tar -cf - "tcl${TCLVERS}" | gzip -c > "../../${SRC}" echo "${FOSSILDATE}" > "../../${SRC}.date" cd .. rm -rf "${workdir}" ) || exit 1 else rm -f "${SRC}.tmp" wget -O "${SRC}.tmp" "${SRCURL}" || exit 1 mv "${SRC}.tmp" "${SRC}" fi fi |
︙ | ︙ | |||
75 76 77 78 79 80 81 | ( . "${patchscript}" ) fi done | < < < < < < < < < < < | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | ( . "${patchscript}" ) fi done for dir in unix win macosx __fail__; do if [ "${dir}" = "__fail__" ]; then # If we haven't figured out how to build it, reject. exit 1 fi |
︙ | ︙ | |||
109 110 111 112 113 114 115 | ${MAKE:-make} || continue echo "Running: ${MAKE:-make} install" ${MAKE:-make} install || ( # Work with Tcl 8.6.x's TCLSH_NATIVE solution for # cross-compile installs | | | | | | | | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | ${MAKE:-make} || continue echo "Running: ${MAKE:-make} install" ${MAKE:-make} install || ( # Work with Tcl 8.6.x's TCLSH_NATIVE solution for # cross-compile installs echo "Running: ${MAKE:-make} install TCLSH_NATIVE=\"${TCLSH_NATIVE}\"" ${MAKE:-make} install TCLSH_NATIVE="${TCLSH_NATIVE}" ) || ( # Make install can fail if cross-compiling using Tcl 8.5.x # because the Makefile calls "$(TCLSH)". We can't simply # redefine TCLSH because it also uses TCLSH as a build target sed 's@^$(TCLSH)@blah@' Makefile > Makefile.new cat Makefile.new > Makefile rm -f Makefile.new echo "Running: ${MAKE:-make} install TCLSH=\"../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")\"" ${MAKE:-make} install TCLSH="../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")" ) || ( # Make install can fail if cross-compiling using Tcl 8.5.9 # because the Makefile calls "${TCL_EXE}". We can't simply # redefine TCL_EXE because it also uses TCL_EXE as a build target sed 's@^${TCL_EXE}@blah@' Makefile > Makefile.new cat Makefile.new > Makefile rm -f Makefile.new echo "Running: ${MAKE:-make} install TCL_EXE=\"../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")\"" ${MAKE:-make} install TCL_EXE="../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")" ) || exit 1 mkdir "${OUTDIR}/lib" || exit 1 cp -r "${INSTDIR}/lib"/* "${OUTDIR}/lib/" rm -rf "${OUTDIR}/lib/pkgconfig" rm -f "${OUTDIR}"/lib/* >/dev/null 2>/dev/null find "${OUTDIR}" -name '*.a' | xargs rm -f >/dev/null 2>/dev/null |
︙ | ︙ |