Normalize LT_deps/LT_objs split
authorBenjamin Kaduk <kaduk@mit.edu>
Fri, 12 Sep 2014 21:21:42 +0000 (17:21 -0400)
committerD Brashear <shadow@your-file-system.com>
Wed, 8 Oct 2014 14:48:07 +0000 (10:48 -0400)
As described in the commit message of
69f26ece3c4545ecc9099641f7a507796fe9dc77, LT_objs should contain
the .lo files for the given module, and LT_deps should contain the
libtool dependencies, i.e., the .la files from other parts of the
tree.  However, this simple split by file suffix is not correct
when we are using convenience libraries.  Really, LT_objs represents
the "new" objects being provided by the module, and LT_deps is
libraries from other modules that provide functionality on which
we depend.  Since convenience libraries are just thin aggregates
of object files, they behave more like object files than libraries
upon which we depend.  In particular, libafsrpc and libafsauthent
are wrapper libraries that gather together the functionality of
several modules and export them as a single library interface;
they do not have any objects of their own.

However, libafsauthent has a dependency on libafsrpc, which does
belong in LT_deps (or possibly in LT_libs).

Simon's description of LT_libs leaves a little ambiguity, as it
does not describe what should be done with non-libtool libraries
from within OpenAFS.  (At present, these include libafshcrypto
and librokenafs, both of which are regularly put in LT_libs.)
I prefer to recast LT_libs as containing externally visible libraries,
not just external libraries, which rationalizes the inclusion of
roken and hcrypto there, since we currently install those libraries,
and build libraries that have shared library dependencies on them.

In the future, as we begin committing to stable shared library
interfaces for libraries produced by libtool, I would like to
have those .la files be moved to LT_libs, since they would then
be external library dependencies of the given module.

Change-Id: Ie50010da84df99cec048c3e39ffeb9d5897fc08c
Reviewed-on: http://gerrit.openafs.org/11460
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: D Brashear <shadow@your-file-system.com>
Tested-by: D Brashear <shadow@your-file-system.com>

src/libafsauthent/Makefile.in
src/libafsrpc/Makefile.in

index 5a3ac38..21aefc5 100644 (file)
@@ -19,11 +19,11 @@ LT_objs = \
        $(top_builddir)/src/sys/libsys_pic.la \
        $(top_builddir)/src/ptserver/libprot_pic.la \
        $(top_builddir)/src/volser/libvolser_pic.la \
-       $(top_builddir)/src/vlserver/libvlserver_pic.la
+       $(top_builddir)/src/vlserver/libvlserver_pic.la \
+       $(top_builddir)/src/opr/libopr_pic.la \
+       $(top_builddir)/src/util/libafsutil_pic.la
 
 LT_deps = \
-       $(top_builddir)/src/opr/libopr_pic.la \
-       $(top_builddir)/src/util/libafsutil_pic.la \
        $(top_builddir)/src/libafsrpc/libafsrpc.la
 
 LT_libs = $(LIB_hcrypto) $(LIB_roken) $(LIB_crypt) $(LIB_AFSDB) $(MT_LIBS)
index b4dda3e..d8a8ba0 100644 (file)
@@ -18,11 +18,11 @@ LT_objs = \
        $(top_builddir)/src/util/libafsrpc_util.la \
        $(top_builddir)/src/rxstat/librxstat_pic.la \
        $(top_builddir)/src/sys/libafsrpc_sys.la \
-       $(top_builddir)/src/lwp/liblwpcompat_pic.la
-
-LT_deps = \
+       $(top_builddir)/src/lwp/liblwpcompat_pic.la \
        $(top_builddir)/src/opr/libopr_pic.la
 
+LT_deps =
+
 LT_libs = $(LIB_hcrypto) $(LIB_roken) $(MT_LIBS)
 
 all: libafsrpc.la libafsrpc_pic.la \