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
|
| ︙ | ︙ |