New dependencies

This commit is contained in:
Simon J. Gerraty 2014-05-17 03:03:17 +00:00
parent dc8c6c5c08
commit c9e3031a0b
21 changed files with 406 additions and 8 deletions

View File

@ -183,6 +183,8 @@ void Lst_Close(Lst);
*/
/* Place an element at tail of queue */
ReturnStatus Lst_EnQueue(Lst, void *);
/* Same but only if not on list */
ReturnStatus Lst_EnQueueOnce(Lst, void *);
/* Remove an element from head of queue */
void *Lst_DeQueue(Lst);

View File

@ -76,3 +76,14 @@ Lst_EnQueue(Lst l, void *d)
return (Lst_InsertAfter(l, Lst_Last(l), d));
}
ReturnStatus
Lst_EnQueueOnce(Lst l, void *d)
{
if (LstValid (l) == FALSE) {
return (FAILURE);
}
if (Lst_Member(l, d))
return (SUCCESS);
return (Lst_InsertAfter(l, Lst_Last(l), d));
}

View File

@ -378,7 +378,7 @@ MakeAddChild(void *gnp, void *lp)
if (DEBUG(MAKE))
fprintf(debug_file, "MakeAddChild: need to examine %s%s\n",
gn->name, gn->cohort_num);
(void)Lst_EnQueue(l, gn);
(void)Lst_EnQueueOnce(l, gn);
}
return (0);
}

View File

@ -289,6 +289,7 @@ typedef struct GNode {
#define OP_NOMETA 0x00080000 /* .NOMETA do not create a .meta file */
#define OP_META 0x00100000 /* .META we _do_ want a .meta file */
#define OP_NOMETA_CMP 0x00200000 /* Do not compare commands in .meta file */
#define OP_LSTAT 0x00400000 /* Use lstat rather that stat */
/* Attributes applied by PMake */
#define OP_TRANSFORM 0x80000000 /* The node is a transformation rule */
#define OP_MEMBER 0x40000000 /* Target is a member of an archive */

View File

@ -867,6 +867,15 @@ string_match(const void *p, const void *q)
*ep = '\0'; \
}
static int
gn_stat(GNode *gn, const char *path, struct stat *sb)
{
if (gn->type & OP_LSTAT) {
return lstat(path, sb);
}
return stat(path, sb);
}
Boolean
meta_oodate(GNode *gn, Boolean oodate)
{
@ -1220,7 +1229,7 @@ meta_oodate(GNode *gn, Boolean oodate)
if (DEBUG(META))
fprintf(debug_file, "%s: %d: looking for: %s\n", fname, lineno, *sdp);
#endif
if (stat(*sdp, &fs) == 0) {
if (gn_stat(gn, *sdp, &fs) == 0) {
found = 1;
p = *sdp;
}

View File

@ -190,6 +190,7 @@ typedef enum {
Includes, /* .INCLUDES */
Interrupt, /* .INTERRUPT */
Libs, /* .LIBS */
Lstat, /* .LSTAT */
Meta, /* .META */
MFlags, /* .MFLAGS or .MAKEFLAGS */
Main, /* .MAIN and we don't have anything user-specified to
@ -310,6 +311,7 @@ static const struct {
{ ".INVISIBLE", Attribute, OP_INVISIBLE },
{ ".JOIN", Attribute, OP_JOIN },
{ ".LIBS", Libs, 0 },
{ ".LSTAT", Lstat, OP_LSTAT },
{ ".MADE", Attribute, OP_MADE },
{ ".MAIN", Main, 0 },
{ ".MAKE", Attribute, OP_MAKE },

View File

@ -3705,6 +3705,7 @@ Var_Parse(const char *str, GNode *ctxt, Boolean errnum, int *lengthPtr,
}
} else {
Buffer buf; /* Holds the variable name */
int depth = 1;
endc = startc == PROPEN ? PRCLOSE : BRCLOSE;
Buf_Init(&buf, 0);
@ -3712,10 +3713,21 @@ Var_Parse(const char *str, GNode *ctxt, Boolean errnum, int *lengthPtr,
/*
* Skip to the end character or a colon, whichever comes first.
*/
for (tstr = str + 2;
*tstr != '\0' && *tstr != endc && *tstr != ':';
tstr++)
for (tstr = str + 2; *tstr != '\0'; tstr++)
{
/*
* Track depth so we can spot parse errors.
*/
if (*tstr == startc) {
depth++;
}
if (*tstr == endc) {
if (--depth == 0)
break;
}
if (depth == 1 && *tstr == ':') {
break;
}
/*
* A variable inside a variable, expand
*/
@ -3735,7 +3747,7 @@ Var_Parse(const char *str, GNode *ctxt, Boolean errnum, int *lengthPtr,
}
if (*tstr == ':') {
haveModifier = TRUE;
} else if (*tstr != '\0') {
} else if (*tstr == endc) {
haveModifier = FALSE;
} else {
/*
@ -4085,7 +4097,7 @@ Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
*/
if (oldVars) {
str += length;
} else if (undefErr) {
} else if (undefErr || val == var_Error) {
/*
* If variable is undefined, complain and skip the
* variable. The complaint will stop us from doing anything

View File

@ -0,0 +1,18 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/clang/include \
lib/libc++ \
lib/msun \
tools/usr/bin.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -0,0 +1,25 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
PPCAsmParser.o: PPCGenAsmMatcher.inc.h
PPCAsmParser.o: PPCGenInstrInfo.inc.h
PPCAsmParser.o: PPCGenRegisterInfo.inc.h
PPCAsmParser.o: PPCGenSubtargetInfo.inc.h
PPCAsmParser.po: PPCGenAsmMatcher.inc.h
PPCAsmParser.po: PPCGenInstrInfo.inc.h
PPCAsmParser.po: PPCGenRegisterInfo.inc.h
PPCAsmParser.po: PPCGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,25 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
SparcAsmParser.o: SparcGenAsmMatcher.inc.h
SparcAsmParser.o: SparcGenInstrInfo.inc.h
SparcAsmParser.o: SparcGenRegisterInfo.inc.h
SparcAsmParser.o: SparcGenSubtargetInfo.inc.h
SparcAsmParser.po: SparcGenAsmMatcher.inc.h
SparcAsmParser.po: SparcGenInstrInfo.inc.h
SparcAsmParser.po: SparcGenRegisterInfo.inc.h
SparcAsmParser.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,104 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
tools/usr/bin.host \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
DelaySlotFiller.o: SparcGenInstrInfo.inc.h
DelaySlotFiller.o: SparcGenRegisterInfo.inc.h
DelaySlotFiller.o: SparcGenSubtargetInfo.inc.h
DelaySlotFiller.po: SparcGenInstrInfo.inc.h
DelaySlotFiller.po: SparcGenRegisterInfo.inc.h
DelaySlotFiller.po: SparcGenSubtargetInfo.inc.h
SparcAsmPrinter.o: SparcGenInstrInfo.inc.h
SparcAsmPrinter.o: SparcGenRegisterInfo.inc.h
SparcAsmPrinter.o: SparcGenSubtargetInfo.inc.h
SparcAsmPrinter.po: SparcGenInstrInfo.inc.h
SparcAsmPrinter.po: SparcGenRegisterInfo.inc.h
SparcAsmPrinter.po: SparcGenSubtargetInfo.inc.h
SparcCodeEmitter.o: SparcGenCodeEmitter.inc.h
SparcCodeEmitter.o: SparcGenInstrInfo.inc.h
SparcCodeEmitter.o: SparcGenRegisterInfo.inc.h
SparcCodeEmitter.o: SparcGenSubtargetInfo.inc.h
SparcCodeEmitter.po: SparcGenCodeEmitter.inc.h
SparcCodeEmitter.po: SparcGenInstrInfo.inc.h
SparcCodeEmitter.po: SparcGenRegisterInfo.inc.h
SparcCodeEmitter.po: SparcGenSubtargetInfo.inc.h
SparcFrameLowering.o: SparcGenInstrInfo.inc.h
SparcFrameLowering.o: SparcGenRegisterInfo.inc.h
SparcFrameLowering.o: SparcGenSubtargetInfo.inc.h
SparcFrameLowering.po: SparcGenInstrInfo.inc.h
SparcFrameLowering.po: SparcGenRegisterInfo.inc.h
SparcFrameLowering.po: SparcGenSubtargetInfo.inc.h
SparcISelDAGToDAG.o: Intrinsics.inc.h
SparcISelDAGToDAG.o: SparcGenDAGISel.inc.h
SparcISelDAGToDAG.o: SparcGenInstrInfo.inc.h
SparcISelDAGToDAG.o: SparcGenRegisterInfo.inc.h
SparcISelDAGToDAG.o: SparcGenSubtargetInfo.inc.h
SparcISelDAGToDAG.po: Intrinsics.inc.h
SparcISelDAGToDAG.po: SparcGenDAGISel.inc.h
SparcISelDAGToDAG.po: SparcGenInstrInfo.inc.h
SparcISelDAGToDAG.po: SparcGenRegisterInfo.inc.h
SparcISelDAGToDAG.po: SparcGenSubtargetInfo.inc.h
SparcISelLowering.o: SparcGenCallingConv.inc.h
SparcISelLowering.o: SparcGenInstrInfo.inc.h
SparcISelLowering.o: SparcGenRegisterInfo.inc.h
SparcISelLowering.o: SparcGenSubtargetInfo.inc.h
SparcISelLowering.po: SparcGenCallingConv.inc.h
SparcISelLowering.po: SparcGenInstrInfo.inc.h
SparcISelLowering.po: SparcGenRegisterInfo.inc.h
SparcISelLowering.po: SparcGenSubtargetInfo.inc.h
SparcInstrInfo.o: SparcGenInstrInfo.inc.h
SparcInstrInfo.o: SparcGenRegisterInfo.inc.h
SparcInstrInfo.o: SparcGenSubtargetInfo.inc.h
SparcInstrInfo.po: SparcGenInstrInfo.inc.h
SparcInstrInfo.po: SparcGenRegisterInfo.inc.h
SparcInstrInfo.po: SparcGenSubtargetInfo.inc.h
SparcJITInfo.o: SparcGenInstrInfo.inc.h
SparcJITInfo.o: SparcGenRegisterInfo.inc.h
SparcJITInfo.o: SparcGenSubtargetInfo.inc.h
SparcJITInfo.po: SparcGenInstrInfo.inc.h
SparcJITInfo.po: SparcGenRegisterInfo.inc.h
SparcJITInfo.po: SparcGenSubtargetInfo.inc.h
SparcMCInstLower.o: SparcGenInstrInfo.inc.h
SparcMCInstLower.o: SparcGenRegisterInfo.inc.h
SparcMCInstLower.o: SparcGenSubtargetInfo.inc.h
SparcMCInstLower.po: SparcGenInstrInfo.inc.h
SparcMCInstLower.po: SparcGenRegisterInfo.inc.h
SparcMCInstLower.po: SparcGenSubtargetInfo.inc.h
SparcRegisterInfo.o: SparcGenInstrInfo.inc.h
SparcRegisterInfo.o: SparcGenRegisterInfo.inc.h
SparcRegisterInfo.o: SparcGenSubtargetInfo.inc.h
SparcRegisterInfo.po: SparcGenInstrInfo.inc.h
SparcRegisterInfo.po: SparcGenRegisterInfo.inc.h
SparcRegisterInfo.po: SparcGenSubtargetInfo.inc.h
SparcSelectionDAGInfo.o: SparcGenInstrInfo.inc.h
SparcSelectionDAGInfo.o: SparcGenRegisterInfo.inc.h
SparcSelectionDAGInfo.o: SparcGenSubtargetInfo.inc.h
SparcSelectionDAGInfo.po: SparcGenInstrInfo.inc.h
SparcSelectionDAGInfo.po: SparcGenRegisterInfo.inc.h
SparcSelectionDAGInfo.po: SparcGenSubtargetInfo.inc.h
SparcSubtarget.o: SparcGenInstrInfo.inc.h
SparcSubtarget.o: SparcGenRegisterInfo.inc.h
SparcSubtarget.o: SparcGenSubtargetInfo.inc.h
SparcSubtarget.po: SparcGenInstrInfo.inc.h
SparcSubtarget.po: SparcGenRegisterInfo.inc.h
SparcSubtarget.po: SparcGenSubtargetInfo.inc.h
SparcTargetMachine.o: SparcGenInstrInfo.inc.h
SparcTargetMachine.o: SparcGenRegisterInfo.inc.h
SparcTargetMachine.o: SparcGenSubtargetInfo.inc.h
SparcTargetMachine.po: SparcGenInstrInfo.inc.h
SparcTargetMachine.po: SparcGenRegisterInfo.inc.h
SparcTargetMachine.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,44 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
tools/usr/bin.host \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
SparcAsmBackend.o: SparcGenInstrInfo.inc.h
SparcAsmBackend.o: SparcGenRegisterInfo.inc.h
SparcAsmBackend.o: SparcGenSubtargetInfo.inc.h
SparcAsmBackend.po: SparcGenInstrInfo.inc.h
SparcAsmBackend.po: SparcGenRegisterInfo.inc.h
SparcAsmBackend.po: SparcGenSubtargetInfo.inc.h
SparcELFObjectWriter.o: SparcGenInstrInfo.inc.h
SparcELFObjectWriter.o: SparcGenRegisterInfo.inc.h
SparcELFObjectWriter.o: SparcGenSubtargetInfo.inc.h
SparcELFObjectWriter.po: SparcGenInstrInfo.inc.h
SparcELFObjectWriter.po: SparcGenRegisterInfo.inc.h
SparcELFObjectWriter.po: SparcGenSubtargetInfo.inc.h
SparcMCCodeEmitter.o: SparcGenInstrInfo.inc.h
SparcMCCodeEmitter.o: SparcGenMCCodeEmitter.inc.h
SparcMCCodeEmitter.o: SparcGenRegisterInfo.inc.h
SparcMCCodeEmitter.o: SparcGenSubtargetInfo.inc.h
SparcMCCodeEmitter.po: SparcGenInstrInfo.inc.h
SparcMCCodeEmitter.po: SparcGenMCCodeEmitter.inc.h
SparcMCCodeEmitter.po: SparcGenRegisterInfo.inc.h
SparcMCCodeEmitter.po: SparcGenSubtargetInfo.inc.h
SparcMCTargetDesc.o: SparcGenInstrInfo.inc.h
SparcMCTargetDesc.o: SparcGenRegisterInfo.inc.h
SparcMCTargetDesc.o: SparcGenSubtargetInfo.inc.h
SparcMCTargetDesc.po: SparcGenInstrInfo.inc.h
SparcMCTargetDesc.po: SparcGenRegisterInfo.inc.h
SparcMCTargetDesc.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,25 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
SparcDisassembler.o: SparcGenDisassemblerTables.inc.h
SparcDisassembler.o: SparcGenInstrInfo.inc.h
SparcDisassembler.o: SparcGenRegisterInfo.inc.h
SparcDisassembler.o: SparcGenSubtargetInfo.inc.h
SparcDisassembler.po: SparcGenDisassemblerTables.inc.h
SparcDisassembler.po: SparcGenInstrInfo.inc.h
SparcDisassembler.po: SparcGenRegisterInfo.inc.h
SparcDisassembler.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,23 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
SparcTargetInfo.o: SparcGenInstrInfo.inc.h
SparcTargetInfo.o: SparcGenRegisterInfo.inc.h
SparcTargetInfo.o: SparcGenSubtargetInfo.inc.h
SparcTargetInfo.po: SparcGenInstrInfo.inc.h
SparcTargetInfo.po: SparcGenRegisterInfo.inc.h
SparcTargetInfo.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,25 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
include \
include/xlocale \
lib/libc++ \
lib/msun \
usr.bin/clang/tblgen.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
SparcInstPrinter.o: SparcGenAsmWriter.inc.h
SparcInstPrinter.o: SparcGenInstrInfo.inc.h
SparcInstPrinter.o: SparcGenRegisterInfo.inc.h
SparcInstPrinter.o: SparcGenSubtargetInfo.inc.h
SparcInstPrinter.po: SparcGenAsmWriter.inc.h
SparcInstPrinter.po: SparcGenInstrInfo.inc.h
SparcInstPrinter.po: SparcGenRegisterInfo.inc.h
SparcInstPrinter.po: SparcGenSubtargetInfo.inc.h
.endif

View File

@ -0,0 +1,21 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
gnu/lib/csu \
gnu/lib/libgcc \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
lib/msun \
usr.bin/xinstall.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -0,0 +1,12 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -0,0 +1,12 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -0,0 +1,12 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -14,4 +14,4 @@ NO_SHARED?= YES
.endif
WARNS=3
CFLAGS+= -DNO_PWD_OVERRIDE
CFLAGS+= -DNO_PWD_OVERRIDE ${DBG}

View File

@ -0,0 +1,15 @@
# Autogenerated - do NOT edit!
DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
DIRDEPS = \
tools/c/sjg/work/FreeBSD/projects-bmake/src/lib/libnetbsd.host \
tools/legacy/usr/include.host \
tools/legacy/usr/lib.host \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif