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>