build-support/factor.cmd: cleanups recommended by mnestic

db4
Joe Groff 2010-05-25 21:32:07 -07:00
parent d34b377c12
commit dc75f092fc
1 changed files with 41 additions and 51 deletions

View File

@ -1,51 +1,41 @@
@echo off
setlocal
if "%1"=="/?" (
goto usage
) else if "%1"=="" (
set _bootimage_version=latest
) else if "%1"=="latest" (
set _bootimage_version=latest
) else if "%1"=="clean" (
set _bootimage_version=clean
) else goto usage
if not exist Nmakefile goto wrongdir
call cl 2>&1 | find "x86" >nul
if not errorlevel 1 goto cl32
call cl 2>&1 | find "x64" >nul
if not errorlevel 1 goto cl64
goto nocl
:cl32
echo x86-32 cl.exe detected.
set _target="x86-32"
set _bootimage="boot.winnt-x86.32.image"
goto platformdefined
:cl64
echo x86-64 cl.exe detected.
set _target="x86-64"
set _bootimage="boot.winnt-x86.64.image"
goto platformdefined
:nocl
echo Unable to detect cl.exe target platform.
echo Make sure you're running within the Visual Studio or Windows SDK environment.
goto cleanup
:platformdefined
if "%1"=="/?" goto usage
if "%1"=="" (
set _bootimage_version="latest"
set _git_branch=master
if not errorlevel 1 (
echo x86-32 cl.exe detected.
set _target=x86-32
set _bootimage=boot.winnt-x86.32.image
) else (
call cl 2>&1 | find "x64" >nul
if not errorlevel 1 (
echo x86-64 cl.exe detected.
set _target=x86-64
set _bootimage=boot.winnt-x86.64.image
) else goto nocl
)
if "%1"=="latest" (
set _bootimage_version="latest"
set _git_branch=master
)
if "%1"=="clean" (
set _bootimage_version="clean"
if %_bootimage_version%==clean (
set _git_branch=clean-winnt-%_target%
set _bootimage_path=clean/winnt-%_target%
) else (
set _git_branch=master
set _bootimage_path=latest
)
if not defined _bootimage_version goto usage
echo Updating working copy...
echo Updating working copy from %_git_branch%...
call git pull http://factorcode.org/git/factor.git %_git_branch%
if errorlevel 1 goto fail
@ -56,27 +46,32 @@ nmake /nologo /f Nmakefile %_target%
if errorlevel 1 goto fail
echo Fetching %_bootimage_version% boot image...
cscript /nologo build-support\http-get.vbs http://factorcode.org/images/%_bootimage_version%/%_bootimage% %_bootimage%
cscript /nologo build-support\http-get.vbs http://factorcode.org/images/%_bootimage_path%/%_bootimage% %_bootimage%
if errorlevel 1 goto fail
echo Bootstrapping...
.\factor.com -i=%_bootimage%
if errorlevel 1 goto fail
echo Copying fresh factor.image to factor.image.fresh
echo Copying fresh factor.image to factor.image.fresh.
copy factor.image factor.image.fresh
if errorlevel 1 goto fail
echo Build complete.
goto cleanup
goto :EOF
:fail
echo Build failed.
goto cleanup
goto :EOF
:wrongdir
echo build-support\factor.cmd must be run from the root of the Factor source tree.
goto cleanup
goto :EOF
:nocl
echo Unable to detect cl.exe target platform.
echo Make sure you're running within the Visual Studio or Windows SDK environment.
goto :EOF
:usage
echo Usage: build-support\factor.cmd [latest/clean]
@ -88,10 +83,5 @@ echo most recent factor build is downloaded. This is the default.
echo If clean is specified, then the working copy is updated to the
echo upstream "clean-winnt-*" branch corresponding to the current
echo platform and the corresponding boot image is downloaded.
goto cleanup
goto :EOF
:cleanup
set _target=
set _bootimage=
set _bootimage_version=
set _git_branch=