changing a ports final destination via make knobs question...

chris# at chris# at
Wed Aug 27 02:31:03 UTC 2008

Quoting Paul Schmehl <pschmehl_lists at>:

> --On August 26, 2008 3:05:25 PM -0700 wrote:
>> Hello, and thank you very much for your reply.
>> Yes. After looking closely at the variable, I discovered that also.
>> So I used the PREFIX=/usr/local/php5. But as I build it (via
>> php5-extensions)
>> I am not seeing the PREFIX variable reflected. Shouldn't I be using:
>> make -DPREFIX=/usr/local/php5? Or simply hack the Makefile?
> If you're trying to force the install of php5 by installing 
> php5-extensions, that's not going to work.  Php5 will be built with 
> the default ${LOCALBASE} instead.
> There are several ways to work around the problem.  You can build 
> php5 first, with the altered PREFIX, then build php5-extensions with 
> the altered PREFIX.  You can set the PREFIX for php5 and 
> php5-extensions in /usr/local/etc/pkgtools.conf (see the extensive 
> notes in the file or read man (5) pkgtools.conf).
> You can edit the Makefiles for the affected ports, but changing 
> PREFIX in a Makefile is tricky, so testing carefully is required.  
> Furthermore, the Makefiles will be overwritten every time the port is 
> updated, so it's really not the best way to do things.
> You can even edit /etc/make.conf, but that changes the parameters for 
> all ports.
> If you plan on doing this often, pkgtools.conf is your best bet.  If 
> you plan on doing it once, commandline is probably the easiest and 
> quickest.
> If you choose to use pkgtools.conf, you'd probably want something like this:
>  'lang/php5*' => 'PREFIX=/usr/local/php5',
>  }
Hello. Let me preface the following by first thanking you for your indulgence,
and taking the time to share your insight. :)
That said, as you already knew - php5 installed quite as intended. But the
extensions are "squealing like pigs" in my error log -
Unable to load dynamic library...
So I'm just going to uninstall the whole works, and start with PHP5, then
the extensions.
As per setting things up by editing the Makefile v using the /etc/make.conf;
I had considered saving the altered variables from the Makefile and using
USE_SUBMAKE, which would allow me to "suck" the changes into make. But then
wondered how I might continue using my usual conditionals in /etc/make.conf;
.if ${.CURDIR:M*/lang/php5}
But hadn't experimented much beyond that, except a couple of others...
X_WINDOW_SYSTEM=xorg, WITH_GECKO=seamonkey,CPUTYPE?=pentium(N), etc.
You mention that it'll change the parameters for all ports. But I was
thinking that if used in an if.. then conditional I might be able to
limit it's scope.
Well, you've (kindly) given me some more studying to do. As I'm
getting a bit weary of this whole thing. I'm going to end it here, and
get on with it.

Thank you again for all your time and consideration.


> Paul Schmehl, If it isn't already
> obvious, my opinions are my own
> and not those of my employer.
> ******************************************
> WARNING: Check the headers before replying

More information about the freebsd-stable mailing list