version 1.130, 2020/01/13 14:51:50 |
version 1.131, 2020/01/26 12:37:47 |
|
|
unsigned int special; |
unsigned int special; |
unsigned int special_op; |
unsigned int special_op; |
} specials[] = { |
} specials[] = { |
{ P(NODE_EXEC), SPECIAL_EXEC, OP_EXEC }, |
{ P(NODE_EXEC), SPECIAL_DEPRECATED, OP_EXEC }, |
{ P(NODE_IGNORE), SPECIAL_IGNORE, OP_IGNORE }, |
{ P(NODE_IGNORE), SPECIAL_IGNORE, OP_IGNORE }, |
{ P(NODE_INCLUDES), SPECIAL_NOTHING, 0 }, |
{ P(NODE_INCLUDES), SPECIAL_DEPRECATED, 0 }, |
{ P(NODE_INVISIBLE), SPECIAL_INVISIBLE, OP_INVISIBLE }, |
{ P(NODE_INVISIBLE), SPECIAL_DEPRECATED, OP_INVISIBLE }, |
{ P(NODE_JOIN), SPECIAL_JOIN, OP_JOIN }, |
{ P(NODE_JOIN), SPECIAL_DEPRECATED, OP_JOIN }, |
{ P(NODE_LIBS), SPECIAL_NOTHING, 0 }, |
{ P(NODE_LIBS), SPECIAL_DEPRECATED, 0 }, |
{ P(NODE_MADE), SPECIAL_MADE, OP_MADE }, |
{ P(NODE_MADE), SPECIAL_DEPRECATED, OP_MADE }, |
{ P(NODE_MAIN), SPECIAL_MAIN, 0 }, |
{ P(NODE_MAIN), SPECIAL_MAIN, 0 }, |
{ P(NODE_MAKE), SPECIAL_MAKE, OP_MAKE }, |
{ P(NODE_MAKE), SPECIAL_MAKE, OP_MAKE }, |
{ P(NODE_MAKEFLAGS), SPECIAL_MFLAGS, 0 }, |
{ P(NODE_MAKEFLAGS), SPECIAL_MFLAGS, 0 }, |
|
|
{ P(NODE_NOTMAIN), SPECIAL_NOTMAIN, OP_NOTMAIN }, |
{ P(NODE_NOTMAIN), SPECIAL_NOTMAIN, OP_NOTMAIN }, |
{ P(NODE_NOTPARALLEL), SPECIAL_NOTPARALLEL, 0 }, |
{ P(NODE_NOTPARALLEL), SPECIAL_NOTPARALLEL, 0 }, |
{ P(NODE_NO_PARALLEL), SPECIAL_NOTPARALLEL, 0 }, |
{ P(NODE_NO_PARALLEL), SPECIAL_NOTPARALLEL, 0 }, |
{ P(NODE_NULL), SPECIAL_NOTHING, 0 }, |
{ P(NODE_NULL), SPECIAL_DEPRECATED, 0 }, |
{ P(NODE_OPTIONAL), SPECIAL_OPTIONAL, OP_OPTIONAL }, |
{ P(NODE_OPTIONAL), SPECIAL_OPTIONAL, OP_OPTIONAL }, |
{ P(NODE_ORDER), SPECIAL_ORDER, 0 }, |
{ P(NODE_ORDER), SPECIAL_ORDER, 0 }, |
{ P(NODE_PARALLEL), SPECIAL_PARALLEL, 0 }, |
{ P(NODE_PARALLEL), SPECIAL_PARALLEL, 0 }, |
|
|
const char *esrc) |
const char *esrc) |
{ |
{ |
GNode *gn = Targ_FindNodei(src, esrc, TARG_CREATE); |
GNode *gn = Targ_FindNodei(src, esrc, TARG_CREATE); |
|
if (gn->special == SPECIAL_DEPRECATED) { |
|
Parse_Error(PARSE_FATAL, "Deprecated keyword found %s\n", |
|
gn->name); |
|
return; |
|
} |
if (gn->special_op) { |
if (gn->special_op) { |
Array_ForEach(targets, ParseDoSpecial, gn->special_op); |
Array_ForEach(targets, ParseDoSpecial, gn->special_op); |
return; |
return; |
|
|
|
|
for (i = 0; i < gtargets.n; i++) { |
for (i = 0; i < gtargets.n; i++) { |
type = gtargets.a[i]->special; |
type = gtargets.a[i]->special; |
|
if (type == SPECIAL_DEPRECATED) { |
|
Parse_Error(PARSE_FATAL, |
|
"Deprecated keyword found %s\n", |
|
gtargets.a[i]->name); |
|
specType = SPECIAL_ERROR; |
|
return 0; |
|
} |
if (type == SPECIAL_PATH) { |
if (type == SPECIAL_PATH) { |
seen_path++; |
seen_path++; |
Lst_AtEnd(paths, find_suffix_path(gtargets.a[i])); |
Lst_AtEnd(paths, find_suffix_path(gtargets.a[i])); |