Changed implementation of dependency generator
This commit is contained in:
parent
57f2827832
commit
81e80b2cd8
2 changed files with 18 additions and 7 deletions
|
@ -32,6 +32,15 @@ struct idf {
|
||||||
|
|
||||||
/* ALLOCDEF "idf" 50 */
|
/* ALLOCDEF "idf" 50 */
|
||||||
|
|
||||||
|
#ifndef NOPP
|
||||||
|
struct dependency {
|
||||||
|
struct dependency *next;
|
||||||
|
struct idf *dep_idf;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ALLOCDEF "dependency" 10 */
|
||||||
|
#endif /* NOPP */
|
||||||
|
|
||||||
extern struct idf *str2idf(), *idf_hashed();
|
extern struct idf *str2idf(), *idf_hashed();
|
||||||
|
|
||||||
extern int level;
|
extern int level;
|
||||||
|
|
|
@ -138,13 +138,13 @@ main(argc, argv)
|
||||||
|
|
||||||
#ifndef NOPP
|
#ifndef NOPP
|
||||||
|
|
||||||
struct idf *file_head;
|
struct dependency *file_head;
|
||||||
extern char *strrindex();
|
extern char *strrindex();
|
||||||
|
|
||||||
list_dependencies(source)
|
list_dependencies(source)
|
||||||
char *source;
|
char *source;
|
||||||
{
|
{
|
||||||
register struct idf *p = file_head;
|
register struct dependency *p = file_head;
|
||||||
|
|
||||||
if (source) {
|
if (source) {
|
||||||
register char *s = strrindex(source, '.');
|
register char *s = strrindex(source, '.');
|
||||||
|
@ -167,9 +167,8 @@ char *source;
|
||||||
fatal("could not open %s", dep_file);
|
fatal("could not open %s", dep_file);
|
||||||
}
|
}
|
||||||
while (p) {
|
while (p) {
|
||||||
ASSERT(p->id_resmac == K_FILE);
|
dependency(p->dep_idf->id_text, source);
|
||||||
dependency(p->id_text, source);
|
p = p->next;
|
||||||
p = (struct idf *) (p->id_file);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,9 +178,12 @@ char *s;
|
||||||
register struct idf *p = str2idf(s);
|
register struct idf *p = str2idf(s);
|
||||||
|
|
||||||
if (! p->id_resmac) {
|
if (! p->id_resmac) {
|
||||||
|
register struct dependency *q = new_dependency();
|
||||||
|
|
||||||
p->id_resmac = K_FILE;
|
p->id_resmac = K_FILE;
|
||||||
p->id_file = (char *) file_head;
|
q->dep_idf = p;
|
||||||
file_head = p;
|
q->next = file_head;
|
||||||
|
file_head = q;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue