return pkg[i];
                                }
                        }
+                       // don't put main in the package list
+                       if(strcmp(p, "main") == 0)
+                               return "main";
                        npkg++;
                        pkg = erealloc(pkg, npkg*sizeof pkg[0]);
                        pkg[i] = emalloc(strlen(p)+1);
        "test: packages\n"
        "\tgotest\n"
        "\n"
+       "coverage: packages\n"
+       "\tgotest\n"
+       "\t6cov -g `pwd` | grep -v '^test.*\\.go:'\n"
+       "\n"
        "%%.$O: %%.go\n"
        "\t$(GC) $*.go\n"
        "\n"
                job[njob].name = argv[i];
                job[njob].pass = -1;
                job[njob].pkg = getpkg(argv[i]);
+               if(job[njob].pkg && strcmp(job[njob].pkg, "main") == 0)
+                       continue;
                njob++;
        }
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 O4=\
        server.$O\
 
-O5=\
-       triv.$O\
-
-http.a: a1 a2 a3 a4 a5
-main.a: a1 a2 a3 a4 a5
+http.a: a1 a2 a3 a4
 
 a1:    $(O1)
        $(AR) grc http.a url.$O
        $(AR) grc http.a server.$O
        rm -f $(O4)
 
-a5:    $(O5)
-       $(AR) grc main.a triv.$O
-       rm -f $(O5)
-
 newpkg: clean
        $(AR) grc http.a
-       $(AR) grc main.a
 
 $(O1): newpkg
 $(O2): a1
 $(O3): a2
 $(O4): a3
-$(O5): a4
 
 nuke: clean
-       rm -f $(GOROOT)/pkg/http.a $(GOROOT)/pkg/main.a
+       rm -f $(GOROOT)/pkg/http.a
 
-packages: http.a main.a
+packages: http.a
 
 install: packages
        cp http.a $(GOROOT)/pkg/http.a
-       cp main.a $(GOROOT)/pkg/main.a
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go
 
 
 test: packages
        gotest
 
+coverage: packages
+       gotest
+       6cov -g `pwd` | grep -v '^test.*\.go:'
+
 %.$O: %.go
        $(GC) $*.go