Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jun 2009 00:17:02 +0300
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        Peter Clark <clarkp@mtmary.edu>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Make Question
Message-ID:  <87fxe6sc6p.fsf@kobe.laptop>
In-Reply-To: <4A3159B3.5090009@mtmary.edu> (Peter Clark's message of "Thu, 11 Jun 2009 14:23:31 -0500")
References:  <4A3159B3.5090009@mtmary.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 11 Jun 2009 14:23:31 -0500, Peter Clark <clarkp@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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87fxe6sc6p.fsf>