Local hack to allow smooth transition for ports.

bsd.port.mk can set .MAKE.FreeBSD_UL=yes
to cause :L and :U to have their old behavior.
This should be reverted when 8.3 is EOL.

PR:		173299
Reviewed by:	obrien
This commit is contained in:
Simon J. Gerraty 2013-05-01 23:58:39 +00:00
parent 7c223d7d10
commit 07290e58ff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=250164

View File

@ -139,6 +139,17 @@ __RCSID("$NetBSD: var.c,v 1.173 2013/02/24 19:43:37 christos Exp $");
#include "dir.h"
#include "job.h"
/*
* XXX transition hack for FreeBSD ports.
* bsd.port.mk can set .MAKE.FreeBSD_UL=yes
* to cause us to treat :[LU] as aliases for :t[lu]
* To be reverted when ports converts to :t[lu] (when 8.3 is EOL)
*/
#define MAKE_FREEBSD_UL ".MAKE.FreeBSD_UL"
#ifdef MAKE_FREEBSD_UL
static int FreeBSD_UL = FALSE;
#endif
/*
* This lets us tell if we have replaced the original environ
* (which we cannot free).
@ -965,6 +976,11 @@ Var_Set(const char *name, const char *val, GNode *ctxt, int flags)
setenv(MAKE_LEVEL_SAFE, tmp, 1);
#endif
}
#ifdef MAKE_FREEBSD_UL
if (strcmp(MAKE_FREEBSD_UL, name) == 0) {
FreeBSD_UL = getBoolean(MAKE_FREEBSD_UL, FALSE);
}
#endif
out:
@ -2660,8 +2676,24 @@ ApplyModifiers(char *nstr, const char *tstr,
free(loop.str);
break;
}
case 'D':
case 'U':
#ifdef MAKE_FREEBSD_UL
if (FreeBSD_UL) {
int nc = tstr[1];
/* we have to be careful, since :U is used internally */
if (nc == ':' || nc == endc) {
char *dp = bmake_strdup(nstr);
for (newStr = dp; *dp; dp++)
*dp = toupper((unsigned char)*dp);
cp = tstr + 1;
termc = *cp;
break; /* yes inside the conditional */
}
/* FALLTHROUGH */
}
#endif
case 'D':
{
Buffer buf; /* Buffer for patterns */
int wantit; /* want data in buffer */
@ -2721,6 +2753,17 @@ ApplyModifiers(char *nstr, const char *tstr,
break;
}
case 'L':
#ifdef MAKE_FREEBSD_UL
if (FreeBSD_UL) {
char *dp = bmake_strdup(nstr);
for (newStr = dp; *dp; dp++)
*dp = tolower((unsigned char)*dp);
cp = tstr + 1;
termc = *cp;
break;
}
/* FALLTHROUGH */
#endif
{
if ((v->flags & VAR_JUNK) != 0)
v->flags |= VAR_KEEP;