Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: 3.1.6 install without rebuild (Re: 3.0 DESTDIR)



Bart Schaefer wrote:
>This means that "make MODDIR=/some/new/path fndir=/some/other/new/path"
>does not recompile zsh,

I intentionally wrote that code so that that *would* cause a recompile.
make MODDIR=foo guarantees to build a zsh which has the module directory
specified.  After your patch, changing MODDIR for make results in a zsh
with indeterminate module directory.  You would require a "make clean"
to reliably change the module directory, when in reality only a couple of
files need to be rebuilt.  (I'm operating under a more general principle
that the final result of make should be the same regardless of files
already built; make's job is simply to minimise the amount that gets
rebuilt, reusing a partial build if possible.)

Btw, my view is that giving different parameters to "make install"
from those one gave to "make" is a bad practice, but if it is to be
supported then the parameters from "make install" must take precedence.
After all, those are the parameters that will take effect if anything
changes and gets rebuilt during the "make install".

All of this is a matter of "least surprise", too.

>I'm now considering backing out the $DESTDIR stuff, because with this patch
>you can do this kind of thing (which works in 3.0.7 as well, by the way):
>
>	configure --prefix='${INSTROOT}/usr/local'
>	make
>	make INSTROOT=/tmp/zshtest install

Surely you're joking, Mr Schaefer.  OK, that's a nice hack, but DESTDIR
is a whole lot clearer.  Let's keep configured pathnames and install
paths properly distinct.

-zefram



Messages sorted by: Reverse Date, Date, Thread, Author