INITDAT = -1;
INITRND = -1;
INITENTRY = 0;
+ PKGDIR = nil;
ARGBEGIN {
default:
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]))
}
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);