debugging php4 ports make process

Jez Hancock jez.hancock at munk.nu
Sat Jun 14 04:03:16 PDT 2003


Hi,

Ok, the short question:

How can one debug the ports tree make process (or any make process for
that matter)?

Specifically what I want to be able to do is 'dump' to
STDOUT the values contained in macros within a Makefile - something like
this in a Makefile:

# New ports collection makefile for:    php4-cli
# Date created:             Tue Feb 18 11:17:13 CET 2003
# Whom:                 Alex Dupre <sysadmin at alexdupre.com>
<snip>
WITHOUT_APACHE= yes
# How do I dump the value contained in WITHOUT_APACHE here?
echo WITHOUT_APACHE

(which of course doesn't work!)

Obviously in this example the value contained in WITHOUT_APACHE is
obvious, but in other Makefile's where there are more than 2 or 3 nested
.if .else .endif clauses, it can be hard determining which macros
contain what values.  What is the best way of debugging make targets?

Ok, now the long question!:

I'm having a problem with the new php4 make process in as much as I want
to install mod_php4 using one set of options / --with-* args and
php4-cli with another set of options.

I've created two distinct OPTION_FILE's as recommended in
/usr/ports/lang/php4/Makefile:

# The last way reads an "extension" file, located in ~/php_options (the
# location is overridable by the OPTION_FILE variable). You may find an
# example in scripts/php_options (interactive mode only).

and named them 'php_options.cli' and 'php_options.mod_php4', each file
containing the options for cli and mod_php4 respectively.

I then proceed to set an env variable using:

setenv OPTION_FILE php_options.mod_php4

and then:

(after removing old mod_php4 port)
cd /usr/ports/www/mod_php4
make clean install
(check all the options are correct, they are)

All well and good, mod_php4 is installed as expected.

However I then go on to:

setenv OPTION_FILE php_options.cli

and then:

cd /usr/ports/lang/php4-cli
make clean 
make
(check all the options are correct, they are)

and I receive this error on the install target:

make install
===>  Installing for php4-cli-4.3.2
===>  php4-cli-4.3.2 conflicts with installed package(s):
      mod_php4-4.3.2,1

      They install files into the same place.
      Please remove them first with pkg_delete(1).
*** Error code 1

Stop in /usr/ports/lang/php4-cli.
*** Error code 1

Stop in /usr/ports/lang/php4-cli.

Can anyone confirm whether they have installed both the cli and mod_php4 versions of php4 from the FreeBSD ports, and if so how they achieved it?

Many thanks in advance,
Jez 


More information about the freebsd-questions mailing list