[OpenAFS-devel] Shared libraries and the 'make dest' target

Simon Wilkinson sxw@inf.ed.ac.uk
Mon, 5 Sep 2011 19:01:23 +0100


Those of you following master will have noticed that a couple of shared =
libraries (rokenafs and afshcrypto) have crept into the build. These =
have some unfortunate ramifications for the 'dest' target that need to =
be ironed out before we can ship our next major release on Unix =
platforms.

'dest' produces a directory structure that is designed to be =
relocatable, with the exception of a small number of configuration files =
which are expected to be located at a particular path. This isn't =
possible if this tree contains shared libraries, as these libraries must =
be located in a known place within the installed tree. On some =
platforms, this location must be known at build time, on others, it must =
be a path with a system-wide search list. All of this means that doing =
shared libraries within 'make dest' is problematic.

My proposal to resolve this is to disable internal shared libraries when =
we do 'make dest' builds. To do so, we will have to change the way in =
which these builds are selected - as the type of library to use must be =
chosen at configure, rather than build, time. I'm planning on creating a =
new configure option --enable-dest, which will select a 'dest' style =
build product. 'make install' will then install into a dest style tree.

This has the added advantage that we can remove a large amount of =
duplication in our Makefiles, as we will only need one set of =
installation rules, rather than separate rules for 'dest' and 'install'.

Comments?

Simon.