level int,
deps map[string]map[string]*Tgt,
includeSrc bool,
- seen map[string]struct{},
) []*Tgt {
- if _, ok := seen[tgt.a]; ok {
+ if _, ok := DepCache[tgt.rel]; ok {
return nil
}
dep, err := depRead(tgt)
if err != nil {
return nil
}
- DepInfoCache[tgt.Dep()] = depInfo
- seen[tgt.a] = struct{}{}
+ DepCache[tgt.rel] = dep
var alwayses []*Tgt
returnReady := false
if dep.always {
deps[ifchange.tgt.rel] = map[string]*Tgt{tgt.rel: tgt}
}
alwayses = append(alwayses,
- collectDeps(dep.tgt, level+1, deps, includeSrc, seen)...)
+ collectDeps(ifchange.tgt, level+1, deps, includeSrc)...)
}
}
return alwayses
tracef(CDebug, "collecting deps")
seen := make(map[string]*Tgt)
deps := make(map[string]map[string]*Tgt)
- {
- collectDepsSeen := make(map[string]struct{})
- for _, tgtInitial := range tgts {
- for _, tgt := range collectDeps(tgtInitial, 0, deps, false, collectDepsSeen) {
- if tgt.a != tgtInitial.a {
- seen[tgt.a] = tgt
- }
+ for _, tgtInitial := range tgts {
+ for _, tgt := range collectDeps(tgtInitial, 0, deps, false) {
+ if tgt.rel != tgtInitial.rel {
+ seen[tgt.rel] = tgt
}
}
- InodeCache = make(map[string][]*Inode)
}
- TgtCache = nil
- HashCache = nil
- InodeCache = nil
+ TgtCache = make(map[string]*Tgt)
+ IfchangeCache = nil
if len(seen) == 0 {
return seen
}