14f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Copyright 2012 The Go Authors. All rights reserved. 24f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Use of this source code is governed by a BSD-style 34f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: license that can be found in the LICENSE file. 44f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 54f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Environment variables that control make.bat: 64f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 74f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GOROOT_FINAL: The expected final Go root, baked into binaries. 84f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: The default is the location of the Go tree during the build. 94f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 104f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GOHOSTARCH: The architecture for host tools (compilers and 114f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: binaries). Binaries of this type must be executable on the current 124f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: system, so the only common reason to set this is to set 134f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GOHOSTARCH=386 on an amd64 machine. 144f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 154f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GOARCH: The target architecture for installed packages and tools. 164f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 174f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GOOS: The target operating system for installed packages and tools. 184f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 194f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GO_GCFLAGS: Additional go tool compile arguments to use when 204f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: building the packages and commands. 214f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 224f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: GO_LDFLAGS: Additional go tool link arguments to use when 234f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: building the commands. 244f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 254f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: CGO_ENABLED: Controls cgo usage during the build. Set it to 1 264f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: to include all cgo related files, .c and .go file with "cgo" 274f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: build directive, in the build. Set it to 0 to ignore them. 284f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 294f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: CC: Command line to run to compile C code for GOHOSTARCH. 304f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Default is "gcc". 314f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 324f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: CC_FOR_TARGET: Command line to run compile C code for GOARCH. 334f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: This is used by cgo. Default is CC. 344f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: 354f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: FC: Command line to run to compile Fortran code. 364f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: This is used by cgo. Default is "gfortran". 374f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 384f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen@echo off 394f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 404f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Keep environment variables within this script 414f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: unless invoked with --no-local. 424f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%1==x--no-local goto nolocal 434f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%2==x--no-local goto nolocal 444f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsensetlocal 454f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:nolocal 464f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 474f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOBUILDFAIL=0 484f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 494f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif exist make.bat goto ok 504f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho Must run make.bat from Go src directory. 514f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsengoto fail 524f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:ok 534f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 544f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Clean old generated file that will cause problems in the build. 554f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsendel /F ".\pkg\runtime\runtime_defs.go" 2>NUL 564f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 574f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Set GOROOT for build. 584f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsencd .. 594f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOROOT=%CD% 604f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsencd src 614f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 624f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho ##### Building Go bootstrap tool. 634f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho cmd/dist 644f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif not exist ..\bin\tool mkdir ..\bin\tool 654f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif "x%GOROOT_BOOTSTRAP%"=="x" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\Go1.4 664f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif not exist "%GOROOT_BOOTSTRAP%\bin\go.exe" goto bootstrapfail 674f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsensetlocal 684f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOROOT=%GOROOT_BOOTSTRAP% 694f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOOS= 704f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOARCH= 714f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOBIN= 724f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen"%GOROOT_BOOTSTRAP%\bin\go" build -o cmd\dist\dist.exe .\cmd\dist 734f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenendlocal 744f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif errorlevel 1 goto fail 754f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen.\cmd\dist\dist env -w -p >env.bat 764f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif errorlevel 1 goto fail 774f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsencall env.bat 784f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsendel env.bat 794f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho. 804f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 814f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%1==x--dist-tool goto copydist 824f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%2==x--dist-tool goto copydist 834f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 844f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset buildall=-a 854f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%1==x--no-clean set buildall= 864f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen.\cmd\dist\dist bootstrap %buildall% -v 874f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif errorlevel 1 goto fail 884f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: Delay move of dist tool to now, because bootstrap cleared tool directory. 894f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenmove .\cmd\dist\dist.exe "%GOTOOLDIR%\dist.exe" 904f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho. 914f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 924f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif not %GOHOSTARCH% == %GOARCH% goto localbuild 934f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif not %GOHOSTOS% == %GOOS% goto localbuild 944f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsengoto mainbuild 954f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 964f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:localbuild 974f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho ##### Building packages and commands for host, %GOHOSTOS%/%GOHOSTARCH%. 984f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the 994f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:: host, however, use the host compiler, CC, from `cmd/dist/dist env` instead. 1004f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsensetlocal 1014f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOOS=%GOHOSTOS% 1024f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOARCH=%GOHOSTARCH% 1034f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen"%GOTOOLDIR%\go_bootstrap" install -gcflags "%GO_GCFLAGS%" -ldflags "%GO_LDFLAGS%" -v std cmd 1044f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenendlocal 1054f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif errorlevel 1 goto fail 1064f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho. 1074f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1084f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:mainbuild 1094f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho ##### Building packages and commands for %GOOS%/%GOARCH%. 1104f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsensetlocal 1114f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset CC=%CC_FOR_TARGET% 1124f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen"%GOTOOLDIR%\go_bootstrap" install -gcflags "%GO_GCFLAGS%" -ldflags "%GO_LDFLAGS%" -a -v std cmd 1134f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenendlocal 1144f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif errorlevel 1 goto fail 1154f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsendel "%GOTOOLDIR%\go_bootstrap.exe" 1164f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho. 1174f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1184f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%1==x--no-banner goto nobanner 1194f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen"%GOTOOLDIR%\dist" banner 1204f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:nobanner 1214f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1224f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsengoto end 1234f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1244f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:copydist 1254f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenmkdir "%GOTOOLDIR%" 2>NUL 1264f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsencopy cmd\dist\dist.exe "%GOTOOLDIR%\" 1274f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsengoto end 1284f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1294f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:bootstrapfail 1304f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho ERROR: Cannot find %GOROOT_BOOTSTRAP%\bin\go.exe 1314f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenecho "Set GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." 1324f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1334f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:fail 1344f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenset GOBUILDFAIL=1 1354f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsenif x%GOBUILDEXIT%==x1 exit %GOBUILDFAIL% 1364f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen 1374f7f559a4b744258a796dd591b11bd88e4a6dc7Dan Willemsen:end 138