| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | @echo off | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | if not exist Nmakefile goto wrongdir | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-25 23:47:20 -04:00
										 |  |  | call cl 2>&1 | find "x86" >nul | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | if not errorlevel 1 ( | 
					
						
							|  |  |  |     echo x86-32 cl.exe detected. | 
					
						
							|  |  |  |     set _target=x86-32 | 
					
						
							| 
									
										
										
										
											2011-09-18 21:25:06 -04:00
										 |  |  |     set _bootimage=boot.windows-x86.32.image | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | ) else ( | 
					
						
							|  |  |  |     call cl 2>&1 | find "x64" >nul | 
					
						
							|  |  |  |     if not errorlevel 1 ( | 
					
						
							|  |  |  |         echo x86-64 cl.exe detected. | 
					
						
							|  |  |  |         set _target=x86-64 | 
					
						
							| 
									
										
										
										
											2011-09-18 21:25:06 -04:00
										 |  |  |         set _bootimage=boot.windows-x86.64.image | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  |     ) else goto nocl | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-19 11:34:29 -04:00
										 |  |  | git describe --all --long > git_label.tmp | 
					
						
							|  |  |  | set /p git_label= < git_label.tmp | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-11 03:16:00 -05:00
										 |  |  | set version=0.98 | 
					
						
							| 
									
										
										
										
											2013-08-19 11:34:29 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | if %_bootimage_version%==clean ( | 
					
						
							| 
									
										
										
										
											2011-09-18 21:25:06 -04:00
										 |  |  |     set _git_branch=clean-windows-%_target% | 
					
						
							|  |  |  |     set _bootimage_path=clean/windows-%_target% | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | ) else ( | 
					
						
							|  |  |  |     set _git_branch=master | 
					
						
							|  |  |  |     set _bootimage_path=latest | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-07 13:57:50 -04:00
										 |  |  | echo Deleting staging images from temp/... | 
					
						
							|  |  |  | del temp\staging.*.image | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | echo Updating working copy from %_git_branch%... | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | call git pull http://factorcode.org/git/factor.git %_git_branch% | 
					
						
							|  |  |  | if errorlevel 1 goto fail | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo Building vm... | 
					
						
							|  |  |  | nmake /nologo /f Nmakefile clean | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | if errorlevel 1 goto fail | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | nmake /nologo /f Nmakefile %_target% | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | if errorlevel 1 goto fail | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo Fetching %_bootimage_version% boot image... | 
					
						
							| 
									
										
										
										
											2010-09-27 23:29:09 -04:00
										 |  |  | cscript /nologo build-support\http-get.vbs http://downloads.factorcode.org/images/%_bootimage_path%/%_bootimage% %_bootimage% | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | if errorlevel 1 goto fail | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo Bootstrapping... | 
					
						
							|  |  |  | .\factor.com -i=%_bootimage% | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | if errorlevel 1 goto fail | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | echo Copying fresh factor.image to factor.image.fresh. | 
					
						
							| 
									
										
										
										
											2010-05-25 22:01:55 -04:00
										 |  |  | copy factor.image factor.image.fresh | 
					
						
							|  |  |  | if errorlevel 1 goto fail | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | echo Build complete. | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | goto :EOF | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | :fail | 
					
						
							|  |  |  | echo Build failed. | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | goto :EOF | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-25 21:50:22 -04:00
										 |  |  | :wrongdir | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | echo build-support\factor.cmd must be run from the root of the Factor source tree. | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | :usage | 
					
						
							|  |  |  | echo Usage: build-support\factor.cmd [latest/clean] | 
					
						
							|  |  |  | echo     Updates the working copy, cleans and builds the vm using nmake, | 
					
						
							|  |  |  | echo     fetches a boot image, and bootstraps factor. | 
					
						
							|  |  |  | echo     If latest is specified, then the working copy is updated to the | 
					
						
							|  |  |  | echo     upstream "master" branch and the boot image corresponding to the | 
					
						
							|  |  |  | echo     most recent factor build is downloaded. This is the default. | 
					
						
							|  |  |  | echo     If clean is specified, then the working copy is updated to the | 
					
						
							| 
									
										
										
										
											2011-09-18 21:25:06 -04:00
										 |  |  | echo     upstream "clean-windows-*" branch corresponding to the current | 
					
						
							| 
									
										
										
										
											2010-05-24 18:56:00 -04:00
										 |  |  | echo     platform and the corresponding boot image is downloaded. | 
					
						
							| 
									
										
										
										
											2010-05-26 00:32:07 -04:00
										 |  |  | goto :EOF |