version 1.77, 2007/11/24 15:41:01 |
version 1.78, 2010/04/25 13:59:53 |
|
|
static struct ohash suffixes; |
static struct ohash suffixes; |
|
|
/* We remember the longest suffix, so we don't need to look beyond that. */ |
/* We remember the longest suffix, so we don't need to look beyond that. */ |
size_t maxLen; |
size_t maxLen; |
static LIST srclist; |
static LIST srclist; |
|
|
/* Transforms (.c.o) are stored in another hash, independently from suffixes. |
/* Transforms (.c.o) are stored in another hash, independently from suffixes. |
|
|
#define SUFF_PATH 0x10 /* False suffix: actually, the path keyword */ |
#define SUFF_PATH 0x10 /* False suffix: actually, the path keyword */ |
LIST searchPath; /* The path along which files of this suffix |
LIST searchPath; /* The path along which files of this suffix |
* may be found */ |
* may be found */ |
int order; /* order of declaration for conflict |
int order; /* order of declaration for conflict |
* resolution. */ |
* resolution. */ |
LIST parents; /* List of Suff we have a transformation to */ |
LIST parents; /* List of Suff we have a transformation to */ |
LIST children; /* List of Suff we have a transformation from */ |
LIST children; /* List of Suff we have a transformation from */ |
|
|
} Suff; |
} Suff; |
|
|
static struct ohash_info suff_info = { |
static struct ohash_info suff_info = { |
offsetof(struct Suff_, name), NULL, |
offsetof(struct Suff_, name), NULL, |
hash_alloc, hash_free, element_alloc |
hash_alloc, hash_free, element_alloc |
}; |
}; |
|
|
|
|
if ((sGn->type & OP_OPMASK) == OP_DOUBLEDEP) { |
if ((sGn->type & OP_OPMASK) == OP_DOUBLEDEP) { |
/* When a :: node is used as the implied source of a node, we |
/* When a :: node is used as the implied source of a node, we |
* have to link all its cohorts in as sources as well. There's |
* have to link all its cohorts in as sources as well. There's |
* only one implied src, as that will be sufficient to get |
* only one implied src, as that will be sufficient to get |
* the .IMPSRC variable set for tGn. */ |
* the .IMPSRC variable set for tGn. */ |
for (ln=Lst_First(&sGn->cohorts); ln != NULL; ln=Lst_Adv(ln)) { |
for (ln=Lst_First(&sGn->cohorts); ln != NULL; ln=Lst_Adv(ln)) { |
gn = (GNode *)Lst_Datum(ln); |
gn = (GNode *)Lst_Datum(ln); |