PREFIX is not honored for dependencies

Steve Kargl sgk at
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

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.


More information about the freebsd-ports mailing list