/* Returns the remotename used in rule n for local name filename */ char *dag_file_remote_name(struct dag_node *n, const char *filename) { struct dag_file *f; char *name; f = dag_file_from_name(n->d, filename); name = (char *) itable_lookup(n->remote_names, (uintptr_t) f); return name; }
/* Returns the remotename used in wrapper for local name filename */ const char *makeflow_wrapper_get_remote_name(struct makeflow_wrapper *w, struct dag *d, const char *filename) { struct dag_file *f; char *name; f = dag_file_from_name(d, filename); name = (char *) itable_lookup(w->remote_names, (uintptr_t) f); return name; }
/* Adds remotename to the local name filename in the namespace of * the given node. If remotename is NULL, then a new name is * found using dag_node_translate_filename. If the remotename * given is different from a previosly specified, a warning is * written to the debug output, but otherwise this is ignored. */ const char *dag_node_add_remote_name(struct dag_node *n, const char *filename, const char *remotename) { char *oldname; struct dag_file *f = dag_file_from_name(n->d, filename); if(!f) fatal("trying to add remote name %s to unknown file %s.\n", remotename, filename); if(!remotename) remotename = dag_node_translate_filename(n, filename); else remotename = xxstrdup(remotename); oldname = hash_table_lookup(n->remote_names_inv, remotename); if(oldname && strcmp(oldname, filename) == 0) debug(D_DEBUG, "Remote name %s for %s already in use for %s\n", remotename, filename, oldname); itable_insert(n->remote_names, (uintptr_t) f, remotename); hash_table_insert(n->remote_names_inv, remotename, (void *) f); return remotename; }