]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
bsd.compat.mk: Provide new CPP and sub-make variables
authorJessica Clarke <jrtc27@FreeBSD.org>
Sun, 9 Jul 2023 17:47:42 +0000 (18:47 +0100)
committerJessica Clarke <jrtc27@FreeBSD.org>
Sun, 9 Jul 2023 17:47:42 +0000 (18:47 +0100)
commit8fad2cda93c7930b01f25a2160e5c433085f13e3
tree6176d1cd1ad72723641a12fc8059d91765634be7
parent537f945fc89fab53f60fee07ac42c8aeab704ce7
bsd.compat.mk: Provide new CPP and sub-make variables

Currently the only way to detect for a libcompat build is to consult
whether COMPAT_32BIT is defined (or equivalent, for downstreams with
other libcompats or past releases with libsoft as COMPAT_SOFTFP). There
are two issues with this:

1. COMPAT_32BIT is a new naming scheme that doesn't match the libcompat
   name, which is unnecessary deviation.
2. When multiple libcompats exist, everywhere that needs to detect a
   libcompat must check each variable in turn, despite the fact that it
   normally just wants to know if this is a libcompat build and perhaps
   what ${LIBCOMPAT} and/or ${libcompat} are for it.

As a result, far too many places in the tree need to know about the set
of possible libcompats.

Instead, introduce two new CPP and sub-make variables, COMPAT_LIBCOMPAT
and COMPAT_libcompat, which give the values for ${LIBCOMPAT} and
${libcompat} respectively, so that uses can be made parameterised. For
when code really does need to know the specific libcompat, Makefiles can
perform a string comparison, but the C preprocessor cannot, so introduce
an additional CPP-only COMPAT_LIB${LIBCOMPAT} which is intended to
replace the inconsistently-named COMPAT_32BIT (which will be removed in
future). Uses of this new variable should still be kept to a minimum,
however, given the code duplication needed for new libcompats.

Reviewed by: emaste, brooks, jhb
Differential Revision: https://reviews.freebsd.org/D40922
share/mk/bsd.compat.mk