From 6c4d8f830965d04854dd42294c939c48d3d61d83 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 24 Nov 2008 11:21:56 -0800 Subject: [PATCH] gobuild: recognize "// package foo" in non-go files recognize "gobuild: ignore" to exclude from build R=r DELTA=10 (7 added, 2 deleted, 1 changed) OCL=19878 CL=19905 --- src/cmd/gobuild/gobuild.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/cmd/gobuild/gobuild.c b/src/cmd/gobuild/gobuild.c index 55553ec364..091e2af6fc 100644 --- a/src/cmd/gobuild/gobuild.c +++ b/src/cmd/gobuild/gobuild.c @@ -206,12 +206,17 @@ getpkg(char *file) char *p, *q; int i; - if(!suffix(file, ".go")) - return nil; if((b = Bopen(file, OREAD)) == nil) sysfatal("open %s: %r", file); while((p = Brdline(b, '\n')) != nil) { p[Blinelen(b)-1] = '\0'; + if(!suffix(file, ".go")) { + if(*p != '/' || *(p+1) != '/') + continue; + p += 2; + } + if(strstr(p, "gobuild: ignore")) + return "main"; while(*p == ' ' || *p == '\t') p++; if(strncmp(p, "package", 7) == 0 && (p[7] == ' ' || p[7] == '\t')) { @@ -487,7 +492,7 @@ main(int argc, char **argv) njob = 0; job = emalloc(argc*sizeof job[0]); for(i=0; i