@@ -34,6 +34,7 @@ echo.Other examples:
3434echo .
3535echo . build.cmd net40 (build compiler for .NET Framework)
3636echo . build.cmd coreclr (build compiler for .NET Core)
37+ echo . build.cmd buildfromsource (build compiler for .NET Core -- Verify that buildfromsource works)
3738echo . build.cmd vs (build Visual Studio IDE Tools)
3839echo . build.cmd all (build everything)
3940echo . build.cmd test (build and test default targets)
@@ -59,6 +60,7 @@ set BUILD_PHASE=1
5960set BUILD_NET40 = 0
6061set BUILD_NET40_FSHARP_CORE = 0
6162set BUILD_CORECLR = 0
63+ set BUILD_BUILDFROMSOURCE = 0
6264set BUILD_VS = 0
6365set BUILD_FCS = 0
6466set BUILD_CONFIG = release
@@ -145,6 +147,13 @@ if /i "%ARG%" == "coreclr" (
145147set _autoselect = 0
146148set BUILD_PROTO_WITH_CORECLR_LKG = 1
147149set BUILD_CORECLR = 1
150+ set BUILD_FROMSOURCE = 1
151+ )
152+
153+ if /i" %ARG% " == " buildfromsource" (
154+ set _autoselect = 0
155+ set BUILD_PROTO_WITH_CORECLR_LKG = 1
156+ set BUILD_FROMSOURCE = 1
148157)
149158
150159if /i" %ARG% " == " vs" (
@@ -387,6 +396,7 @@ echo BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG%
387396echo BUILD_NET40=%BUILD_NET40%
388397echo BUILD_NET40_FSHARP_CORE=%BUILD_NET40_FSHARP_CORE%
389398echo BUILD_CORECLR=%BUILD_CORECLR%
399+ echo BUILD_BUILDFROMSOURCE=%BUILD_BUILDFROMSOURCE%
390400echo BUILD_VS=%BUILD_VS%
391401echo BUILD_FCS=%BUILD_FCS%
392402echo BUILD_SETUP=%BUILD_SETUP%
@@ -542,6 +552,7 @@ if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
542552set _dotnetcliexe = %~dp0 Tools\dotnetcli\dotnet.exe
543553set _dotnet20exe = %~dp0 Tools\dotnet20\dotnet.exe
544554set NUGET_PACKAGES = %~dp0 Packages
555+ set path = %~dp0 Tools\dotnet20\;%path%
545556
546557set _fsiexe = " packages\FSharp.Compiler.Tools.4.1.5\tools\fsi.exe"
547558if not exist %_fsiexe% echo Error: Could not find%_fsiexe% && goto :failure
@@ -550,6 +561,14 @@ if not exist %_fsiexe% echo Error: Could not find %_fsiexe% && goto :failure
550561if not exist %_nugetexe% echo Error: Could not find%_nugetexe% && goto :failure
551562%_ngenexe% install%_nugetexe% /nologo
552563
564+ echo ---------------- Done with package restore, verify buildfrom source ---------------
565+ if " %BUILD_PROTO_WITH_CORECLR_LKG% " == " 1" (
566+ pushd src
567+ call buildfromsource.cmd
568+ @ if ERRORLEVEL1 echo Error: buildfromsource.cmd failed&& goto :failure
569+ popd
570+ )
571+
553572echo ---------------- Done with package restore, starting proto ------------------------
554573
555574rem Decide if Proto need building