]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: build SWIG shared libraries in work directory
authorIan Lance Taylor <iant@golang.org>
Tue, 10 Sep 2013 18:00:26 +0000 (11:00 -0700)
committerIan Lance Taylor <iant@golang.org>
Tue, 10 Sep 2013 18:00:26 +0000 (11:00 -0700)
Remove test of whether SWIG shared library is older than
sources--should be covered by test of package file anyhow.

Fixes #5739.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/13352046

src/cmd/go/build.go
src/cmd/go/pkg.go

index 83c29ee616f60bfdfe3082317e1ce369bd93f8a4..7308fb6f5566967a200e50d589bdf1d7694c2783 100644 (file)
@@ -1005,8 +1005,9 @@ func (b *builder) install(a *action) (err error) {
                                return err
                        }
                        soname := a.p.swigSoname(f)
+                       source := filepath.Join(a.objdir, soname)
                        target := filepath.Join(dir, soname)
-                       if err = b.copyFile(a, target, soname, perm); err != nil {
+                       if err = b.copyFile(a, target, source, perm); err != nil {
                                return err
                        }
                }
@@ -2255,7 +2256,8 @@ func (b *builder) swigOne(p *Package, file, obj string, cxx bool, intgosize stri
                cxxlib = []string{"-lstdc++"}
        }
        ldflags := stringList(osldflags[goos], cxxlib)
-       b.run(p.Dir, p.ImportPath, nil, b.gccCmd(p.Dir), "-o", soname, gccObj, ldflags)
+       target := filepath.Join(obj, soname)
+       b.run(p.Dir, p.ImportPath, nil, b.gccCmd(p.Dir), "-o", target, gccObj, ldflags)
 
        return obj + goFile, cObj, nil
 }
index a23ac9e8460b7a8eba29f369d8070a3ed80b3765..7f53c5c2637a880bee9031dd8210de1c0c799535 100644 (file)
@@ -680,28 +680,13 @@ func isStale(p *Package, topRoot map[string]bool) bool {
                return false
        }
 
-       srcs := stringList(p.GoFiles, p.CFiles, p.CXXFiles, p.HFiles, p.SFiles, p.CgoFiles, p.SysoFiles)
+       srcs := stringList(p.GoFiles, p.CFiles, p.CXXFiles, p.HFiles, p.SFiles, p.CgoFiles, p.SysoFiles, p.SwigFiles, p.SwigCXXFiles)
        for _, src := range srcs {
                if olderThan(filepath.Join(p.Dir, src)) {
                        return true
                }
        }
 
-       for _, src := range stringList(p.SwigFiles, p.SwigCXXFiles) {
-               if olderThan(filepath.Join(p.Dir, src)) {
-                       return true
-               }
-               soname := p.swigSoname(src)
-               fi, err := os.Stat(soname)
-               if err != nil {
-                       return true
-               }
-               fiSrc, err := os.Stat(src)
-               if err != nil || fiSrc.ModTime().After(fi.ModTime()) {
-                       return true
-               }
-       }
-
        return false
 }