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:
parent
7c223d7d10
commit
07290e58ff
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user