"go/build"
"go/build/constraint"
"go/token"
+ "internal/buildinternal"
"internal/godebug"
"internal/goroot"
"path"
p.PkgRoot = ctxt.joinPath(p.Root, "pkg")
p.BinDir = ctxt.joinPath(p.Root, "bin")
if pkga != "" {
+ // Always set PkgTargetRoot. It might be used when building in shared
+ // mode.
p.PkgTargetRoot = ctxt.joinPath(p.Root, pkgtargetroot)
- p.PkgObj = ctxt.joinPath(p.Root, pkga)
+
+ // Set the install target if applicable.
+ if strings.ToLower(godebug.Get("installgoroot")) == "all" ||
+ !p.Goroot || buildinternal.NeedsInstalledDotA(p.ImportPath) {
+ p.PkgObj = ctxt.joinPath(p.Root, pkga)
+ }
}
}
}