8 var TgtCache = make(map[string]*Tgt)
10 func mustAbs(pth string) string {
11 pth, err := filepath.Abs(pth)
18 func mustRel(basepath, targpath string) string {
19 pth, err := filepath.Rel(basepath, targpath)
26 func cwdMustRel(paths ...string) string {
27 return mustRel(Cwd, path.Join(paths...))
30 func pathSplit(a string) (h, t string) {
39 a string // absolute path
40 rel string // relative to Cwd
41 dep string // path to dependency file
44 func NewTgt(tgt string) *Tgt {
47 if t := TgtCache[a]; t != nil {
55 dep: path.Join(h, RedoDir, t+DepSuffix),
63 func (tgt *Tgt) String() string {
67 func (tgt *Tgt) RelTo(cwd string) string {
68 return mustRel(cwd, tgt.a)