[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why relink the library during make install?
From: |
Bruno Haible |
Subject: |
Re: Why relink the library during make install? |
Date: |
Wed, 24 Jul 2002 21:33:16 +0200 (CEST) |
Alfred Szmidt writes:
> The GNU Coding Standard is quite specific that no re-compilation should
> be done when supplying `prefix' to `make install'.
>
> (standards) Directory Variables:
> ...
> Running `make install' with a different value of `prefix' from the
> one used to build the program should _not_ recompile the program.
This only means that the one who does
configure --prefix=/A
make
make install prefix=/B
cannot expect that auxiliary files (in lib, share, doc, etc) will
be found. The "make" process has no chance to put the pathnames
/B/lib, /B/share etc. into the executables and libraries because it
doesn't know about /B at that moment. In most cases, the installed
package will not run.
> If gettext doesn't follow this, then it should be fixed at once.
It cannot be fixed, because of the way shared library dependencies
work.
> Guess why in the world people using prefix=... in the 'make install'
> at all?
a. Because they don't know about DESTDIR.
b. Because they think that all packages are automatically relocatable,
as if they were single executables with no dependencies.
> Bruno> In this case you can should simply use
> Bruno> configure
> --prefix=/auto/insbu-cnstools/kit/gettext-0.11.3/auto/insbu-cnstools
>
> That will not work because we will have multiple bin and mutliple
> lib, etc:
>
> /auto/insbu-cnstools/kit/gettext-0.11.3/auto/insbu-cnstools/bin
> /auto/insbu-cnstools/kit/emacs-21.2/auto/insbu-cnstools/bin
You said that you have a post-installation process which whill make
symlinks from /somewhere/bin to these various bin directories. Where
is then the problem?
> Bruno> This is necessary because of the way shared library
> Bruno> dependencies work.
>
> But this has already been taken care in the configure phase, the
> 'make' already built the stuff with the proper settings.
On some operating systems, it cannot build the stuff completely until
the shared libraries have been installed. This is why "make install"
must relink.
Bruno
- Why relink the library during make install?, Paul Lew, 2002/07/24
- Re: Why relink the library during make install?, Bruno Haible, 2002/07/24
- Re: Why relink the library during make install?, Paul Lew, 2002/07/24
- Re: Why relink the library during make install?, Alfred M. Szmidt, 2002/07/24
- Re: Why relink the library during make install?, Russ Allbery, 2002/07/24
- Re: Why relink the library during make install?, Ralph Corderoy, 2002/07/31
- Re: Why relink the library during make install?, Miles Bader, 2002/07/31
- Re: Why relink the library during make install?, Thomas Bushnell, BSG, 2002/07/24
- Re: Why relink the library during make install?, Miles Bader, 2002/07/25
- Re: Why relink the library during make install?, Albert Chin, 2002/07/25
- Re: Why relink the library during make install?, Albert Chin, 2002/07/25
- Re: Why relink the library during make install?, Miles Bader, 2002/07/25