Opened 12 years ago

Closed 12 years ago

#4934 closed Bugs (duplicate)

Please support DESTDIR/--destdir for installation into a virtual root

Reported by: Roger Leigh <rleigh@…> Owned by:
Milestone: To Be Determined Component: Building Boost
Version: Boost 1.44.0 Severity: Problem
Keywords: Cc:

Description

If you've read the GNU coding standards or used GNU automake, as examples, these (and other) tools and standards specify a DESTDIR (destination directory) for "make install". The purpose is to separate the installation prefix/exec-prefix/libdir/includedir locations from the root where they actually get installed.

As an example, if I configure with --prefix=/usr and libdir is ${prefix}/lib, "make install" will install into ${prefix}/lib.

However, if I do "make DESTDIR=/tmp/tmpdir install", then installation will be into "/tmp/tmpdir/${prefix}/lib". It's actually installing into ${DESTDIR}${libdir}, where DESTDIR is empty by default.

Why is this needed? It's mainly used for packaging purposes, because if I want to make .deb or .rpm packages, or even just a .tar.gz of the built files, I don't want to install onto the base system, I want to install into a temporary directory location (virtual root) so I can then package up the files.

Now, I could use "--prefix=/tmp/tmpdir/usr", and this is in fact what Debian is currently doing. However, if I want to actually use the value of ${prefix}, it should be "/usr" and it's actually set to "/tmp/tmpdir/usr", which is obviously wrong.

I would like to suggest that an additional bjam option --destdir would allow one to do this:

  bjam --prefix=/usr --destdir=/tmp/tmpdir install

rather than the incorrect

  bjam --prefix=/tmp/tmpdir/usr install

which is currently the only possible method to use.

This is related to bug #1094 because this will insert the directory locations into the generated .pc file. If you bootstrap with the DESTDIR included in the --prefix, you'll end up with buggy .pc files containing the wrong locations. Using --destdir means the configured locations are always correct.

Many thanks, Roger

Change History (2)

comment:1 by Roger Leigh <rleigh@…>, 12 years ago

Sorry, this is a duplicate of #1811.

comment:2 by Marshall Clow, 12 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.