7 set _bootimage_version=latest
8 ) else if "%1"=="latest" (
9 set _bootimage_version=latest
10 ) else if "%1"=="update" (
11 set _bootimage_version=latest
12 ) else if "%1"=="clean" (
13 set _bootimage_version=clean
16 if not exist Nmakefile goto wrongdir
18 call cl 2>&1 | find "x86" >nul
20 echo x86-32 cl.exe detected.
22 set _bootimage=boot.windows-x86.32.image
24 call cl 2>&1 | find "x64" >nul
26 echo x86-64 cl.exe detected.
28 set _bootimage=boot.windows-x86.64.image
33 for /f %%x in ('git describe --all') do set GIT_DESCRIBE=%%x
34 for /f %%y in ('git rev-parse HEAD') do set GIT_ID=%%y
35 for /f %%z in ('git rev-parse --abbrev-ref HEAD') do set GIT_BRANCH=%%z
37 set git_label=%GIT_DESCRIBE%-%GIT_ID%
40 echo Deleting staging images from temp/...
41 del temp\staging.*.image
43 echo Updating working copy from %GIT_BRANCH%...
44 call git pull git://factorcode.org/git/factor.git %GIT_BRANCH%
45 if errorlevel 1 goto fail
48 nmake /nologo /f Nmakefile clean
49 if errorlevel 1 goto fail
51 nmake /nologo /f Nmakefile %_target%
52 if errorlevel 1 goto fail
54 echo Fetching %_bootimage_version% boot image...
55 set boot_image_url=http://downloads.factorcode.org/images/%GIT_BRANCH%/%_bootimage% %_bootimage%
56 echo URL: %boot_image_url%
57 cscript /nologo misc\http-get.vbs %boot_image_url% %_bootimage%
58 if errorlevel 1 goto fail
61 .\factor.com -i=%_bootimage%
62 if errorlevel 1 goto fail
64 echo Copying fresh factor.image to factor.image.fresh.
65 copy factor.image factor.image.fresh
66 if errorlevel 1 goto fail
76 echo build.cmd must be run from the root of the Factor source tree.
80 echo Unable to detect cl.exe target platform.
81 echo Make sure you're running within the Visual Studio or Windows SDK environment.
86 echo Updates the working copy, cleans and builds the vm using nmake,
87 echo fetches a boot image, and bootstraps factor.
88 echo The branch that bootstraps is the one that is checked out locally.