[ET Trac] [Einstein Toolkit] #136: Don't rebuild external libraries so often
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Tue Jul 19 16:11:57 CDT 2011
#136: Don't rebuild external libraries so often
--------------------------+-------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: review
Priority: minor | Milestone:
Component: Cactus | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Comment (by bmundim):
> The patch only handles the problem for one library. Most users would
probably like to have this > mechanism for all libraries at the same time,
without having to specify a lot of installation
> directories.
The patch is easy and simple enough to be ported to all other libraries,
and I volunteer to do so if it is the case. I disagree it is a lot of
installation directories. Right now the default in a .cactus/config
file is to have this to force a library building:
GSL_DIR = BUILD
I propose to allow an extra option (that would add one *optional* line
to each library line in the configuration file):
GSL_DIR = BUILD
GSL_INSTALL_DIR = /home/me/local/intel11/gsl-1.14.etc
I mean there is even no need to have it there. If the library is not found
in the system it is built and installed in the config/scratch directories.
My suggestion doesn't change this behaviour, it only adds an option: to
free
the user to install the libraries where he or she wants to. The external
libraries have nothing to do with Cactus and it doesn't make sense to me
to bury them in the Cactus tree. The only advantage of using Cactus to
build
the external libraries is that Cactus know how to do so, as once Erik
said.
The user may want to use these libraries with other pieces of software or
he/she may just not be willing to build libraries whenever a new
configuration
is created or an old one cleaned. There is no such an urgent need to do
so,
and, besides, we may inadvertently erase configs or whole Cactus trees
without remembering that the libraries were buried there. So I think
we should at least to provide a way out of this, and the simplest way
I thought so far was to let the user especify the library installation
directory.
> What about the following:
> within configs/ (or a new subdirectory of the main tree) we create (if
requested) directories
> containing all build libraries of a given configuration. We also save
the configuration file
> (also including options given on the command line) which was used for
these there. Comparing
> these saved configuration files to the one of a currently being built
configuration shouldn't be > hard or take long. Thus, when building a new
configuration, we could (if requested) look through > these directories
for a matching configuration file and if found, let the library scripts
know
> about that directory as installation directory, and they can then decide
to either rebuilt into > there or just reuse it.
> One issue with that is to decide what should happen on a make -clean.
Right now this also
> rebuilds the libraries, which is fine, as they are local to one
configuration and do not affect > others. We should probably still clean
the libraries, accepting that this will potentiall affect > other
configurations as well. That shouldn't be too much of a problem, as the
same configuration > options /should/ result in the same library being
built, but that might not always be the case - > like after an update of
the library itself.
Your suggestion may improve things a bit re the frequency in which the
libraries are built, but still doesn't give the user the freedom where
to install the external libraries, it only changes the current default
installation directories. These libraries would still be inside
Cactus/configs tree.
Concerning make -clean we could add an option to make libraries-clean or
similar.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/136#comment:15>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list