[linux-lvm] [RFC][PATCH] proper DESTDIR handling for device-mapper and LVM2

Kevin P. Fleming kpfleming at backtobasicsmgmt.com
Fri Mar 12 10:25:00 UTC 2004


Alasdair G Kergon wrote:

> Thanks for the tidying: I'll work through this properly late next week.  
> (Office moves today.)  Quick comments: I'd prefer not to see DESTDIR in 
> Makefiles though: only in the template, and some (I thought most?) people 
> *do* want to pick up some include files etc. from their DESTDIR (they're not
> installed on their main system, or the ones on their system are different
> versions from the ones in DESTDIR which has the correct environment the
> software uses when it runs): perhaps that should be split into a separate
> configuration option (enabled by default)?

To keep DESTDIR only in the template, you'll have to replace the

bindir = @bindir@

lines (and similar) in make.tmpl with

bindir = $(DESTDIR)@bindir@

to avoid the problem of @bindir@ not including ${prefix}. Just don't 
bother putting $(DESTDIR) into prefix/exec_prefix at all, IMHO.

I can't speak to what everyone else does with DESTDIR, but most 
packaging systems point DESTDIR to an _empty_ subtree to do the install 
into, so they can package up all the resulting files. If someone wanted 
to build LVM2 on a system that had device-mapper _only_ installed into 
DESTDIR (i.e. /usr/lib did not contain libdevmapper.so, /usr/include did 
not contain libdevmapper.h, etc.) this would take a lot more work than 
what was already in the Makefiles, and even then it would tend to break 
because /usr/sbin/lvm would end up linked to

/foo/usr/lib/libdevmapper.so

instead of

/usr/lib/libdevmapper.so

and so /usr/sbin/lvm wouldn't run properly once the DESTDIR directory 
was used as a real environment.

So just to be completely redundant <G>, I'll reiterate the way I've 
always seen DESTDIR used: it's used _only_ at "make install" time to 
redirect the installation to a different path than the package was 
compiled to run from.




More information about the linux-lvm mailing list