version 1.22, 2012/10/06 09:32:40 |
version 1.23, 2012/10/09 19:45:34 |
|
|
#include "symtable.h" |
#include "symtable.h" |
#endif |
#endif |
|
|
struct Suff_; |
|
/*- |
/*- |
* The structure for an individual graph node. Each node has several |
* The structure for an individual graph node. Each node has several |
* pieces of data associated with it. |
* pieces of data associated with it. |
|
|
#define ENDCYCLE 7 |
#define ENDCYCLE 7 |
#define NOSUCHNODE 8 |
#define NOSUCHNODE 8 |
#define BUILDING 9 |
#define BUILDING 9 |
|
#define HELDBACK 10 |
|
|
#define SPECIAL_NONE 0U |
#define SPECIAL_NONE 0U |
#define SPECIAL_PATH 21U |
#define SPECIAL_PATH 21U |
|
|
|
|
#define SPECIAL_EXEC 4U |
#define SPECIAL_EXEC 4U |
#define SPECIAL_IGNORE 5U |
#define SPECIAL_IGNORE 5U |
|
#define SPECIAL_NOTHING 6U |
#define SPECIAL_INVISIBLE 8U |
#define SPECIAL_INVISIBLE 8U |
#define SPECIAL_JOIN 9U |
#define SPECIAL_JOIN 9U |
#define SPECIAL_MADE 11U |
#define SPECIAL_MADE 11U |
|
|
#define SPECIAL_PHONY 22U |
#define SPECIAL_PHONY 22U |
#define SPECIAL_PRECIOUS 23U |
#define SPECIAL_PRECIOUS 23U |
#define SPECIAL_SILENT 25U |
#define SPECIAL_SILENT 25U |
#define SPECIAL_SINGLESHELL 26U |
|
#define SPECIAL_SUFFIXES 27U |
#define SPECIAL_SUFFIXES 27U |
#define SPECIAL_USE 28U |
#define SPECIAL_USE 28U |
#define SPECIAL_WAIT 29U |
#define SPECIAL_WAIT 29U |
|
|
#define SPECIAL_ERROR 31U |
#define SPECIAL_ERROR 31U |
#define SPECIAL_CHEAP 32U |
#define SPECIAL_CHEAP 32U |
#define SPECIAL_EXPENSIVE 33U |
#define SPECIAL_EXPENSIVE 33U |
#define SPECIAL_DEPRECATED 6U |
|
|
|
struct GNode_ { |
struct GNode_ { |
unsigned int special_op; /* special op to apply */ |
unsigned int special_op; /* special op to apply */ |
|
|
* printed. Go back and unmark all its |
* printed. Go back and unmark all its |
* members. |
* members. |
*/ |
*/ |
char build_lock; /* for parallel build in siblings */ |
|
char *path; /* The full pathname of the file */ |
char *path; /* The full pathname of the file */ |
unsigned int type; /* Its type (see the OP flags, below) */ |
unsigned int type; /* Its type (see the OP flags, below) */ |
int order; /* Its wait weight */ |
int order; /* Its wait weight */ |
|
|
|
|
SymTable context; /* The local variables */ |
SymTable context; /* The local variables */ |
LIST commands; /* Creation commands */ |
LIST commands; /* Creation commands */ |
struct Suff_ *suffix;/* Suffix for the node (determined by |
Suff *suffix; /* Suffix for the node (determined by |
* Suff_FindDeps and opaque to everyone |
* Suff_FindDeps and opaque to everyone |
* but the Suff module) */ |
* but the Suff module) */ |
struct GNode_ *sibling; /* equivalent targets */ |
GNode *sibling; /* equivalent targets */ |
|
GNode *groupling; /* target lists */ |
|
GNode *watched; /* the node currently building */ |
/* stuff for target name equivalence */ |
/* stuff for target name equivalence */ |
char *basename; /* pointer to name stripped of path */ |
char *basename; /* pointer to name stripped of path */ |
struct GNode_ *next; |
GNode *next; |
char name[1]; /* The target's name */ |
char name[1]; /* The target's name */ |
}; |
}; |
|
|
|
|
/* Attributes applied by PMake */ |
/* Attributes applied by PMake */ |
#define OP_TRANSFORM 0x00040000 /* The node is a transformation rule */ |
#define OP_TRANSFORM 0x00040000 /* The node is a transformation rule */ |
#define OP_MEMBER 0x00080000 /* Target is a member of an archive */ |
#define OP_MEMBER 0x00080000 /* Target is a member of an archive */ |
|
#define OP_DOUBLE 0x00100000 /* normal op with double commands */ |
#define OP_ARCHV 0x00200000 /* Target is an archive construct */ |
#define OP_ARCHV 0x00200000 /* Target is an archive construct */ |
#define OP_HAS_COMMANDS 0x00400000 /* Target has all the commands it should. |
#define OP_HAS_COMMANDS 0x00400000 /* Target has all the commands it should. |
* Used when parsing to catch multiple |
* Used when parsing to catch multiple |