From 4c450202b04c060cc38d0cb592e47c32fbd78ded Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 16 Dec 2021 12:23:23 -0800 Subject: [PATCH] build.cmd: make it a little more consistent with build.sh. --- build.cmd | 96 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 27 deletions(-) diff --git a/build.cmd b/build.cmd index 57d01d143a..209910e87e 100644 --- a/build.cmd +++ b/build.cmd @@ -10,15 +10,40 @@ if not defined GIT_BRANCH ( if "%1"=="/?" ( goto usage ) else if "%1"=="" ( - set _bootimage_version=%GIT_BRANCH% + set _git_pull=1 + set _compile_vm=1 + set _bootimage="download" + set _bootstrap_factor=1 ) else if "%1"=="latest" ( - set _bootimage_version=%GIT_BRANCH% + set _git_pull=1 + set _compile_vm=1 + set _bootimage="download" + set _bootstrap_factor=1 ) else if "%1"=="update" ( - set _bootimage_version=%GIT_BRANCH% + set _git_pull=1 + set _compile_vm=1 + set _bootimage="download" + set _bootstrap_factor=1 +) else if "%1"=="compile" ( + set _git_pull=0 + set _compile_vm=1 + set _bootimage="current" + set _bootstrap_factor=0 +) else if "%1"=="self-bootstrap" ( + set _git_pull=1 + set _compile_vm=0 + set _bootimage="make" + set _bootstrap_factor=1 +) else if "%1"=="bootstrap" ( + set _git_pull=0 + set _compile_vm=0 + set _bootimage="current" + set _bootstrap_factor=1 ) else if "%1"=="net-bootstrap" ( - set _bootimage_version=%GIT_BRANCH% -) else if "%1"=="clean" ( - set _bootimage_version=clean + set _git_pull=0 + set _compile_vm=1 + set _bootimage="download" + set _bootstrap_factor=1 ) else goto usage if not exist Nmakefile goto wrongdir @@ -40,32 +65,42 @@ if not errorlevel 1 ( echo Deleting staging images from temp/... del temp\staging.*.image -if not "%1"=="net-bootstrap" ( - echo Updating working copy from %GIT_BRANCH%... - call git pull https://github.com/factor/factor %GIT_BRANCH% - if errorlevel 1 goto fail +if "%_git_pull%"=="1" ( + echo Updating working copy from %GIT_BRANCH%... + call git pull https://github.com/factor/factor %GIT_BRANCH% + if errorlevel 1 goto fail ) -echo Building vm... -nmake /nologo /f Nmakefile clean -if errorlevel 1 goto fail +if "%_compile_vm%"=="1" ( + echo Building vm... + nmake /nologo /f Nmakefile clean + if errorlevel 1 goto fail -nmake /nologo /f Nmakefile %_target% -if errorlevel 1 goto fail + nmake /nologo /f Nmakefile %_target% + if errorlevel 1 goto fail +) -echo Fetching %_bootimage_version% boot image... -set boot_image_url=http://downloads.factorcode.org/images/%GIT_BRANCH%/%_bootimage% %_bootimage% -echo URL: %boot_image_url% -cscript /nologo misc\http-get.vbs %boot_image_url% %_bootimage% -if errorlevel 1 goto fail +if "%_bootimage%"=="download" ( + echo Fetching %GIT_BRANCH% boot image... + set boot_image_url=http://downloads.factorcode.org/images/%GIT_BRANCH%/%_bootimage% %_bootimage% + echo URL: %boot_image_url% + cscript /nologo misc\http-get.vbs %boot_image_url% %_bootimage% + if errorlevel 1 goto fail +) else if "%_bootimage%"=="make" ( + echo Making boot image... + .\factor.com -run=bootstrap.image %_bootimage% + if errorlevel 1 goto fail +) -echo Bootstrapping... -.\factor.com -i=%_bootimage% -if errorlevel 1 goto fail +if "%_bootstrap_factor%"=="1" ( + echo Bootstrapping... + .\factor.com -i=%_bootimage% + if errorlevel 1 goto fail -echo Copying fresh factor.image to factor.image.fresh. -copy factor.image factor.image.fresh -if errorlevel 1 goto fail + echo Copying fresh factor.image to factor.image.fresh. + copy factor.image factor.image.fresh + if errorlevel 1 goto fail +) echo Build complete. goto :EOF @@ -84,8 +119,15 @@ echo Make sure you're running within the Visual Studio or Windows SDK environmen goto :EOF :usage -echo Usage: build.cmd +echo Usage: build.cmd [command] echo Updates the working copy, cleans and builds the vm using nmake, echo fetches a boot image, and bootstraps factor. +echo echo The branch that bootstraps is the one that is checked out locally. +echo +echo compile - recompile vm +echo update - git pull, recompile vm, download a boot image, bootstrap +echo self-bootstrap - git pull, make a boot image, bootstrap +echo bootstrap - git pull, existing boot image, bootstrap +echo net-bootstrap - recompile vm, download a boot image, bootstrap goto :EOF -- 2.34.1