PREFIX is not honored for dependencies

Steve Kargl 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.
> 

man ports
man make.conf
man src.conf

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 

cd /usr/ports/dev/cppunit
make PREFIX=/opt/ install
cd /usr/ports/editors/libreoffice
make PREFIX=/opt/

does try to re-install cppunit; whereas if cppunit is not previously
installed

cd /usr/ports/editors/libreoffice
make PREFIX=/opt/

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.

-- 
Steve


More information about the freebsd-ports mailing list