]>
Commit | Line | Data |
---|---|---|
dcfe52b6 | 1 | # Makefile for gotools |
6f8b1fff | 2 | # Copyright (C) 2015-2016 Free Software Foundation, Inc. |
dcfe52b6 | 3 | # |
4 | # This file is free software; you can redistribute it and/or modify | |
5 | # it under the terms of the GNU General Public License as published by | |
6 | # the Free Software Foundation; either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU General Public License | |
15 | # along with this program; see the file COPYING3. If not see | |
16 | # <http://www.gnu.org/licenses/>. | |
17 | ||
18 | ACLOCAL_AMFLAGS = -I ./config -I ../config | |
19 | ||
20 | gcc_version := $(shell $(GCC_FOR_TARGET) -dumpversion) | |
21 | ||
22 | libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) | |
23 | ||
24 | mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs | |
25 | PWD_COMMAND = $${PWDCMD-pwd} | |
26 | STAMP = echo timestamp > | |
27 | ||
28 | libgodir = ../$(target_noncanonical)/libgo | |
29 | LIBGODEP = $(libgodir)/libgo.la | |
30 | ||
e104cab8 | 31 | LIBGOTOOL = $(libgodir)/libgotool.a |
32 | ||
ff5b9b4f | 33 | if NATIVE |
34 | # Use the compiler we just built. | |
877f47a9 | 35 | GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) |
ff5b9b4f | 36 | else |
37 | GOCOMPILER = $(GOC) | |
38 | endif | |
39 | ||
dcfe52b6 | 40 | GOCFLAGS = $(CFLAGS_FOR_TARGET) |
ff5b9b4f | 41 | GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) |
dcfe52b6 | 42 | |
7f2f4625 | 43 | AM_GOCFLAGS = -I $(libgodir) |
bb11842d | 44 | AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs |
9176c716 | 45 | GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ |
dcfe52b6 | 46 | |
6009a592 | 47 | libgosrcdir = $(srcdir)/../libgo/go |
48 | cmdsrcdir = $(libgosrcdir)/cmd | |
fa9acbba | 49 | libgomiscdir = $(srcdir)/../libgo/misc |
dcfe52b6 | 50 | |
51 | go_cmd_go_files = \ | |
05e45616 | 52 | $(cmdsrcdir)/go/alldocs.go \ |
dcfe52b6 | 53 | $(cmdsrcdir)/go/go11.go \ |
e104cab8 | 54 | $(cmdsrcdir)/go/main.go |
dcfe52b6 | 55 | |
56 | go_cmd_gofmt_files = \ | |
57 | $(cmdsrcdir)/gofmt/doc.go \ | |
58 | $(cmdsrcdir)/gofmt/gofmt.go \ | |
0694cef2 | 59 | $(cmdsrcdir)/gofmt/internal.go \ |
dcfe52b6 | 60 | $(cmdsrcdir)/gofmt/rewrite.go \ |
61 | $(cmdsrcdir)/gofmt/simplify.go | |
62 | ||
63 | go_cmd_cgo_files = \ | |
64 | $(cmdsrcdir)/cgo/ast.go \ | |
65 | $(cmdsrcdir)/cgo/doc.go \ | |
66 | $(cmdsrcdir)/cgo/gcc.go \ | |
67 | $(cmdsrcdir)/cgo/godefs.go \ | |
68 | $(cmdsrcdir)/cgo/main.go \ | |
69 | $(cmdsrcdir)/cgo/out.go \ | |
70 | $(cmdsrcdir)/cgo/util.go | |
71 | ||
33d1d391 | 72 | go_cmd_vet_files = \ |
73 | $(cmdsrcdir)/vet/asmdecl.go \ | |
74 | $(cmdsrcdir)/vet/assign.go \ | |
75 | $(cmdsrcdir)/vet/atomic.go \ | |
76 | $(cmdsrcdir)/vet/bool.go \ | |
77 | $(cmdsrcdir)/vet/buildtag.go \ | |
78 | $(cmdsrcdir)/vet/cgo.go \ | |
79 | $(cmdsrcdir)/vet/composite.go \ | |
80 | $(cmdsrcdir)/vet/copylock.go \ | |
81 | $(cmdsrcdir)/vet/deadcode.go \ | |
82 | $(cmdsrcdir)/vet/dead.go \ | |
83 | $(cmdsrcdir)/vet/doc.go \ | |
84 | $(cmdsrcdir)/vet/httpresponse.go \ | |
85 | $(cmdsrcdir)/vet/lostcancel.go \ | |
86 | $(cmdsrcdir)/vet/main.go \ | |
87 | $(cmdsrcdir)/vet/method.go \ | |
88 | $(cmdsrcdir)/vet/nilfunc.go \ | |
89 | $(cmdsrcdir)/vet/print.go \ | |
90 | $(cmdsrcdir)/vet/rangeloop.go \ | |
91 | $(cmdsrcdir)/vet/shadow.go \ | |
92 | $(cmdsrcdir)/vet/shift.go \ | |
93 | $(cmdsrcdir)/vet/structtag.go \ | |
94 | $(cmdsrcdir)/vet/tests.go \ | |
95 | $(cmdsrcdir)/vet/types.go \ | |
96 | $(cmdsrcdir)/vet/unsafeptr.go \ | |
97 | $(cmdsrcdir)/vet/unused.go | |
98 | ||
99 | go_cmd_buildid_files = \ | |
100 | $(cmdsrcdir)/buildid/buildid.go \ | |
101 | $(cmdsrcdir)/buildid/doc.go | |
102 | ||
103 | go_cmd_test2json_files = \ | |
104 | $(cmdsrcdir)/test2json/main.go | |
105 | ||
dcfe52b6 | 106 | GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)') |
107 | GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') | |
108 | GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)') | |
109 | ||
110 | zdefaultcc.go: s-zdefaultcc; @true | |
111 | s-zdefaultcc: Makefile | |
112 | echo 'package main' > zdefaultcc.go.tmp | |
33d1d391 | 113 | echo 'func defaultGCCGO(goos, goarch string) string { return "$(bindir)/$(GCCGO_INSTALL_NAME)" }' >> zdefaultcc.go.tmp |
114 | echo 'func defaultCC(goos, goarch string) string { return "$(GCC_INSTALL_NAME)" }' >> zdefaultcc.go.tmp | |
115 | echo 'func defaultCXX(goos, goarch string) string { return "$(GXX_INSTALL_NAME)" }' >> zdefaultcc.go.tmp | |
ccea2b36 | 116 | echo 'const defaultPkgConfig = "pkg-config"' >> zdefaultcc.go.tmp |
dcfe52b6 | 117 | $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go |
118 | $(STAMP) $@ | |
119 | ||
fa9acbba | 120 | MOSTLYCLEANFILES = \ |
121 | zdefaultcc.go s-zdefaultcc \ | |
d273b446 | 122 | check-gccgo check-gcc gotools.head *-testlog gotools.sum gotools.log \ |
123 | *.sent | |
fa9acbba | 124 | |
125 | mostlyclean-local: | |
126 | rm -rf check-go-dir check-runtime-dir cgo-test-dir carchive-test-dir | |
ff5b9b4f | 127 | |
dcfe52b6 | 128 | if NATIVE |
129 | ||
130 | # For a native build we build the programs using the newly built libgo | |
131 | # and install them as regular programs. | |
132 | ||
133 | bin_PROGRAMS = go$(EXEEXT) gofmt$(EXEEXT) | |
33d1d391 | 134 | noinst_PROGRAMS = cgo$(EXEEXT) vet$(EXEEXT) buildid$(EXEEXT) test2json$(EXEEXT) |
0d0ad5e6 | 135 | man_MANS = go.1 gofmt.1 |
dcfe52b6 | 136 | |
e104cab8 | 137 | go$(EXEEXT): $(go_cmd_go_files) $(LIBGOTOOL) $(LIBGODEP) |
138 | $(GOLINK) $(go_cmd_go_files) $(LIBGOTOOL) $(LIBS) $(NET_LIBS) | |
dcfe52b6 | 139 | gofmt$(EXEEXT): $(go_cmd_gofmt_files) $(LIBGODEP) |
b7450aac | 140 | $(GOLINK) $(go_cmd_gofmt_files) $(LIBS) $(NET_LIBS) |
33d1d391 | 141 | cgo$(EXEEXT): $(go_cmd_cgo_files) zdefaultcc.go $(LIBGOTOOL) $(LIBGODEP) |
142 | $(GOLINK) $(go_cmd_cgo_files) zdefaultcc.go $(LIBGOTOOL) $(LIBS) $(NET_LIBS) | |
143 | vet$(EXEEXT): $(go_cmd_vet_files) $(LIBGOTOOL) $(LIBGODEP) | |
144 | $(GOLINK) $(go_cmd_vet_files) $(LIBGOTOOL) $(LIBS) $(NET_LIBS) | |
145 | buildid$(EXEEXT): $(go_cmd_buildid_files) $(LIBGOTOOL) $(LIBGODEP) | |
146 | $(GOLINK) $(go_cmd_buildid_files) $(LIBGOTOOL) $(LIBS) $(NET_LIBS) | |
147 | test2json$(EXEEXT): $(go_cmd_test2json_files) $(LIBGOTOOL) $(LIBGODEP) | |
148 | $(GOLINK) $(go_cmd_test2json_files) $(LIBGOTOOL) $(LIBS) $(NET_LIBS) | |
149 | ||
150 | install-exec-local: $(noinst_PROGRAMS) | |
b2fa8650 | 151 | $(MKDIR_P) $(DESTDIR)$(libexecsubdir) |
33d1d391 | 152 | for f in $(noinst_PROGRAMS); do \ |
153 | rm -f $(DESTDIR)$(libexecsubdir)/$$f; \ | |
154 | $(INSTALL_PROGRAM) $$f $(DESTDIR)$(libexecsubdir)/$$f; \ | |
155 | done | |
b2fa8650 | 156 | |
157 | uninstall-local: | |
33d1d391 | 158 | for f in $(noinst_PROGRAMS); do \ |
159 | rm -f $(DESTDIR)$(libexecsubdir)/$$f; \ | |
160 | done | |
b2fa8650 | 161 | |
3c03bb8b | 162 | GOTESTFLAGS = |
163 | ||
1817a7d9 | 164 | # Number of seconds before tests time out. |
165 | GOTOOLS_TEST_TIMEOUT = 240 | |
166 | ||
6009a592 | 167 | # Run tests using the go tool, and frob the output to look like that |
168 | # generated by DejaGNU. The main output of this is two files: | |
169 | # gotools.sum and gotools.log. | |
170 | ||
171 | # check-head starts generating the log files in DejaGNU format. This | |
172 | # is a separate target so that the date is approximately when we start | |
173 | # running the tests. | |
174 | check-head: | |
175 | @echo "Test Run By $${USER} on `date`" > gotools.head | |
176 | @echo "Native configuration is $(host_triplet)" >> gotools.head | |
177 | @echo >> gotools.head | |
178 | @echo " === gotools tests ===" >> gotools.head | |
179 | @echo >> gotools.head | |
180 | ||
181 | # check-gccgo is a little shell script that executes gccgo with the | |
182 | # options to pick up the newly built libgo. | |
183 | check-gccgo: Makefile | |
d273b446 | 184 | rm -f $@ $@.tmp |
185 | echo "#!/bin/sh" > $@.tmp | |
6009a592 | 186 | abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ |
d273b446 | 187 | echo "$(GOCOMPILE)" '"$$@"' "-I $${abs_libgodir} -L $${abs_libgodir} -L $${abs_libgodir}/.libs" >> $@.tmp |
188 | chmod +x $@.tmp | |
189 | mv -f $@.tmp $@ | |
190 | ||
191 | # check-gcc is a little shell script that executes the newly built gcc | |
192 | # with the options to pick up the newly built libgo. | |
193 | check-gcc: Makefile | |
194 | rm -f $@ $@.tmp | |
195 | echo "#!/bin/sh" > $@.tmp | |
196 | abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
197 | echo "$(GCC_FOR_TARGET)" '"$$@"' "-L $${abs_libgodir} -L $${abs_libgodir}/.libs" >> $@.tmp | |
198 | chmod +x $@.tmp | |
199 | mv -f $@.tmp $@ | |
6009a592 | 200 | |
201 | # CHECK_ENV sets up the environment to run the newly built go tool. | |
fa9acbba | 202 | # If you change this, change ECHO_ENV, below. |
e104cab8 | 203 | # The fl shell variable is used to avoid having FAIL appear |
204 | # in the log unnecessarily. | |
6009a592 | 205 | CHECK_ENV = \ |
206 | PATH=`echo $(abs_builddir):$${PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ | |
207 | export PATH; \ | |
208 | GCCGO="$(abs_builddir)/check-gccgo"; \ | |
209 | export GCCGO; \ | |
d273b446 | 210 | CC="$(abs_builddir)/check-gcc"; \ |
211 | export CC; \ | |
6009a592 | 212 | GCCGOTOOLDIR="$(abs_builddir)"; \ |
213 | export GCCGOTOOLDIR; \ | |
214 | GO_TESTING_GOTOOLS=yes; \ | |
215 | export GO_TESTING_GOTOOLS; \ | |
216 | abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
217 | LD_LIBRARY_PATH=`echo $${abs_libgodir}/.libs:$${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ | |
74e30175 | 218 | export LD_LIBRARY_PATH; \ |
219 | GOROOT=$${abs_libgodir}; \ | |
e104cab8 | 220 | export GOROOT; \ |
221 | fl1="FA"; fl2="IL"; fl="$${fl1}$${fl2}"; | |
6009a592 | 222 | |
fa9acbba | 223 | # ECHO_ENV is a variant of CHECK_ENV to put into a testlog file. |
224 | # It assumes that abs_libgodir is set. | |
d273b446 | 225 | ECHO_ENV = PATH=`echo $(abs_builddir):$${PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'` GCCGO='$(abs_builddir)/check-gccgo' CC='$(abs_builddir)/check-gcc' GCCGOTOOLDIR='$(abs_builddir)' GO_TESTING_GOTOOLS=yes LD_LIBRARY_PATH=`echo $${abs_libgodir}/.libs:$${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'` GOROOT=`echo $${abs_libgodir}` |
fa9acbba | 226 | |
33d1d391 | 227 | # check-go-tool runs `go test cmd/go` in our environment. |
228 | check-go-tool: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc | |
fa9acbba | 229 | rm -rf check-go-dir cmd_go-testlog |
6009a592 | 230 | $(MKDIR_P) check-go-dir/src/cmd/go |
231 | cp $(cmdsrcdir)/go/*.go check-go-dir/src/cmd/go/ | |
e104cab8 | 232 | cp -r $(cmdsrcdir)/go/internal check-go-dir/src/cmd/go/ |
233 | cp $(libgodir)/zstdpkglist.go check-go-dir/src/cmd/go/internal/load/ | |
234 | cp $(libgodir)/zdefaultcc.go check-go-dir/src/cmd/go/internal/cfg/ | |
6009a592 | 235 | cp -r $(cmdsrcdir)/go/testdata check-go-dir/src/cmd/go/ |
e104cab8 | 236 | cp -r $(cmdsrcdir)/internal check-go-dir/src/cmd/ |
33d1d391 | 237 | cp $(libgodir)/objabi.go check-go-dir/src/cmd/internal/objabi/ |
fa9acbba | 238 | @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ |
239 | abs_checkdir=`cd check-go-dir && $(PWD_COMMAND)`; \ | |
1817a7d9 | 240 | echo "cd check-go-dir/src/cmd/go && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cmd_go-testlog |
6009a592 | 241 | $(CHECK_ENV) \ |
242 | GOPATH=`cd check-go-dir && $(PWD_COMMAND)`; \ | |
243 | export GOPATH; \ | |
1817a7d9 | 244 | (cd check-go-dir/src/cmd/go && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cmd_go-testlog 2>&1 || echo "--- $${fl}: go test cmd/go (0.00s)" >> cmd_go-testlog |
3c03bb8b | 245 | grep '^--- ' cmd_go-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 |
6009a592 | 246 | |
fa9acbba | 247 | # check-runtime runs `go test runtime` in our environment. |
248 | # The runtime package is also tested as part of libgo, | |
249 | # but the runtime tests use the go tool heavily, so testing | |
250 | # here too will catch more problems. | |
33d1d391 | 251 | check-runtime: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc |
fa9acbba | 252 | rm -rf check-runtime-dir runtime-testlog |
253 | $(MKDIR_P) check-runtime-dir | |
254 | @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
255 | LD_LIBRARY_PATH=`echo $${abs_libgodir}/.libs:$${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ | |
256 | GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \ | |
257 | GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \ | |
258 | files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go" --tag=libffi`; \ | |
3c03bb8b | 259 | echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.v" > runtime-testlog |
fa9acbba | 260 | $(CHECK_ENV) \ |
261 | GC="$${GCCGO} -fgo-compiling-runtime"; \ | |
262 | export GC; \ | |
263 | GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \ | |
264 | GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \ | |
265 | files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go" --tag=libffi`; \ | |
808c96e1 | 266 | $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog |
3c03bb8b | 267 | grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 |
fa9acbba | 268 | |
269 | # check-cgo-test runs `go test misc/cgo/test` in our environment. | |
33d1d391 | 270 | check-cgo-test: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc |
fa9acbba | 271 | rm -rf cgo-test-dir cgo-testlog |
272 | $(MKDIR_P) cgo-test-dir/misc/cgo | |
273 | cp -r $(libgomiscdir)/cgo/test cgo-test-dir/misc/cgo/ | |
274 | @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
1817a7d9 | 275 | echo "cd cgo-test-dir/misc/cgo/test && $(ECHO_ENV) GOTRACEBACK=2 $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cgo-testlog |
fa9acbba | 276 | $(CHECK_ENV) \ |
277 | GOTRACEBACK=2; \ | |
278 | export GOTRACEBACK; \ | |
1817a7d9 | 279 | (cd cgo-test-dir/misc/cgo/test && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cgo-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/test (0.00s)" >> cgo-testlog |
3c03bb8b | 280 | grep '^--- ' cgo-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 |
fa9acbba | 281 | |
282 | # check-carchive-test runs `go test misc/cgo/testcarchive/carchive_test.go` | |
283 | # in our environment. | |
33d1d391 | 284 | check-carchive-test: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc |
fa9acbba | 285 | rm -rf carchive-test-dir carchive-testlog |
286 | $(MKDIR_P) carchive-test-dir/misc/cgo | |
287 | cp -r $(libgomiscdir)/cgo/testcarchive carchive-test-dir/misc/cgo/ | |
288 | @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
1817a7d9 | 289 | echo "cd carchive-test-dir/misc/cgo/testcarchive && $(ECHO_ENV) LIBRARY_PATH=`echo $${abs_libgodir}/.libs` $(abs_builddir)/go$(EXEEXT) test -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v carchive_test.go" > carchive-testlog |
fa9acbba | 290 | $(CHECK_ENV) \ |
291 | LIBRARY_PATH=`echo $${abs_libgodir}/.libs:$${LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ | |
292 | export LIBRARY_PATH; \ | |
1817a7d9 | 293 | (cd carchive-test-dir/misc/cgo/testcarchive && $(abs_builddir)/go$(EXEEXT) test -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v carchive_test.go) >> carchive-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/testcarchive (0.00s)" >> carchive-testlog |
3c03bb8b | 294 | grep '^--- ' carchive-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 |
fa9acbba | 295 | |
33d1d391 | 296 | # check-vet runs `go test cmd/vet` in our environment. |
297 | check-vet: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc | |
298 | rm -rf check-vet-dir cmd_vet-testlog | |
299 | $(MKDIR_P) check-vet-dir/src/cmd | |
300 | cp -r $(cmdsrcdir)/vet check-vet-dir/src/cmd/ | |
301 | @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ | |
302 | abs_checkdir=`cd check-vet-dir && $(PWD_COMMAND)`; \ | |
1817a7d9 | 303 | echo "cd check-vet-dir/src/cmd/vet && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cmd_vet-testlog |
33d1d391 | 304 | $(CHECK_ENV) \ |
305 | GOPATH=`cd check-vet-dir && $(PWD_COMMAND)`; \ | |
306 | export GOPATH; \ | |
1817a7d9 | 307 | (cd check-vet-dir/src/cmd/vet && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cmd_vet-testlog 2>&1 || echo "--- $${fl}: go test cmd/vet (0.00s)" >> cmd_vet-testlog |
33d1d391 | 308 | grep '^--- ' cmd_vet-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 |
309 | ||
6009a592 | 310 | # The check targets runs the tests and assembles the output files. |
33d1d391 | 311 | check: check-head check-go-tool check-runtime check-cgo-test check-carchive-test check-vet |
fa9acbba | 312 | @mv gotools.head gotools.sum |
313 | @cp gotools.sum gotools.log | |
33d1d391 | 314 | @for file in cmd_go-testlog runtime-testlog cgo-testlog carchive-testlog cmd_vet-testlog; do \ |
6009a592 | 315 | testname=`echo $${file} | sed -e 's/-testlog//' -e 's|_|/|'`; \ |
316 | echo "Running $${testname}" >> gotools.sum; \ | |
317 | echo "Running $${testname}" >> gotools.log; \ | |
318 | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' < $${file} >> gotools.log; \ | |
3c03bb8b | 319 | grep '^--- ' $${file} | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' -e 's/SKIP/UNTESTED/' | sort -k 2 >> gotools.sum; \ |
6009a592 | 320 | done |
321 | @echo >> gotools.sum | |
322 | @echo " === gotools Summary ===" >> gotools.sum | |
fa9acbba | 323 | @pass=`grep -c '^PASS' gotools.sum`; \ |
6009a592 | 324 | if test "$${pass}" -ne "0"; then \ |
325 | echo "# of expected passes $${pass}" >> gotools.sum; \ | |
326 | fi | |
fa9acbba | 327 | @fail=`grep -c '^FAIL' gotools.sum`; \ |
6009a592 | 328 | if test "$${fail}" -ne "0"; then \ |
329 | echo "# of unexpected failures $${fail}" >> gotools.sum; \ | |
330 | fi | |
fa9acbba | 331 | @untested=`grep -c '^UNTESTED' gotools.sum`; \ |
6009a592 | 332 | if test "$${untested}" -ne "0"; then \ |
333 | echo "# of untested testcases $${untested}" >> gotools.sum; \ | |
334 | fi | |
fa9acbba | 335 | @echo `echo $(GOC_FOR_TARGET) | sed -e 's/ .*//'` `$(GOC_FOR_TARGET) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> gotools.sum |
336 | @echo >> gotools.log | |
337 | @echo "runtest completed at `date`" >> gotools.log | |
338 | @if grep '^FAIL' gotools.sum >/dev/null 2>&1; then exit 1; fi | |
6009a592 | 339 | |
33d1d391 | 340 | .PHONY: check check-head check-go-tool check-runtime check-cgo-test check-carchive-test check-vet |
6009a592 | 341 | |
dcfe52b6 | 342 | else |
343 | ||
344 | # For a non-native build we have to build the programs using a | |
345 | # previously built host (or build -> host) Go compiler. We should | |
346 | # only do this if such a compiler is available. We also need to get | |
347 | # the right values for GOARCH and GOOS in the default build context in | |
348 | # the go/build package. Figure this out later. | |
349 | ||
350 | endif |