[Top][All Lists]

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

DESTDIR can not be relative

From: Ilya N. Golubev
Subject: DESTDIR can not be relative
Date: Thu, 20 Mar 2008 22:48:57 +0300

Version: 1.5.24

Severity: workaround is obvious.  Whether it is acceptable depends on
complexity of projects relying on old behavior.

In the following, `DESTDIR' is used as defined in GNU coding
standards, <(standards) DESTDIR>.

Can not make `DESTDIR' relative (directory name).  When trying to do
so, installation command like this:

/bin/sh ../libtool --mode=install /usr/bin/install -c  'libzxc.la' 

outputs error message:

libtool: install: `../spqr/usr/lib' must be an absolute directory name
Try `libtool --help --mode=install' for more information.

ands exits as failed.

Using relative file names, in commands of both `install' and other
`make' targets, has an inherent advantage of reliability when build
directories are in file systems maintained by automounter or similar
subsystem, so that absolute names for their mount point are fluid and
may change after (hard to guess) timeouts or so.

Installing things this way, in particular, in some subdirectory of
build treee, makes perfect sense.  The simplest use is in procedures
similar to standard `distcheck' target of automake.  (Though that
particular one avoids relative `DESTDIR', with additional ugly (IMO)
looking code to obtain absolute one.)  A more complex example is
package having a procedure to build some sort of binary kit, something
like binary rpm.  (Admitting it to be an old issue, from
<address@hidden> of Mon, 20 Aug 2007 21:42:53 +0400.)  It is
natural for such a procedure to install to subdirectory of top build

Such a procedures may be quite complex, and depend on `make install'
allowing relative `DESTDIR' in many places.  So whether this is minor
nuisance or forcing code overhaul entirely depends on project
complexity in this way.

reply via email to

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