DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(libtool14.info.gz) Porting inter-library dependencies

Info Catalog (libtool14.info.gz) Information sources (libtool14.info.gz) New ports
 
 13.1.2 Porting inter-library dependencies support
 -------------------------------------------------
 
 Since version 1.2c, libtool has re-introduced the ability to do
 inter-library dependency on some platforms, thanks to a patch by Toshio
 Kuratomi <badger@prtr-13.ucsc.edu>.  Here's a shortened version of the
 message that contained his patch:
 
    The basic architecture is this: in `libtool.m4', the person who
 writes libtool makes sure `$deplibs' is included in `$archive_cmds'
 somewhere and also sets the variable `$deplibs_check_method', and maybe
 `$file_magic_cmd' when `deplibs_check_method' is file_magic.
 
    `deplibs_check_method' can be one of five things:
 `file_magic [REGEX]'
      looks in the library link path for libraries that have the right
      libname.  Then it runs `$file_magic_cmd' on the library and checks
      for a match against REGEX using `egrep'.  When
      FILE_MAGIC_TEST_FILE is set by `libtool.m4', it is used as an
      argument to `$file_magic_cmd' in order to verify whether the
      regular expression matches its output, and warn the user otherwise.
 
 `test_compile'
      just checks whether it is possible to link a program out of a list
      of libraries, and checks which of those are listed in the output of
      `ldd'.  It is currently unused, and will probably be dropped in the
      future.
 
 `pass_all'
      will pass everything without any checking.  This may work on
      platforms in which code is position-independent by default and
      inter-library dependencies are properly supported by the dynamic
      linker, for example, on DEC OSF/1 3 and 4.
 
 `none'
      It causes deplibs to be reassigned deplibs="".  That way
      `archive_cmds' can contain deplibs on all platforms, but not have
      deplibs used unless needed.
 
 `unknown'
      is the default for all systems unless overridden in `libtool.m4'.
      It is the same as `none', but it documents that we really don't
      know what the correct value should be, and we welcome patches that
      improve it.
 
    Then in `ltmain.in' we have the real workhorse: a little
 initialization and postprocessing (to setup/release variables for use
 with eval echo libname_spec etc.) and a case statement that decides
 which method is being used.  This is the real code... I wish I could
 condense it a little more, but I don't think I can without function
 calls.  I've mostly optimized it (moved things out of loops, etc) but
 there is probably some fat left.  I thought I should stop while I was
 ahead, work on whatever bugs you discover, etc before thinking about
 more than obvious optimizations.
 
Info Catalog (libtool14.info.gz) Information sources (libtool14.info.gz) New ports
automatically generated byinfo2html