#136: Don't rebuild external libraries so often --------------------------+------------------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: new Priority: minor | Milestone: Component: Cactus | Version: Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment (by bmundim):
Hi,
the way I used to deal with this problem was simply to build the libraries and move them elsewhere outside the configuration directory or Cactus tree. That had worked fine for me so far and I think that would work for most people as well, since they can always name the external directory to match the configuration and let the config-info to exist there as well as a reminder of the compiler options used. However, recently, after one of those "sim-reconfig" that doesn't actually reconfigure anything, I erased the configuration that I used originally to build the libraries. I started then to have problems with the gsl library, which has already been installed. Investigating this issue I found out that the options set in GSL.sh uses ${GSL_DIR}/bin/gsl-config, which actually hard coded the original installation directory (the default on config/scratch/GSL). So moving things around ended up not being a good idea.
The best way, in my opinion, to deal with this issue at the moment would be to let the user define the installation directory in its .cactus/config option file. So whenever we build the library the script also looks for GSL_INSTALL_DIR variable and if it finds it installs the library at that user specified directory, otherwise it installs in the default location at config/scratch/GSL. We would set something like this in the .cactus/config file:
GSL_DIR = BUILD GSL_INSTALL_DIR = /home/me/local/gsl-1.14
and after building and installation we would change to only
GSL_DIR = /home/me/local/gsl-1.14
in order to use it for most other configurations.
I have a patch attached with a small change to GSL.sh script. I encourage you to give a look and express your opinion. My proposal doesn't change the default behaviour. It only adds an option for the user to specify the installation directory. The only drawback I can think of at the moment it is that you may forget which configuration was used to build the libraries. However, you could always name the directory accordingly and we could improve the script to make it dump a similar config-info file there as a reminder, if really necessary
Anyway, I find annoying to have to rebuild libraries frequently and I hope my proposed solution to GSL.sh can be ported for the other library scripts as well and that it can be really a step forward on avoiding all this unnecessary and time consuming re-compilations.