Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 2002 20:43:56 +0100 (BST)
From:      Mark Valentine <mark@thuvia.demon.co.uk>
To:        ru@freebsd.org (Ruslan Ermilov), arch@freebsd.org
Subject:   Re: [POLL] need a good name for share/mk API versioning
Message-ID:  <200207181943.g6IJhu5A016231@dotar.thuvia.org>
In-Reply-To: <mailpost.1027015694.14024@thuvia.demon.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
> From: ru@freebsd.org (Ruslan Ermilov)
> Date: Thu 18 Jul, 2002
> Subject: [POLL] need a good name for share/mk API versioning

> Recently, some backwards incompatible changes were purposedly
> introduced to the share/mk API, particularly to bsd.lib.mk and
> bsd.incs.mk (include files).  Everything is OK with src/, but
> some ports/ that rely on FreeBSD's share/mk API should be able
> to use both old (currently in -STABLE, soon to be upgraded to
> the new API) and new versions of the API, so we need to somehow
> differentiate these APIs.  The solution is to add the FreeBSD
> specific make(1) variable that could be used to differentiate
> different API versions.

If this were only for ports, the existing OSVERSION in bsd.port.mk
would suffice, no?

> So I would like to run a short pool as to what the name of this
> variable should be (the draft is _FREEBSD_MK_API_VERSION), and
> what should be its numbering scheme.  I would like this numbering
> scheme to be a monotonically increasing natural number.  This
> would be good because the same numbering scheme would be used in
> both -STABLE and -CURRENT, and would be bad because specific
> backwards incompatible API changes should be merged in the same
> order as they were applied to -CURRENT.

It sounds like you do want to have a version number visible beyond ports,
which is quite reasonable (third party software may choose to use the
"standard" bsd.*.mk rules, without using the ports infrastructure).

> The variable must be put into sys.mk (so that it's always
> defined), and one option it to use an already existing
> FreeBSD variable.

sys.mk is the wrong place for things specific to bsd.*.mk (all of the
includes at the end of sys.mk are bugs).  sys.mk is for make(1) defaults;
bsd.*.mk comprises the FreeBSD build system built _on top of_ make(1), which
(should) know nothing about bsd.*.mk - currently make(1) pollutes all other
build systems with stuff from make.conf and other FreeBSD build system
makefiles.

bsd.sys.mk is a better place; _FREEBSD_MK_VERSION is a better name; I don't
see any need for anything more complex than values of "1", "2", "3"...

		Cheers,

		Mark.

-- 
Mark Valentine, Thuvia Labs <mark@thuvia.co.uk>       <http://www.thuvia.co.uk>;
"Tigers will do ANYTHING for a tuna fish sandwich."       Mark Valentine uses
"We're kind of stupid that way."   *munch* *munch*        and endorses FreeBSD
  -- <http://www.calvinandhobbes.com>;                  <http://www.freebsd.org>;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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