PREFIX is not honored for dependencies
sgk at troutmask.apl.washington.edu
Sat Aug 6 15:21:06 UTC 2011
On Sat, Aug 06, 2011 at 10:18:08AM +0100, Matthew Seaman wrote:
> On 05/08/2011 23:08, Steve Kargl wrote:
> > make clean
> > make PREFIX=/opt/
> > This eventually dies with
> > ===> Installing for cppunit-1.12.1
> > ===> Generating temporary packing list
> > ===> Checking if devel/cppunit already installed
> > ===> cppunit-1.12.1 is already installed
> > You may wish to ``make deinstall'' and install this port again
> > by ``make reinstall'' to upgrade it properly.
> > If you really wish to overwrite the old port of devel/cppunit
> > without deleting it first, set the variable "FORCE_PKG_REGISTER"
> > in your environment or the "make install" command line.
> > Of course, cppunit-1.12.1 is installed! The initial build
> > in libreoffice installed it before qt4-moc crooked.
> You need to understand the effect of two different variables here:
> PREFIX --- where to install /this/ port
> LOCALBASE --- where other ports have been installed
> PREFIX *only* affects where the current port will be installed. It
> doesn't affect where this port looks for any dependencies. That's what
> LOCALBASE is for.
Hmmm, no description of LOCALBASE.
So how is one to understand the difference? From 'man ports'
PREFIX Where to install things in general (usually /usr/local).
I suppose that that 'in general' is not too 'in general'.
I've pointed out elsewhere that
make PREFIX=/opt/ install
does try to re-install cppunit; whereas if cppunit is not previously
installs and registers cppunit. If this dies and one restarts the
make, then the make process tries to re-install cppunit. That's
just poor design.
More information about the freebsd-ports