mirror of
https://github.com/golang/go
synced 2024-11-22 04:44:39 -07:00
cmd/go: first piece of tool rearrangement
1) create go-tool dir in make.bash 2) clean up stale binaries in make.bash 3) add 'tool' command to go 4) convert goyacc->yacc as a first test tool Since goyacc stands alone, it's a safe trial. R=rsc CC=golang-dev https://golang.org/cl/5576061
This commit is contained in:
parent
3d400db5de
commit
79dc34413e
49
src/Make.tool
Normal file
49
src/Make.tool
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Copyright 2009 The Go Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style
|
||||||
|
# license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
ifeq ($(GOOS),windows)
|
||||||
|
TARG:=$(TARG).exe
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Tools always go into $GOROOT/bin/go-tool
|
||||||
|
TOOLDIR=$(QUOTED_GOROOT)/bin/go-tool
|
||||||
|
|
||||||
|
all: $(TARG)
|
||||||
|
|
||||||
|
include $(QUOTED_GOROOT)/src/Make.common
|
||||||
|
|
||||||
|
PREREQ+=$(patsubst %,%.make,$(DEPS))
|
||||||
|
|
||||||
|
$(TARG): _go_.$O
|
||||||
|
$(LD) $(LDIMPORTS) -o $@ _go_.$O
|
||||||
|
|
||||||
|
_go_.$O: $(GOFILES) $(PREREQ)
|
||||||
|
$(GC) $(GCFLAGS) $(GCIMPORTS) -o $@ $(GOFILES)
|
||||||
|
|
||||||
|
install: $(TOOLDIR)/$(TARG)
|
||||||
|
|
||||||
|
$(TOOLDIR)/$(TARG): $(TARG)
|
||||||
|
mkdir -p $(TOOLDIR) && cp -f $(TARG) $(TOOLDIR)
|
||||||
|
|
||||||
|
CLEANFILES+=$(TARG) _test _testmain.go test.out build.out
|
||||||
|
|
||||||
|
nuke: clean
|
||||||
|
rm -f $(TOOLDIR)/$(TARG)
|
||||||
|
|
||||||
|
# for gotest
|
||||||
|
testpackage: _test/main.a
|
||||||
|
|
||||||
|
testpackage-clean:
|
||||||
|
rm -f _test/main.a _gotest_.$O
|
||||||
|
|
||||||
|
_test/main.a: _gotest_.$O
|
||||||
|
@mkdir -p _test
|
||||||
|
rm -f $@
|
||||||
|
gopack grc $@ _gotest_.$O
|
||||||
|
|
||||||
|
_gotest_.$O: $(GOFILES) $(GOTESTFILES)
|
||||||
|
$(GC) $(GCFLAGS) $(GCIMPORTS) -o $@ $(GOFILES) $(GOTESTFILES)
|
||||||
|
|
||||||
|
importpath:
|
||||||
|
echo main
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/darwin_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -490,7 +490,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/darwin_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/freebsd_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -490,7 +490,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/freebsd_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/linux_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -490,7 +490,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/linux_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -494,7 +494,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/linux_arm/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
5g -o "$WORK"/cmd/go/_obj/_go_.5 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
5g -o "$WORK"/cmd/go/_obj/_go_.5 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.5
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.5
|
||||||
5l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
5l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/netbsd_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -490,7 +490,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/netbsd_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/openbsd_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -490,7 +490,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/openbsd_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -491,7 +491,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/plan9_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -493,7 +493,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/windows_386/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
8g -o "$WORK"/cmd/go/_obj/_go_.8 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.8
|
||||||
8l -o "$WORK"/cmd/go/_obj/a.out.exe -L "$WORK" "$WORK"/cmd/go.a
|
8l -o "$WORK"/cmd/go/_obj/a.out.exe -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -492,7 +492,7 @@ cp "$WORK"/text/template.a "$GOROOT"/pkg/windows_amd64/text/template.a
|
|||||||
|
|
||||||
mkdir -p "$WORK"/cmd/go/_obj/
|
mkdir -p "$WORK"/cmd/go/_obj/
|
||||||
cd "$GOROOT"/src/cmd/go
|
cd "$GOROOT"/src/cmd/go
|
||||||
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./vcs.go ./version.go ./vet.go
|
6g -o "$WORK"/cmd/go/_obj/_go_.6 -p cmd/go -I "$WORK" ./bootstrap.go ./build.go ./fix.go ./fmt.go ./get.go ./help.go ./list.go ./main.go ./pkg.go ./run.go ./test.go ./testflag.go ./tool.go ./vcs.go ./version.go ./vet.go
|
||||||
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
gopack grc "$WORK"/cmd/go.a "$WORK"/cmd/go/_obj/_go_.6
|
||||||
6l -o "$WORK"/cmd/go/_obj/a.out.exe -L "$WORK" "$WORK"/cmd/go.a
|
6l -o "$WORK"/cmd/go/_obj/a.out.exe -L "$WORK" "$WORK"/cmd/go.a
|
||||||
mkdir -p "$GOBIN"/
|
mkdir -p "$GOBIN"/
|
||||||
|
@ -42,7 +42,7 @@ CLEANDIRS=\
|
|||||||
gofmt\
|
gofmt\
|
||||||
goinstall\
|
goinstall\
|
||||||
gotest\
|
gotest\
|
||||||
goyacc\
|
yacc\
|
||||||
|
|
||||||
install: $(patsubst %,%.install,$(DIRS))
|
install: $(patsubst %,%.install,$(DIRS))
|
||||||
clean: $(patsubst %,%.clean,$(CLEANDIRS))
|
clean: $(patsubst %,%.clean,$(CLEANDIRS))
|
||||||
|
@ -18,6 +18,7 @@ GOFILES=\
|
|||||||
run.go\
|
run.go\
|
||||||
test.go\
|
test.go\
|
||||||
testflag.go\
|
testflag.go\
|
||||||
|
tool.go\
|
||||||
version.go\
|
version.go\
|
||||||
vet.go\
|
vet.go\
|
||||||
vcs.go\
|
vcs.go\
|
||||||
|
@ -75,6 +75,7 @@ var commands = []*Command{
|
|||||||
cmdList,
|
cmdList,
|
||||||
cmdRun,
|
cmdRun,
|
||||||
cmdTest,
|
cmdTest,
|
||||||
|
cmdTool,
|
||||||
cmdVersion,
|
cmdVersion,
|
||||||
cmdVet,
|
cmdVet,
|
||||||
|
|
||||||
|
100
src/cmd/go/tool.go
Normal file
100
src/cmd/go/tool.go
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/build"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var cmdTool = &Command{
|
||||||
|
Run: runTool,
|
||||||
|
UsageLine: "tool command [args...]",
|
||||||
|
Short: "run specified go tool",
|
||||||
|
Long: `
|
||||||
|
Tool runs the go tool command identified by the arguments.
|
||||||
|
With no arguments it prints the list of known tools.
|
||||||
|
|
||||||
|
For more about each tool command, see 'go tool command -h'.
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
toolGoos = build.DefaultContext.GOOS
|
||||||
|
toolIsWindows = toolGoos == "windows"
|
||||||
|
toolBinToolDir = build.Path[0].BinDir() + "/go-tool"
|
||||||
|
)
|
||||||
|
|
||||||
|
const toolWindowsExtension = ".exe"
|
||||||
|
|
||||||
|
func runTool(cmd *Command, args []string) {
|
||||||
|
if len(args) == 0 {
|
||||||
|
listTools()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tool := args[0]
|
||||||
|
// The tool name must be lower-case letters and numbers.
|
||||||
|
for _, c := range tool {
|
||||||
|
switch {
|
||||||
|
case 'a' <= c && c <= 'z', '0' <= c && c <= '9':
|
||||||
|
default:
|
||||||
|
fmt.Fprintf(os.Stderr, "go tool: bad tool name %q\n", tool)
|
||||||
|
exitStatus = 2
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toolPath := toolBinToolDir + "/" + tool
|
||||||
|
if toolIsWindows {
|
||||||
|
toolPath += toolWindowsExtension
|
||||||
|
}
|
||||||
|
// Give a nice message if there is no tool with that name.
|
||||||
|
if _, err := os.Stat(toolPath); err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "go tool: no such tool %q\n", tool)
|
||||||
|
exitStatus = 3
|
||||||
|
return
|
||||||
|
}
|
||||||
|
toolCmd := &exec.Cmd{
|
||||||
|
Path: toolPath,
|
||||||
|
Args: args,
|
||||||
|
Stdout: os.Stdout,
|
||||||
|
Stderr: os.Stderr,
|
||||||
|
}
|
||||||
|
err := toolCmd.Run()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "go tool %s failed: %s\n", tool, err)
|
||||||
|
exitStatus = 1
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// listTools prints a list of the available tools in the go-tools directory.
|
||||||
|
func listTools() {
|
||||||
|
toolDir, err := os.Open(toolBinToolDir)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "go tool: no tool directory: %s\n", err)
|
||||||
|
exitStatus = 2
|
||||||
|
return
|
||||||
|
}
|
||||||
|
names, err := toolDir.Readdirnames(-1)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "go tool: can't read directory: %s\n", err)
|
||||||
|
exitStatus = 2
|
||||||
|
return
|
||||||
|
}
|
||||||
|
sort.StringSlice(names).Sort()
|
||||||
|
for _, name := range names {
|
||||||
|
// Unify presentation by going to lower case.
|
||||||
|
name = strings.ToLower(name)
|
||||||
|
// If it's windows, don't show the .exe suffix.
|
||||||
|
if toolIsWindows && strings.HasSuffix(name, toolWindowsExtension) {
|
||||||
|
name = name[:len(name)-len(toolWindowsExtension)]
|
||||||
|
}
|
||||||
|
fmt.Println(name)
|
||||||
|
}
|
||||||
|
}
|
@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
include ../../Make.inc
|
include ../../Make.inc
|
||||||
|
|
||||||
TARG=goyacc
|
TARG=yacc
|
||||||
GOFILES=\
|
GOFILES=\
|
||||||
goyacc.go\
|
yacc.go\
|
||||||
|
|
||||||
include ../../Make.cmd
|
include ../../Make.tool
|
||||||
|
|
||||||
units: goyacc units.y
|
units: yacc units.y
|
||||||
./goyacc -p units_ units.y
|
./yacc -p units_ units.y
|
||||||
$(GC) $(GCFLAGS) $(GCIMPORTS) y.go
|
$(GC) $(GCFLAGS) $(GCIMPORTS) y.go
|
||||||
$(LD) -o units y.$O
|
$(LD) -o units y.$O
|
||||||
|
|
@ -4,7 +4,8 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Goyacc is a version of yacc for Go.
|
Yacc is a version of yacc for Go. It is run with the command
|
||||||
|
go tool yacc args...
|
||||||
It is written in Go and generates parsers written in Go.
|
It is written in Go and generates parsers written in Go.
|
||||||
|
|
||||||
It is largely transliterated from the Inferno version written in Limbo
|
It is largely transliterated from the Inferno version written in Limbo
|
||||||
@ -13,7 +14,8 @@ written in C and documented at
|
|||||||
|
|
||||||
http://plan9.bell-labs.com/magic/man2html/1/yacc
|
http://plan9.bell-labs.com/magic/man2html/1/yacc
|
||||||
|
|
||||||
Yacc adepts will have no trouble adapting to this form of the tool.
|
Adepts of the original yacc will have no trouble adapting to this
|
||||||
|
form of the tool.
|
||||||
|
|
||||||
The file units.y in this directory is a yacc grammar for a version of
|
The file units.y in this directory is a yacc grammar for a version of
|
||||||
the Unix tool units, also written in Go and largely transliterated
|
the Unix tool units, also written in Go and largely transliterated
|
||||||
@ -37,9 +39,9 @@ which holds the yyLexer passed to Parse.
|
|||||||
|
|
||||||
Multiple grammars compiled into a single program should be placed in
|
Multiple grammars compiled into a single program should be placed in
|
||||||
distinct packages. If that is impossible, the "-p prefix" flag to
|
distinct packages. If that is impossible, the "-p prefix" flag to
|
||||||
goyacc sets the prefix, by default yy, that begins the names of
|
yacc sets the prefix, by default yy, that begins the names of
|
||||||
symbols, including types, the parser, and the lexer, generated and
|
symbols, including types, the parser, and the lexer, generated and
|
||||||
referenced by goyacc's generated code. Setting it to distinct values
|
referenced by yacc's generated code. Setting it to distinct values
|
||||||
allows multiple grammars to be placed in a single package.
|
allows multiple grammars to be placed in a single package.
|
||||||
|
|
||||||
*/
|
*/
|
@ -7,17 +7,17 @@
|
|||||||
// See http://plan9.bell-labs.com/plan9/license.html
|
// See http://plan9.bell-labs.com/plan9/license.html
|
||||||
|
|
||||||
// Generate parser with prefix "units_":
|
// Generate parser with prefix "units_":
|
||||||
// goyacc -p "units_"
|
// go tool yacc -p "units_"
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|
||||||
// units.y
|
// units.y
|
||||||
// example of a goyacc program
|
// example of a Go yacc program
|
||||||
// usage is
|
// usage is
|
||||||
// goyacc -p "units_" units.y (produces y.go)
|
// go tool yacc -p "units_" units.y (produces y.go)
|
||||||
// 6g y.go
|
// 6g y.go
|
||||||
// 6l y.6
|
// 6l y.6
|
||||||
// ./6.out $GOROOT/src/cmd/goyacc/units
|
// ./6.out $GOROOT/src/cmd/yacc/units
|
||||||
// you have: c
|
// you have: c
|
||||||
// you want: furlongs/fortnight
|
// you want: furlongs/fortnight
|
||||||
// * 1.8026178e+12
|
// * 1.8026178e+12
|
||||||
@ -288,7 +288,7 @@ func main() {
|
|||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
file = os.Getenv("GOROOT") + "/src/cmd/goyacc/units.txt"
|
file = os.Getenv("GOROOT") + "/src/cmd/yacc/units.txt"
|
||||||
if flag.NArg() > 0 {
|
if flag.NArg() > 0 {
|
||||||
file = flag.Arg(0)
|
file = flag.Arg(0)
|
||||||
}
|
}
|
@ -2933,7 +2933,7 @@ func chcopy(q string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func usage() {
|
func usage() {
|
||||||
fmt.Fprintf(stderr, "usage: goyacc [-o output] [-v parsetable] input\n")
|
fmt.Fprintf(stderr, "usage: yacc [-o output] [-v parsetable] input\n")
|
||||||
exit(1)
|
exit(1)
|
||||||
}
|
}
|
||||||
|
|
@ -22,11 +22,21 @@ if ld --version 2>&1 | grep 'gold.* 2\.20' >/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Create target directories
|
# Create target directories
|
||||||
if [ "$GOBIN" = "$GOROOT/bin" ]; then
|
mkdir -p "$GOROOT/bin/go-tool"
|
||||||
mkdir -p "$GOROOT/bin"
|
|
||||||
fi
|
|
||||||
mkdir -p "$GOROOT/pkg"
|
mkdir -p "$GOROOT/pkg"
|
||||||
|
|
||||||
|
# Remove old, pre-go-tool binaries.
|
||||||
|
rm -f "$GOROOT"/bin/[568][acgl]
|
||||||
|
rm -f "$GOROOT"/bin/{6cov,6nm,cgo,ebnflint,goapi,gofix,goinstall,gomake,gopack,gopprof,gotest,gotype,govet,goyacc,hgpatch,quietgcc}
|
||||||
|
|
||||||
|
# If GOBIN is set and it has a Go compiler, it must also be cleaned.
|
||||||
|
if [ -n "GOBIN" ]; then
|
||||||
|
if [ -x "$GOBIN"/5g -o -x "$GOBIN"/6g -o -x "$GOBIN"/8g ]; then
|
||||||
|
rm -f "$GOBIN"/[568][acgl]
|
||||||
|
rm -f "$GOBIN"/{6cov,6nm,cgo,ebnflint,goapi,gofix,goinstall,gomake,gopack,gopprof,gotest,gotype,govet,goyacc,hgpatch,quietgcc}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
GOROOT_FINAL=${GOROOT_FINAL:-$GOROOT}
|
GOROOT_FINAL=${GOROOT_FINAL:-$GOROOT}
|
||||||
|
|
||||||
MAKEFLAGS=${MAKEFLAGS:-"-j4"}
|
MAKEFLAGS=${MAKEFLAGS:-"-j4"}
|
||||||
|
@ -161,7 +161,7 @@ DIRS=\
|
|||||||
../cmd/goinstall\
|
../cmd/goinstall\
|
||||||
../cmd/gotest\
|
../cmd/gotest\
|
||||||
../cmd/govet\
|
../cmd/govet\
|
||||||
../cmd/goyacc\
|
../cmd/yacc\
|
||||||
|
|
||||||
ifeq ($(GOOS),linux)
|
ifeq ($(GOOS),linux)
|
||||||
DIRS+=\
|
DIRS+=\
|
||||||
@ -194,7 +194,7 @@ NOTEST+=\
|
|||||||
../cmd/cgo\
|
../cmd/cgo\
|
||||||
../cmd/godoc\
|
../cmd/godoc\
|
||||||
../cmd/gotest\
|
../cmd/gotest\
|
||||||
../cmd/goyacc\
|
../cmd/yacc\
|
||||||
|
|
||||||
NOBENCH+=\
|
NOBENCH+=\
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user