libtool
[Top][All Lists]
Advanced

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

Re: Support for multiple memory models?


From: Guido Draheim
Subject: Re: Support for multiple memory models?
Date: Tue, 13 Aug 2002 22:57:34 +0200

Es schrieb Norton Allen:
> 
> Is there any support in libtool/automake/autoconf for building
> libraries for multiple memory models, specifically for renaming
> the libraries during installation? I see that autoconf has the
> program_transform_name capability to rename programs and scripts
> during installation, but libraries do not benefit from this hook.

That's almost but not entirely correct. Just note the libtool-options
called --release and --version-info. I use an autoconf-macro to
break down a packageversion of x.y.z into the libtool options
--release x --version-info y:z. That will insteall a library as
mylib-x.so.y.0.z, along with the usual aliases, and in fact all
the binaries will be linked against "mylib-x.so.y" That is 
largely what you want. The only missing piece: there is a default
symlink mylib.so -> mylib-x.so.y made during installation, and
the same for staticlibs, so you still need to do the following:

> 
> My current best approach is to configure and build in a
> model-specific subdirectory with appropriate CFLAGS, install to a
> model-specific DESTDIR, then provide some external script to
> rename the libraries:
> 
>   e.g.   s/libfoo.a =>  foos.lib
>          l/libfoo.a =>  fool.lib
>         3r/libfoo.a => foo3r.lib
> 

IYAM, that's what most of us do who need multi-model libraries. 

As to the libtool guys: does anyone know an option how to
tell libtool that it should add the --release part to the
.so and .a as well? And if not, would that be problematic
to do? That would atleast save us the external rename
scripts - just multiple builddirs that each go through a
`make install` that does everything without overlappings
in library installspecs.

thanks, guido

P.S. Hey Norton, easiest way to learn about --release:
configure in a builddir, go to that builddir, and type:
./libtool --mode=link --help .... and later, look into 
the created *.la file for the name aliases of your lib.




reply via email to

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