ADDED memchan/build.sh Index: memchan/build.sh ================================================================== --- memchan/build.sh +++ memchan/build.sh @@ -0,0 +1,53 @@ +#! /bin/bash + +if [ ! -f 'build.sh' ]; then + echo 'ERROR: This script must be run from the directory it is in' >&2 + + exit 1 +fi +if [ -z "${TCLVERS}" ]; then + echo 'ERROR: The TCLVERS environment variable is not set' >&2 + + exit 1 +fi + +MEMCHANVERS="2.2.1" +SRC="src/memchan-${ITCLVERS}.tar.gz" +SRCURL="http://sourceforge.net/projects/memchan/files/memchan/${MEMCHANVERS}/memchan-${MEMCHANVERS}.tar.gz/download" +BUILDDIR="$(pwd)/build/memchan-${MEMCHANVERS}" +OUTDIR="$(pwd)/out" +INSTDIR="$(pwd)/inst" +export MEMCHANVERS SRC SRCURL BUILDDIR OUTDIR INSTDIR + +rm -rf 'build' 'out' 'inst' +mkdir 'build' 'out' 'inst' || exit 1 + +if [ ! -f "${SRC}" ]; then + mkdir 'src' >/dev/null 2>/dev/null + + wget -O "${SRC}" "${SRCURL}" || exit 1 +fi + +( + cd 'build' || exit 1 + + gzip -dc "../${SRC}" | tar -xf - + + cd "${BUILDDIR}" || exit 1 + + # This fixes a well-known, long-standing failure in many Tcl + # configure scripts + sed "s@ /etc/\\.relid'@ '/etc/.relid'@" configure > configure.new + cat configure.new > configure + rm -f configure.new + + cd generic || exit 1 + + ../configure --enable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA} + + "${MAKE:-make}" || exit 1 + + "${MAKE:-make}" install +) || exit 1 + +exit 0 Index: mk4tcl/build.sh ================================================================== --- mk4tcl/build.sh +++ mk4tcl/build.sh @@ -30,15 +30,23 @@ ( cd 'build' || exit 1 gzip -dc "../${SRC}" | tar -xf - + cd "${BUILDDIR}/unix" || exit 1 + + # Build static libraries for linking against Tclkit ./configure --disable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}/../generic" ${CONFIGUREEXTRA} - "${MAKE:-make}" tcllibdir="${INSTDIR}/lib" || exit 1 + "${MAKE:-make}" tcllibdir="${INSTDIR}/lib" install + "${MAKE:-make}" tcllibdir="${INSTDIR}/lib" distclean + # Build shared object version (only used for non-Kit loading) + ./configure --enable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}/../generic" ${CONFIGUREEXTRA} + "${MAKE:-make}" tcllibdir="${INSTDIR}/lib" || exit 1 "${MAKE:-make}" tcllibdir="${INSTDIR}/lib" install + ) || exit 1 exit 0 Index: tclvfs/build.sh ================================================================== --- tclvfs/build.sh +++ tclvfs/build.sh @@ -32,19 +32,24 @@ cd 'build' || exit 1 gzip -dc "../${SRC}" | tar -xf - cd "${BUILDDIR}" || exit 1 - ./configure --disable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA} cp generic/vfs.c . + # Build static version + ./configure --disable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA} "${MAKE:-make}" || exit 1 + "${MAKE:-make}" install + # Build shared version + ./configure --enable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA} + "${MAKE:-make}" || exit 1 "${MAKE:-make}" install mkdir "${OUTDIR}/lib" || exit 1 cp -r "${INSTDIR}/lib"/vfs*/ "${OUTDIR}/lib/" - rm -f "${OUTDIR}/lib"/vfs*/*.a + rm -f "${OUTDIR}/lib"/vfs*/*.a "${OUTDIR}/lib"/vfs*/*.so ) || exit 1 exit 0