-
Notifications
You must be signed in to change notification settings - Fork 7
Additional Options
== Restricting Access ==
You can use MAALI_MODULE_RESTRICT_GROUP to restrict who has access to the software. This should be set to a posix group which the installing username is a member of as it is only used for system builds.
For example USEARCH is restricted to the usearch POSIX group using:
MAALI_MODULE_RESTRICT_GROUP='usearch'
If you override maali_build, maali_cmake_build or maali_python_build you should make sure permissions are set correctly on the installed files:
function maali_build {
maali_run "cd $MAALI_BUILD_DIR"
maali_run "mkdir -p $MAALI_INSTALL_DIR/bin"
maali_run "install -m 750 ${MAALI_TOOL_NAME}${MAALI_TOOL_VERSION}_i86linux32 $MAALI_INSTALL_DIR/bin/$MAALI_TOOL_NAME"
maali_run "chmod 750 $MAALI_INSTALL_DIR"
maali_run "chmod 750 $MAALI_INSTALL_DIR/bin"
maali_run "chgrp -R $MAALI_MODULE_RESTRICT_GROUP $MAALI_INSTALL_DIR"
}
== Creating Module files ==
All of the variables that let you set environment variables in module files start with MAALI_MODULE_SET_ and should set the environment variable of everything that follows this:
- MAALI_MODULE_SET_C_INCLUDE_PATH prepends C_INCLUDE_PATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_CPATH prepends CPATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_CPLUS_INCLUDE_PATH prepends CPLUS_INCLUDE_PATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_CRAY_LD_LIBRARY_PATH prepends CRAY_LD_LIBRARY_PATH with $MAALI_APP_HOME/lib
- MAALI_MODULE_SET_FCPATH prepends FCPATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_FPATH prepends FPATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_INCLUDE_PATH prepends INCLUDE_PATH with $MAALI_APP_HOME/include
- MAALI_MODULE_SET_LD_LIBRARY_PATH prepends LD_LIBRARY_PATH with $MAALI_APP_HOME/lib
- MAALI_MODULE_SET_LD_PRELOAD prepends LD_PRELOAD with $MAALI_APP_HOME/lib/$MAALI_MODULE_SET_LD_PRELOAD
- MAALI_MODULE_SET_MANPATH prepends MANPATH with $MAALI_APP_HOME/share/man
- MAALI_MODULE_SET_PERLLIB prepends PERLLIB and PERL5LIB with $MAALI_APP_HOME/lib/perl5/site_perl/5.10.1 if set to 1, $MAALI_APP_HOME/$MAALI_MODULE_SET_PERLLIB otherwise
- MAALI_MODULE_SET_PKG_CONFIG_PATH prepends PKG_CONFIG_PATH with $MAALI_APP_HOME/lib/pkgconfig
Everything else that starts with MAALI_MODULE_SET_ will have MAALI_MODULE_SET_ stripped from the name and maali will add setenv name with the value of the variable to the module file.
MAALI_MODULE_SET_PATH prepends PATH with $MAALI_APP_HOME/bin if set to 1 or $MAALI_APP_HOME if set to "toplevel". Otherwise is treated as a space separated locations to be added to $MAALI_APP_HOME. For example glimmer sets this to MAALI_MODULE_SET_PATH="bin scripts" so $MAALI_APP_HOME/bin and $MAALI_APP_HOME/scripts get pre-pended to PATH.
MAALI_MODULE_SET_PYTHONPATH prepends PYTHONPATH with $MAALI_APP_HOME/$env(MAALI_PYTHON_LIBDIR)/python$env(PYTHON_LIB_VERSION)/site-packages. This happens automatically with Python Libraries.
MAALI_MODULE_WHATIS sets module what-is.
There is an option on maali to just generate the module file. This is useful when you have forgotten to set one of the above variables, and want to re-create the module file. This can be done by specifying the -m switch:
$ maali -t parallel -v 20151022 -c sles11sp4 -m
Using /home/maali/.maali/sles11sp4/cygnet_files/parallel.cyg for tool configuration information
just re-creating the module file
creating module in /pawsey/sles11sp4/modulefiles/tools/parallel</pre>
== Re-building with a specific compiler ==
You can compile software with a specific compiler if you want to test whether a new compiler (or even compiler version) can support compiling the software. This is specified using the -r switch:
maali -t parallel -v 20151022 -c sles11sp4 -r 'intel/15.0.5' -b
Using /home/maali/.maali/sles11sp4/cygnet_files/parallel.cyg for tool configuration information
.. setting MAALI_TOOL_COMPILERS to intel/15.0.5
.. loading intel/15.0.5
downloading the source code for parallel 20151022
building parallel 20151022 with intel/15.0.5
.. loading intel/15.0.5
.. check for build only modules
.. unpacking the source code for parallel 20151022
.. compiling parallel 20151022 with intel/15.0.5
creating module in /pawsey/sles11sp4/modulefiles/tools/parallel
skipping module creation
Note we also use the -b switch to prevent the module file being re-created. If we didn't this could potentially break software as the module would be re-created incorrectly:
maali -t parallel -v 20151022 -c sles11sp4 -r 'intel/15.0.5'
Using /home/maali/.maali/sles11sp4/cygnet_files/parallel.cyg for tool configuration information
.. setting MAALI_TOOL_COMPILERS to intel/15.0.5
.. loading intel/15.0.5
downloading the source code for parallel 20151022
building parallel 20151022 with intel/15.0.5
.. loading intel/15.0.5
.. check for build only modules
.. unpacking the source code for parallel 20151022
.. compiling parallel 20151022 with intel/15.0.5
creating module in /pawsey/sles11sp4/modulefiles/tools/parallel
Note than the intel version has put a conflict in with gcc/4.8.5:
$ diff /pawsey/sles11sp4/modulefiles/tools/parallel/20151022 /pawsey/sles11sp4/modulefiles/tools/parallel/20151022~
15,18c15,17
< conflict gcc/4.8.5
< setenv MAALI_PARALLEL_HOME /pawsey/sles11sp4/tools/$env(COMPILER)/$env(COMPILER_VER)/parallel/20151022
< prepend-path MANPATH /pawsey/sles11sp4/tools/$env(COMPILER)/$env(COMPILER_VER)/parallel/20151022/share/man
< prepend-path PATH /pawsey/sles11sp4/tools/$env(COMPILER)/$env(COMPILER_VER)/parallel/20151022/bin
---
> setenv MAALI_PARALLEL_HOME /pawsey/sles11sp4/tools/gcc/4.3.4/parallel/20151022
> prepend-path MANPATH /pawsey/sles11sp4/tools/gcc/4.3.4/parallel/20151022/share/man
> prepend-path PATH /pawsey/sles11sp4/tools/gcc/4.3.4/parallel/20151022/bin