lib/libem.bash: em.prep() renamed to _prep(), cleanup, bugfixes
This commit is contained in:
+43
-39
@@ -154,44 +154,17 @@ declare -x DYLD_LIBRARY_PATH
|
|||||||
|
|
||||||
module purge
|
module purge
|
||||||
|
|
||||||
#unset _P _V
|
|
||||||
|
|
||||||
function preexec() {
|
|
||||||
echo "$BASH_COMMAND"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $DEBUG_ON ]]; then
|
if [[ $DEBUG_ON ]]; then
|
||||||
#trap 'eval echo \\"$BASH_COMMAND\\"' DEBUG
|
|
||||||
trap 'echo "$BASH_COMMAND"' DEBUG
|
trap 'echo "$BASH_COMMAND"' DEBUG
|
||||||
#trap 'preexec' DEBUG
|
|
||||||
#set -o functrace
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function em.set_build_dependencies() {
|
function em.supported_os() {
|
||||||
EM_BUILD_DEPENDENCIES=("$@")
|
for os in "$@"; do
|
||||||
}
|
[[ ${os} == ${OS} ]] && return 0
|
||||||
|
|
||||||
function _load_build_dependencies() {
|
|
||||||
for m in "${EM_BUILD_DEPENDENCIES[@]}"; do
|
|
||||||
[[ -z $m ]] && continue
|
|
||||||
if [[ ! $m =~ "*/*" ]]; then
|
|
||||||
local _V=$(echo -n $m | tr [:lower:] [:upper:] )_VERSION
|
|
||||||
m=$m/${!_V}
|
|
||||||
fi
|
|
||||||
if module load "$m" 2>&1 | grep -q "Unable to locate"; then
|
|
||||||
echo "Module \"$m\" not available, trying to build it..."
|
|
||||||
"${SCRIPTDIR}/${m/\/*}.build" ${ARGS[@]}
|
|
||||||
if [[ -z $(module avail "$m" 2>&1) ]]; then
|
|
||||||
echo "Oops: Building module \"$m\" failed..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo "Loading module: $m"
|
|
||||||
module load "$m"
|
|
||||||
done
|
done
|
||||||
|
die 0 "${P}: Not available for ${OS}."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function em.add_to_family() {
|
function em.add_to_family() {
|
||||||
if [[ -z ${1} ]]; then
|
if [[ -z ${1} ]]; then
|
||||||
die 42 "${FUNCNAME}: Missing family argument."
|
die 42 "${FUNCNAME}: Missing family argument."
|
||||||
@@ -214,10 +187,36 @@ function em.add_to_family() {
|
|||||||
eval ${ENVIRONMENT_ARGS}
|
eval ${ENVIRONMENT_ARGS}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function em.set_build_dependencies() {
|
||||||
|
EM_BUILD_DEPENDENCIES=("$@")
|
||||||
|
}
|
||||||
|
|
||||||
function em.set_runtime_dependencies() {
|
function em.set_runtime_dependencies() {
|
||||||
EM_DEPENDENCIES=("$@")
|
EM_DEPENDENCIES=("$@")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _load_build_dependencies() {
|
||||||
|
for m in "${EM_BUILD_DEPENDENCIES[@]}"; do
|
||||||
|
[[ -z $m ]] && continue
|
||||||
|
if [[ ! $m =~ "*/*" ]]; then
|
||||||
|
local _V=$(echo -n $m | tr [:lower:] [:upper:] )_VERSION
|
||||||
|
m=$m/${!_V}
|
||||||
|
fi
|
||||||
|
if module load "$m" 2>&1 | grep -q "Unable to locate"; then
|
||||||
|
echo "Module \"$m\" not available, trying to build it..."
|
||||||
|
"${SCRIPTDIR}/${m/\/*}.build" ${ARGS[@]}
|
||||||
|
if [[ -z $(module avail "$m" 2>&1) ]]; then
|
||||||
|
echo "Oops: Building module \"$m\" failed..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "Loading module: $m"
|
||||||
|
module load "$m"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function _write_runtime_dependencies() {
|
function _write_runtime_dependencies() {
|
||||||
local -r fname="${PREFIX}/.dependencies"
|
local -r fname="${PREFIX}/.dependencies"
|
||||||
local dep
|
local dep
|
||||||
@@ -278,33 +277,41 @@ function _set_env() {
|
|||||||
# build module name
|
# build module name
|
||||||
case ${EM_FAMILY} in
|
case ${EM_FAMILY} in
|
||||||
Tools )
|
Tools )
|
||||||
|
EM_PREFIX="${P}/${V}"
|
||||||
EM_MODULENAME="${P}/${V}"
|
EM_MODULENAME="${P}/${V}"
|
||||||
;;
|
;;
|
||||||
Programming )
|
Programming )
|
||||||
|
EM_PREFIX="${P}/${V}"
|
||||||
EM_MODULENAME="${P}/${V}"
|
EM_MODULENAME="${P}/${V}"
|
||||||
;;
|
;;
|
||||||
Libraries )
|
Libraries )
|
||||||
|
EM_PREFIX="${P}/${V}"
|
||||||
EM_MODULENAME="${P}/${V}"
|
EM_MODULENAME="${P}/${V}"
|
||||||
;;
|
;;
|
||||||
System )
|
System )
|
||||||
|
EM_PREFIX="${P}/${V}"
|
||||||
EM_MODULENAME="${P}/${V}"
|
EM_MODULENAME="${P}/${V}"
|
||||||
;;
|
;;
|
||||||
Compiler )
|
Compiler )
|
||||||
|
EM_PREFIX="${P}/${V}/${COMPILER}/${COMPILER_VERSION}"
|
||||||
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${P}/${V}"
|
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${P}/${V}"
|
||||||
;;
|
;;
|
||||||
MPI )
|
MPI )
|
||||||
|
EM_PREFIX="${P}/${V}/${MPI}/${MPI_VERSION}/${COMPILER}/${COMPILER_VERSION}"
|
||||||
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${MPI}/${MPI_VERSION}/${P}/${V}"
|
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${MPI}/${MPI_VERSION}/${P}/${V}"
|
||||||
;;
|
;;
|
||||||
HDF5 )
|
HDF5 )
|
||||||
|
EM_PREFIX="${P}/${V}/${HDF5}/${HDF5_VERSION}/${MPI}/${MPI_VERSION}/${COMPILER}/${COMPILER_VERSION}/"
|
||||||
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${MPI}/${MPI_VERSION}/${HDF5}/${HDF5_VERSION}/${P}/${V}"
|
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/${MPI}/${MPI_VERSION}/${HDF5}/${HDF5_VERSION}/${P}/${V}"
|
||||||
;;
|
;;
|
||||||
HDF5_serial )
|
HDF5_serial )
|
||||||
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/hdf5_serial/${HDF5_SERIAL_VERSION}/${P}/${V}"
|
EM_PREFIX="${P}/${V}/hdf5_serial/${HDF5_SERIAL_VERSION}/${COMPILER}/${COMPILER_VERSION}"
|
||||||
|
EM_MODULENAME="${COMPILER}/${COMPILER_VERSION}/hdf5_serial/${HDF5_VERSION}/${P}/${V}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# set PREFIX of module
|
# set PREFIX of module
|
||||||
PREFIX="${EM_BINDIR}/${EM_FAMILY}/${EM_MODULENAME}"
|
PREFIX="${EM_BINDIR}/${EM_FAMILY}/${EM_PREFIX}"
|
||||||
|
|
||||||
DOCDIR="${PREFIX}/share/doc/$P"
|
DOCDIR="${PREFIX}/share/doc/$P"
|
||||||
|
|
||||||
@@ -321,11 +328,7 @@ function _set_env() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function em.set_env() {
|
function _prep() {
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function em.prep() {
|
|
||||||
|
|
||||||
# untar sources
|
# untar sources
|
||||||
if [[ ! -d ${EM_SRCDIR} ]]; then
|
if [[ ! -d ${EM_SRCDIR} ]]; then
|
||||||
@@ -403,8 +406,9 @@ function em.cleanup_src() {
|
|||||||
function em.make_all() {
|
function em.make_all() {
|
||||||
_set_env
|
_set_env
|
||||||
if [[ ! -d "${PREFIX}" ]] || [[ ${FORCE_REBUILD} ]]; then
|
if [[ ! -d "${PREFIX}" ]] || [[ ${FORCE_REBUILD} ]]; then
|
||||||
|
echo "Building $P/$V ..."
|
||||||
_load_build_dependencies
|
_load_build_dependencies
|
||||||
em.prep
|
_prep
|
||||||
cd "${EM_SRCDIR}"
|
cd "${EM_SRCDIR}"
|
||||||
em.pre_configure
|
em.pre_configure
|
||||||
cd "${EM_BUILDDIR}"
|
cd "${EM_BUILDDIR}"
|
||||||
|
|||||||
Reference in New Issue
Block a user