aboutsummaryrefslogtreecommitdiff
path: root/src/make.bat
AgeCommit message (Collapse)Author
2021-08-11src/make.*: make --no-clean flag a no-op that prints a warningMatthew Dempsky
This flag is undocumented and is no longer useful. Users who want to install additional toolchains without cleaning the installed packages should just use `go install`. This CL changes cmd/dist to print a warning that --no-clean is deprecated and to advise users to use `go install std cmd` instead, and then otherwise ignores it: ``` $ ./make.bash --no-clean Building Go cmd/dist using $GOROOT_BOOTSTRAP. (devel +b7a85e0003 linux/amd64) warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead Building Go toolchain1 using $GOROOT_BOOTSTRAP. ``` Fixes #47204. Change-Id: I275031832098401a49e491e324e8de3427973630 Reviewed-on: https://go-review.googlesource.com/c/go/+/341392 Trust: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2020-09-13make.bat: fix compare between GOROOT and srcdir paths, when either contains ↵Dominic Della Valle
whitespace. CL 96455 brings CL 57753 to Windows However, a path comparison within it was left unquoted. If the Go source directory resides in a path containing whitespace, the interpreter will compare against the first portion of the path string, and treat the remainder as an expression. This patch amends that. For example, consider the path `C:\Users\Dominic Della Valle\Projects\Go\goroot\src` Issuing `make.bat` will print out `'Della' is not recognized as an internal or external command, operable program or batch file.` before proceeding. Change-Id: Ifcec159baeec940c29c61aa721c64c13c6fd8c14 GitHub-Last-Rev: 809ddbb4dbc80d834f8108ca44c2826016d78d1c GitHub-Pull-Request: golang/go#41319 Reviewed-on: https://go-review.googlesource.com/c/go/+/253898 Run-TryBot: Giovanni Bajo <rasky@develer.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Giovanni Bajo <rasky@develer.com> Trust: Giovanni Bajo <rasky@develer.com>
2020-06-08all: treat all files as binary, but check in .bat with CRLFDmitri Shuralyov
This is a followup to CL 96495. It should be simpler and more robust to achieve .bat files having CRLF line endings by treating it as a binary file, like all other files, and checking it in with the desired CRLF line endings. A test is used to check the entire Go tree, short of directories starting with "." and named "testdata", for any .bat files that have anything other than strict CRLF line endings. This will help catch any accidental modifications to existing .bat files or check ins of new .bat files. Importantly, this is compatible with how Gerrit serves .tar.gz files, making it so that CRLF line endings are preserved. The Go project is supported on many different environments, some of which may have limited git implementations available, or none at all. Relying on fewer git features and special rules makes it easier to have confidence in the exact content of all files. Additionally, Go development started in Subversion, moved to Perforce, then Mercurial, and now uses Git.¹ Reducing its reliance on git-specific features will help if there will be another transition in the project's future. There are only 5 .bat files in the entire Go source tree, so a new one being added is a rare event, and we prefer to do things in Go instead. We still have the option of improving the experience for developers by adding a pre-commit converter for .bat files to the git-codereview tool. ¹ https://groups.google.com/d/msg/golang-dev/sckirqOWepg/YmyT7dWJiocJ Fixes #39391. For #37791. Change-Id: I6e202216322872f0307ac96f1b8d3f57cb901e6b Reviewed-on: https://go-review.googlesource.com/c/go/+/236437 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2020-03-22build: add default GOROOT_BOOTSTRAP in WindowsGiovanni Bajo
CL 57753 added support to make.bash and make.rc to default GOROOT_BOOTSTRAP to 'go env GOROOT'. This patch does the same in make.bat for Windows. Updates #18545 Fixes #28641 Change-Id: I9152cc5080ed219b4de5bad0bd12d7725422ee1a Reviewed-on: https://go-review.googlesource.com/c/go/+/96455 Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2020-03-22build: force all Windows batch files to CRLFGiovanni Bajo
Batch files should use CRLF endings. LF endings mostly work but in some situations they cause random errors like goto commands failing for mysterious reasons. See golang.org/issue/37791 for more information. Next CL triggered one of such bug (a label was not being recognized), so prepare for it by converting to CRLF. This CL also touches all existing batch files to force git to update the line endings (unfortunately, changing .gitattributes only has effect next time the file is checked out or modified). Fixes #37791 Updates #9281 Change-Id: I6f9a114351cb7ac9881914400aa210c930eb8cc1 Reviewed-on: https://go-review.googlesource.com/c/go/+/96495 Run-TryBot: Giovanni Bajo <rasky@develer.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2019-04-23cmd/go: add env -w and env -u to set and unset default env varsRuss Cox
Setting environment variables for go command configuration is too difficult and system-specific. This CL adds go env -w, to change the default settings more easily, in a portable way. It also adds go env -u, to unset those changes. See https://golang.org/design/30411-env for details. Fixes #30411. Change-Id: I36e83f55b666459f8f7f482432a4a6ee015da71d Reviewed-on: https://go-review.googlesource.com/c/go/+/171137 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-03-11cmd,std: add go.mod filesBryan C. Mills
Updates #30241 Updates #30228 Change-Id: Ida0fe8263bf44e0498fed2048e22283ba5716835 Reviewed-on: https://go-review.googlesource.com/c/go/+/164622 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
2018-11-16build: clear GO111MODULE during make.bash etcRuss Cox
The standard build assumes the variable is unset. Make it so, like we do for GOFLAGS, GOBIN, and so on. Change-Id: I4ad5695f8021b08bd1a35dd99112970a813d247c Reviewed-on: https://go-review.googlesource.com/c/149959 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-08-25src/make.bat: add missing go.exe extensionGoo
Got error: 'go' is not an internal or external command, nor is it a runnable program Change-Id: Ie45a3a12252fa01b67ca09ef8fbb5b4bbf728fe7 GitHub-Last-Rev: 451815cacd9bfc509fa0aab3be54303797e605a2 GitHub-Pull-Request: golang/go#27214 Reviewed-on: https://go-review.googlesource.com/131397 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-08-25cmd/dist: fix compilation on windowsFlorin Pățan
Add missing extensions to binary files in order to allow execution. Change-Id: Idfe4c72c80c26b7b938023bc7bbe1ef85e1aa7b0 Change-Id: Idfe4c72c80c26b7b938023bc7bbe1ef85e1aa7b0 GitHub-Last-Rev: ed9d8124270c30b7f25f89656432ef5089466c7e GitHub-Pull-Request: golang/go#26464 Reviewed-on: https://go-review.googlesource.com/124936 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-08-01cmd/go: add $GOFLAGS environment variableRuss Cox
People sometimes want to turn on a particular go command flag by default. In Go 1.11 we have at least two different cases where users may need this. 1. Linking can be noticeably slower on underpowered systems due to DWARF, and users may want to set -ldflags=-w by default. 2. For modules, some users or CI systems will want vendoring always, so they want -getmode=vendor (soon to be -mod=vendor) by default. This CL generalizes the problem to “set default flags for the go command.” $GOFLAGS can be a space-separated list of flag settings, but each space-separated entry in the list must be a standalone flag. That is, you must do 'GOFLAGS=-ldflags=-w' not 'GOFLAGS=-ldflags -w'. The latter would mean to pass -w to go commands that understand it (if any do; if not, it's an error to mention it). For #26074. For #26318. Fixes #26585. Change-Id: I428f79c1fbfb9e41e54d199c68746405aed2319c Reviewed-on: https://go-review.googlesource.com/126656 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2018-02-26build: small cleanup in error message in make.batGiovanni Bajo
Contrary to bash, double quotes cannot be used to group arguments in Windows shell, so they were being printed as literals by the echo command. Since a literal '>' is present in the string, it is sufficient to escape it correctly through '^'. Change-Id: Icc8c92b3dc8d813825adadbe3d921a38d44a1a94 Reviewed-on: https://go-review.googlesource.com/97056 Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2017-10-31build: quiet make.bash, make.bat, make.rcRuss Cox
The signal-to-noise ratio is too low. Stop printing the name of every package. Can still get the old output with make.bash -v. Change-Id: Ib2c82e037166e6d2ddc31ae2a4d29af5becce574 Reviewed-on: https://go-review.googlesource.com/74351 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
2017-10-25build: move final steps of make.bash, make.bat, make.rc into cmd/distRuss Cox
This CL expands the job of "dist bootstrap" to be "finish make.bash". I need to change that logic in upcoming CLs related to cmd/go changes, and I'd rather not change it in three places in three different shell script languages. Change-Id: I545dc215e408289e4d0b28f7c2ffcd849d89ad3b Reviewed-on: https://go-review.googlesource.com/72870 Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-05-19build: unset GOBIN during buildBrad Fitzpatrick
Fixes #14340 Change-Id: I43e1624fafc972fb868708c3857fc8acf1bfbbd7 Reviewed-on: https://go-review.googlesource.com/23255 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2016-02-24cmd/go, go/build: add support for Fortrankortschak
This change adds support for Fortran files (.f, .F, .for, .f90) to the go tool, in a similar fashion to Objective-C/C++. Only gfortran is supported out of the box so far but leaves other Fortran compiler toolchains the ability to pass the correct link options via CGO_LDFLAGS. A simple test (misc/cgo/fortran) has been added and plugged into the general test infrastructure. This test is only enabled when the $FC environment variable is defined (or if 'gfortran' was found in $PATH.) Derived from CL 4114. Change-Id: Ifc855091942f95c6e9b17d91c17ceb4eee376408 Reviewed-on: https://go-review.googlesource.com/19670 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2015-06-17doc: replace references to {5..9}{g,l} with go tool compile and go tool linkJeremy Jackins
I updated some references to 6g, 6l and friends that I came across, as those programs don't exist anymore. I also fixed some echos in make.rc to match other make.* scripts while I was there. Change-Id: Ib84532cd4688cf65174dd9869e5d42af98a20a48 Reviewed-on: https://go-review.googlesource.com/11162 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-03-02build: update Windows make.bat to use CC_FOR_TARGET.Hyang-Ah (Hana) Kim
Change-Id: Ie4d8bedb9408372dff64e9a7fd857e1be4ee59e1 Reviewed-on: https://go-review.googlesource.com/6401 Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2015-02-23[dev.cc] cmd/go: fix expansion of 'std', add 'cmd'Russ Cox
The wildcard 'std' is defined in documentation to be all the packages in the Go standard library. It has also historically matched commands in the main repo, but as we implement core commands in Go, that becomes problematic. We need a wildcard that means just the library, and since 'std' is already documented to have that definition, make it so. Add a new wildcard 'cmd' for the commands in the main repo ($GOROOT). Commands that want both can say 'std cmd' (or 'cmd std') to get the effect of the old 'std'. Update make.bash etc to say both std and cmd most of the time. Exception: in race.bash, do not install race-enabled versions of the actual commands. This avoids trying to write binaries while using them, but more importantly it avoids enabling the race detector and its associated memory overhead for the already memory-hungry compilers. Change-Id: I26bb06cb13b636dfbe71a015ee0babeb270a0275 Reviewed-on: https://go-review.googlesource.com/5550 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2015-01-21[dev.cc] build: do not 'clean -i std' between dist and go_bootstrapRuss Cox
Executing 'clean -i std' removes installed Go programs, including the toolchain binaries we need for building. It's not clear why the 'clean -i std' is here in the first place. cmd/dist just removed the entire pkg tree, so everything is new. The only reason for 'clean -i std' would be if you don't trust that dist compiled the packages properly. If that's true for some reason, we can fix cmd/dist, or add -a to the install commands that follow. Perhaps clean -i std should not remove tools, or perhaps std should not expand to any tools. Not sure. Also remove banner from make.bat and make.rc that was already removed from make.bash. cmd/dist prints it now. Also fix array size error in liblink/objfile.c. Fixes dev.cc build. Change-Id: I60855e001a682efce55ad9aa307a8f3ee47f7366 Reviewed-on: https://go-review.googlesource.com/3100 Reviewed-by: Russ Cox <rsc@golang.org>
2015-01-14[dev.cc] build: do not pass GOHOSTOS and GOHOSTARCH to Go 1.4 buildRuss Cox
Go 1.4 should build what it knows how to build. GOHOSTOS and GOHOSTARCH are for the Go 1.5 build only. Change-Id: Id0f367f03485100a896e61cfdace4ac44a22e16d Reviewed-on: https://go-review.googlesource.com/2818 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-14[dev.cc] build: fix cross-compilationRuss Cox
Fixes #9574. Change-Id: Ifd7ecccb25e934f9aba284b2d72b6b22f18cb0b6 Reviewed-on: https://go-review.googlesource.com/2812 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-12build: update Windows make.bat for Go-based distBrad Fitzpatrick
These are corresponding Windows changes for the GOROOT_BOOTSTRAP and dist changes in https://golang.org/cl/2470 Change-Id: I21da2d63a60d8ae278ade9bb71ae0c314a2cf9b5 Reviewed-on: https://go-review.googlesource.com/2674 Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2014-12-13build: change all.bash output to be more markdown-friendlyRuss Cox
People keep pasting all.bash output into GitHub bugs, which turns the # lines into <h1> headlines. Add some more #s so that the bug reports are more readable. Not ideal but seems like the best of a few bad options. Change-Id: I4c69930ec304b2d504d7cd66221281a8577b87ae Reviewed-on: https://go-review.googlesource.com/1286 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2014-09-07build: fix windows make.batRuss Cox
The Unix make.bash builds cmd/dist from *.c. make.bat apparently does not. TBR=r CC=golang-codereviews https://golang.org/cl/137280043
2014-07-21make.bat: do not exit builder on successful completion of make.bat (fixes build)Alex Brainman
LGTM=dvyukov R=golang-codereviews, dvyukov CC=golang-codereviews https://golang.org/cl/118020043
2014-07-12make.bat: return exit code to dashboard builderAlex Brainman
Fixes #7806. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews https://golang.org/cl/104690043
2013-08-02cmd/dist: fix windows build.Rémy Oudompheng
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/12351045
2013-03-25all.bat,make.bat,run.bat: make these work even when directory has space in itAlex Brainman
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7510048
2013-03-12go/types: delete from main repo; part of move to go.expRob Pike
See also https://golang.org/cl/7656044 R=golang-dev, gri, rsc CC=golang-dev https://golang.org/cl/7625048
2013-03-06make.bash,bat: add -tags gotypes to the buildRob Pike
This installs type checking into go vet. (To be removed before releasing Go 1.1) R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7528044
2012-10-22lib9, cmd/dist, cmd/5l: embed GOARM into cmd/5l and auto detect GOARMShenghou Ma
R=rsc, dave CC=golang-dev https://golang.org/cl/6638043
2012-10-12cmd/dist: fix superfluous and confusing "binaries ... to be copied or moved" ↵Shenghou Ma
message Also, to aid debugging cmd/dist, make make.bat support --dist-tool flag. Fixes #3100. R=alex.brainman CC=golang-dev https://golang.org/cl/6637061
2012-03-20build: do more during windows buildAlex Brainman
- use GO_GCFLAGS and GO_LDFLAGS if supplied - build misc\dashboard\builder and misc\goplay - run tests in test\bench\go1 - check api compatibility R=golang-dev, r, kardianos, bradfitz CC=golang-dev https://golang.org/cl/5847063
2012-03-17make.bat: don't show error message if old generated files do not existShenghou Ma
R=golang-dev, alex.brainman, mattn.jp CC=golang-dev https://golang.org/cl/5843045
2012-03-16make.bat: Fix for old filesChristopher Redden
Same fix as applied here: https://golang.org/cl/5761044 Fixes #3222. R=golang-dev, alex.brainman, rsc CC=golang-dev https://golang.org/cl/5838043
2012-03-13make.bat: properly handle directories with spacesAlex Brainman
R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/5797079
2012-02-16make.bat, run.bat: echo newlinesHector Chu
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5671072
2012-02-16make.bat: implement --no-cleanAlex Brainman
R=golang-dev, r CC=golang-dev https://golang.org/cl/5656070
2012-02-16build: keep environment variable changes local during Windows buildAlex Brainman
R=bradfitz, rsc CC=golang-dev https://golang.org/cl/5673048
2012-02-13cmd/dist: cross-compiling fixesRuss Cox
This CL makes it possible to run make.bash with GOOS and GOARCH set to something other than the native host GOOS and GOARCH. As part of the CL, the tool directory moves from bin/tool/ to pkg/tool/goos_goarch where goos and goarch are the values for the host system (running the build), not the target. pkg/ is not technically appropriate, but C objects are there now tool (pkg/obj/) so this puts all the generated binaries in one place (rm -rf $GOROOT/pkg cleans everything). Including goos_goarch in the name allows different systems to share a single $GOROOT on a shared file system. Fixes #2920. R=golang-dev, r CC=golang-dev https://golang.org/cl/5645093
2012-02-12build: reject make.bash on WindowsRuss Cox
Also, echo cmd/dist during bootstrap build Makes that phase look like all the others. Fixes #2908. R=golang-dev, alex.brainman, bradfitz CC=golang-dev https://golang.org/cl/5655065
2012-02-10make.bat: remove double quotesAlex Brainman
Fixes #2974. R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/5653052
2012-02-09cmd/dist: fix GOROOT_FINALGustavo Niemeyer
R=rsc, gustavo CC=golang-dev https://golang.org/cl/5642045
2012-02-04build: dist-based build for windowsRuss Cox
R=golang-dev, bradfitz, iant, alex.brainman, go.peter.90 CC=golang-dev https://golang.org/cl/5630047