Files
Pmodules/40-build-modules
T

80 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
#
# https://core.tcl-lang.org
#
set -x
P=modules
V=${MODULES_VERSION:-3.2.10.1}
FNAME="$P-$V.tar.gz"
DOWNLOAD_URL="https://amas.web.psi.ch/Downloads/$P/$P-$V.tar.bz2"
PREFIX="${PMODULES_HOME}"
SRC_FILE="${PMODULES_DISTFILESDIR}/${FNAME}"
SRC_DIR="${PMODULES_TMPDIR}/$P-$V/src"
BUILD_DIR="${PMODULES_TMPDIR}/$P-$V/build"
PATH="${PREFIX}/bin:${PATH}"
trap "pb_exit" EXIT
# download
test -r "${SRC_FILE}" || curl -L --output "$_" "${DOWNLOAD_URL}" || exit ${PB_ERR_DOWNLOAD}
# unpack
mkdir -p "${SRC_DIR}" && cd "$_" || exit ${PB_ERR_SYSTEM}
tar --directory "${SRC_DIR}" --strip-components 1 -xv -f "${SRC_FILE}" || exit ${PB_ERR_UNTAR}
# configure
mkdir -p "${BUILD_DIR}" && cd "$_" || exit ${PB_ERR_SYSTEM}
case $(uname -s) in
Linux )
declare -x LIBS="-lz -lpthread"
;;
Darwin )
declare -x LIBS="-lz -framework CoreFoundation"
;;
* )
echo "Oops: unsupported OS!" 1>&2
exit ${PB_ERR_SYSTEM}
;;
esac
CPPFLAGS="-DUSE_INTERP_ERRORLINE" \
"${SRC_DIR}"/configure \
--prefix="${PREFIX}" \
--exec-prefix="${PREFIX}" \
--with-module-path="${PREFIX%%/Tools*}/Tools/${PMODULES_MODULEFILES_DIR}" \
--with-tcl="${PREFIX}/lib" \
--without-x \
--disable-versioning \
|| exit ${PB_ERR_CONFIGURE}
# compile & install
make -j ${NJOBS} || exit ${PB_ERR_MAKE}
make install || exit ${PB_ERR_INSTALL}
# post-install
mkdir -p "${PREFIX}/share/man/man1"
mkdir -p "${PREFIX}/share/man/man4"
rm -v "${PREFIX}/Modules/bin/add.modules"
rm -v "${PREFIX}/Modules/bin/mkroot"
rm -rfv "${PREFIX}/Modules/modulefiles"
mv -v "${PREFIX}/Modules/share/man/man1/module.1" "${PREFIX}/share/man/man1"
mv -v "${PREFIX}/Modules/share/man/man4/modulefile.4" "${PREFIX}/share/man/man4"
rmdir "${PREFIX}/Modules/bin"
rmdir "${PREFIX}/Modules/share/man/man1"
rmdir "${PREFIX}/Modules/share/man/man4"
rmdir "${PREFIX}/Modules/share/man"
rmdir "${PREFIX}/Modules/share"
rmdir "${PREFIX}/Modules"
rm -f "${PREIX}/init/{ksh,perl.pm,python.py,ruby.rb,cmake,.modulespath}"
cp -v "${BUILD_DIR}/modulecmd" "${PREFIX}/libexec/modulecmd.bin" || exit 1
# Local Variables:
# mode: sh
# sh-basic-offset: 8
# tab-width: 8
# End: