Make Question

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Jun 11 21:17:06 UTC 2009


On Thu, 11 Jun 2009 14:23:31 -0500, Peter Clark <clarkp at mtmary.edu> wrote:
> Hello,
> I have inherited an old FreeBSD 5.1 machine(5.1-RELEASE-p18). I realize
> that the short answer to my question is more than likely to upgrade the
> OS to a current release and I would if I had that option right now, but I
> do not. I needed to upgrade the perl/openssh/openssl implementation on
> this box. My first thought was to use the port on the machine that was
> from that era but make fails. So then I thought to csup the ports tree
> and try with a new version, that fails as well. The error is as follows:
>
> make config
> "/usr/ports/Mk/bsd.port.mk", line 1780: warning: String comparison
> operator should be either == or !=
> "/usr/ports/Mk/bsd.port.mk", line 1780: Malformed conditional
> ((${OSVERSION} >= 700007 || ${OSVERSION} < 700000))
> "/usr/ports/Mk/bsd.port.mk", line 1780: Missing dependency operator
> "/usr/ports/Mk/bsd.port.mk", line 6276: if-less endif
> "/usr/ports/Mk/bsd.port.mk", line 6276: Need an operator
> make: fatal errors encountered -- cannot continue

This is because bsd.port.mk now uses constructs that are not supported by
the `/usr/bin/make' binary of 5.X.

If you *really* have to stick with 5.1-RELEASE-p18, it may be worth trying
to compile a newer snapshot of `src/usr.bin/make' from 7-STABLE and install
it as say `/usr/bin/make-7.x'.  Then you can try building ports from a
more recent `/usr/ports' tree with *that* make binary:

    # cd /usr/ports/CATEGORY/APP
    # make-7.x config

Most of the `ports/' makefile glue should use ${MAKE} to invoke child
instances of the make utility, and with a custom `make-7.x' binary this
should default to the correct version of `/usr/bin/make-7.x'.

This is a bit of a "hack" though, so if it fails in other ways, you will
have to weigh the two options: (1) staying with 5.1 and trying to build
ports with a custom `make-7.x' binary, possibly investing a lot of time to
fix `ports/Mk/bsd.*.mk' problems as they come up, and (2) updating the base
system to a more recent FreeBSD release.



More information about the freebsd-questions mailing list