diff options
author | Rob Pike <r@golang.org> | 2009-04-17 19:39:45 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2009-04-17 19:39:45 -0700 |
commit | c6e22b2438b7b1b5494ed258a005054c3cab0562 (patch) | |
tree | 18ba948edb8376fe9d2d2d7618d045a5d806a0db /src/cmd | |
parent | 02b51dcd281fd71b83742605b030a8d4f9dc4e0f (diff) | |
download | golang-c6e22b2438b7b1b5494ed258a005054c3cab0562.tar.gz |
add -P pkgdir option to 6l to have it look first in pkgdir for a package.
this allows gotest to find the locally built package when doing
make
gotest
without this option, one would have to say
make install
gotest
which kinda defeats the purpose
based on discussions with rsc.
R=ken,rsc
DELTA=12 (10 added, 1 deleted, 1 changed)
OCL=27606
CL=27606
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/6l/l.h | 1 | ||||
-rw-r--r-- | src/cmd/6l/obj.c | 11 | ||||
-rwxr-xr-x | src/cmd/gotest/gotest | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/cmd/6l/l.h b/src/cmd/6l/l.h index 2d3cd535a..847915646 100644 --- a/src/cmd/6l/l.h +++ b/src/cmd/6l/l.h @@ -288,6 +288,7 @@ EXTERN vlong INITDAT; EXTERN int32 INITRND; EXTERN vlong INITTEXT; EXTERN char* INITENTRY; /* entry point */ +EXTERN char* PKGDIR; EXTERN Biobuf bso; EXTERN int32 bsssize; EXTERN int cbc; diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c index 3a4208cd2..b65c7f313 100644 --- a/src/cmd/6l/obj.c +++ b/src/cmd/6l/obj.c @@ -87,6 +87,7 @@ main(int argc, char *argv[]) INITDAT = -1; INITRND = -1; INITENTRY = 0; + PKGDIR = nil; ARGBEGIN { default: @@ -122,6 +123,11 @@ main(int argc, char *argv[]) if(a) INITRND = atolwhex(a); break; + case 'P': + a = ARGF(); + if(a) + PKGDIR = a; + break; case 'x': /* produce export table */ doexp = 1; if(argv[1] != nil && argv[1][0] != '-' && !isobjfile(argv[1])) @@ -684,9 +690,10 @@ addlib(char *src, char *obj) } if(search) { - // try dot and then try goroot. - // going to have to do better (probably a command line flag) later. + // try dot, -P "pkgdir", and then goroot. snprint(pname, sizeof pname, ".%s", name); + if(access(pname, AEXIST) < 0 && PKGDIR != nil) + snprint(pname, sizeof pname, "%s/%s", PKGDIR, name); if(access(pname, AEXIST) < 0) snprint(pname, sizeof pname, "%s/pkg/%s", goroot, name); strcpy(name, pname); diff --git a/src/cmd/gotest/gotest b/src/cmd/gotest/gotest index 2cb08c529..12db03bf3 100755 --- a/src/cmd/gotest/gotest +++ b/src/cmd/gotest/gotest @@ -13,6 +13,7 @@ GC=${GC:-${O}g} GL=${GL:-${O}l} export GC GL GC="$GC -I _obj" +GL="$GL -P _obj" gofiles="" loop=true |