[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

separating runtime and development files?

From: Ilya N. Golubev
Subject: separating runtime and development files?
Date: Mon, 20 Aug 2007 21:42:53 +0400

`libtool --mode=install' generally installs, along with libtool
library, several files, possibly including symbolic links.  To
(dynamically link and) run a program linked with library, only some of
them are required.  Henceforth calling these installed files run-time
ones.  The rest are needed only to develop with library, to link
programs and other libraries with it.  Calling them development ones.

Installing run-time files only, and, if needed, install development
ones later, is quite a common task, even more common than installing
shared libraries themselves.  (This includes preparing binary kits of
packages containing libraries.  But any user installing a package from
source, without any intervening packaging, may desire to install
run-time files only for the same reasons.)  To do so, one needs to
figure which files installed by libtool are run-time ones, and which
are development, to obtain lists of run-time and development files.
Currently there is no (documented) way to do so, let alone automate
it.  Moreover, the installed (along with libtool library) file list
itself is hidden inside particular libtool configuration (`libtool'
script).  (All `library_names_spec' values I've seen definitely need
some additional processing, the details of which again have to be
guessed.)  (And libtool is certainly designed to hide this as much as

Despite essentially any binary packager having faced the issue, there
may have been little complaints from them about it as described above
for the simple reason.  For most of these packagers, any given team of
them prepare packages for some single operating system ("platform")
only, with some single (or several, but essentially the same) libtool
configuration.  So they may "once and forever" figure list patterns of
run-time and development files for their particular system and just
hardwire these lists in all their binary package specifications.  Like
`lib*.so.*' for run-time and `lib*.la', `lib*.so' for development seen
in innumerable rpm specifications for systems based on gnu / linux.

If binary packages, or just lists of files to be installed / packaged,
are to be prepared for several different systems, this approach does
not work.  It is only libtool that "knows" which files are installed
at all, so only it can tell which are run-time and which are
development ones.  Currently it does not, and considering it a bug to
fix (to be in `TODO').  Or call it feature request if you like.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]