> On 21 Nov 2018, at 14:45, Miguel Zilhão > <[email protected]> wrote: > > hi all, > > i'm compiling ET on a local cluster that uses the module system. on this > system, once one does > "module load <...>", the respective path is added to an environmental > variable. for instance, doing > > $ module load HDF5 > > sets the environmental variable $EBROOTHDF5: > > $ echo $EBROOTHDF5 > /home/share/easybuild/software/HDF5/1.8.20-GCC-7.3.0-2.30-generic > > so i was trying to use these in my configuration file, by adding the lines > > HDF5_DIR = $EBROOTHDF5 > HDF5_LIB_DIRS = ${EBROOTHDF5}/lib > HDF5_INC_DIRS = ${EBROOTHDF5}/include > > etc, to it. however, these environmental variables don't seem to be correctly > expanded, as i get > things like the following: > > Running configuration script for thorn HDF5: > Additional requested language support: Fortran > WARNING in HDF5 configuration: > None of H5pubconf.h H5pubconf-64.h H5pubconf-32.h found in ${EBROOTHDF5}/lib > ${EBROOTHDF5}/include > Automatic detection of szip/zlib compression not possible > Finished running configuration script for thorn HDF5. > > but if i look into the folder ${EBROOTHDF5}/include, these files are clearly > there. the compilation > later fails because of this. > > when i specify the full path explicitly in the config file: > > HDF5_INC_DIRS = > /home/share/easybuild/software/HDF5/1.8.20-GCC-7.3.0-2.30-generic/include > > i get no such warnings, and the code proceeds to compile just fine. is this > the expected behaviour? > shouldn't the environmental variables be correctly expanded? if not, what > would be the typical > procedure to compile the code on systems with such module tools?
Hi Miguel, No, environment variables are not expanded in that way, because optionlists are not evaluated by a shell. Yes, it would be nice if they were, however :) You can do it in parameter files, but not in optionlists. Usually, in this case, we either set the paths explicitly, resulting in a multitude of almost-identical optionlists, or let the external library automatically detect the location by finding an executable on the path (MPI does this, but I don't know if any others do). I've never used it, but it looks like simfactory provides a solution. In simsubs.py SubAll, it looks like you can use @ENV(EBROOTHDF5)@. Let us know how you get on with that. -- Ian Hinder https://ianhinder.net
_______________________________________________ Users mailing list [email protected] http://lists.einsteintoolkit.org/mailman/listinfo/users
