automake
[Top][All Lists]
Advanced

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

Re: separating source and install name


From: Perrog
Subject: Re: separating source and install name
Date: Fri, 11 May 2007 10:36:10 +0200

Hi Ralf!

Thanks for the pointers!

2007/4/28, Ralf Wildenhues <address@hidden>:

Hello Perrog,

* Perrog wrote on Fri, Apr 13, 2007 at 09:04:57PM CEST:
> Is there a special reason $program_transform_name macro is limited to
> PROGRAMS primitive, and lack parallells to LIBRARIES and DATA?

`info Autoconf "Transformation Rules"' has a partial answer to this:
|    Whether to do the transformations on documentation files (Texinfo or
| `man') is a tricky question; there seems to be no perfect answer, due
| to the several reasons for name transforming.  Documentation is not
| usually particular to a specific architecture, and Texinfo files do not
| conflict with system documentation.  But they might conflict with
| earlier versions of the same files, and `man' pages sometimes do
| conflict with system documentation.  As a compromise, it is probably
| best to do name transformations on `man' pages but not on Texinfo
| manuals.

Of course, for libraries there is a completely different reason:
the library namespace is restricted by interdependencies[1].  Parallel
installations of libraries with the same functionality are often done
by installations into different libdirs, or different prefixes.

Hope that helps.

Cheers,
Ralf

[1] Example: package P builds libraries libA and libB, the latter
depending upon the former.  With shared libraries, the name of libA will
usually be hard-coded into libB.  Play the same game with installed
libraries, and there is little point in renaming them at `make install'
time.


In cases when you make a debug build, or static build, or some other
architecture build, it may be desirable to rename the installed library. For
example, libA_d is the debug version of libA. But this also has another
aspect... if we build libB_d, it may want to use libA_d, not libA.

I'v observed you may now (gcc 4.0) give linker the "path/to/library.a" or
"path/to/library.dylib", instead of using "-Lpath/to" and "-lrary" pair.  I
suppose this is the "right way" to link against specific library, instead of
fiddling around with the library's name.


reply via email to

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