[WinOF] added clean option, clearer usage test, cleanup.
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 11 Jul 2008 19:08:03 +0000 (19:08 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 11 Jul 2008 19:08:03 +0000 (19:08 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1371 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

BuildRelease.bat

index f88523e..5dd10f6 100644 (file)
@@ -6,29 +6,12 @@ rem           Binary release is constructed in ..\Branches\WinOF\Wix\OS\bin.
 rem           Processor architecture specific WIX installers are constructed\r
 rem           in %IDIR%\r
 rem\r
-rem BuildRelease {all | compile | makebin | msi | wix}\r
+rem BuildRelease option\r
+rem  option == all | allnoforce | compile | compilenoforce | makebin | msi | wix | clean\r
 rem\r
-rem where:\r
-rem    all - recompile, install binaries to WIX tree, sign drivers and\r
-rem          build installers.\r
-\r
-rem    compile - recompile/link\r
-\r
-rem    makebin - assumes binaries are built, will installs binaries to WIX tree\r
-rem              sign drivers + builds installers (.msi files) in IDIR.\r
-\r
-rem    msi - assumes binaries are installed in WIX tree, will sign drivers and\r
-rem          create installers (.msi files) in IDIR.\r
-\r
-rem    wix - build .msi installers, assumes (drivers signed) & .cat files exist\r
-rem\r
-rem Common invocations are:\r
-rem    buildrelease compile\r
-rem    buildrelease msi\r
-rem    buildrelease all\r
 \r
 rem This script is an 'example' of a one-command entire IB stack build to\r
-rem single-file installer; used to build a WinOF release.\r
+rem single-file installer; used to build a WinOF releases.\r
 rem Script is designed to be invoked from the <whatever>\gen1\trunk folder with\r
 rem <whatever>\branches\WinOF\Wix\* accessible.\r
 rem\r
@@ -39,17 +22,51 @@ if "%1" == "" goto usage
 if "%1" == "/?" goto usage\r
 if "%1" == "-h" goto usage\r
 if "%1" == "all" goto OK\r
+if "%1" == "allnoforce" goto OK\r
 if "%1" == "compile" goto OK\r
+if "%1" == "compilenoforce" goto OK\r
 if "%1" == "makebin" goto OK\r
 if "%1" == "msi" goto OK\r
 if "%1" == "wix" goto OK\r
+if "%1" == "clean" goto OK\r
+\r
 echo Unknown arg '%1' ?\r
+\r
 :usage\r
-echo "usage: BuildRelease { all | compile | makebin | msi | wix }"\r
+\r
+echo "usage: BuildRelease { all | allnoforce | compile | compilenoforce | makebin | msi | wix | clean}"\r
+echo where:\r
+echo    all - force recompile, install binaries to WIX tree, sign drivers and\r
+echo          build installers.\r
+\r
+echo    allnoforce - recompile only if needed, install binaries to WIX tree,\r
+echo                 sign drivers and build installers.\r
+echo    compile - force a recompile/link of everything then exit.\r
+echo    compilenoforce - recompile/link only if needed then exit.\r
+echo    makebin - assumes binaries are built, will installs binaries to WIX tree\r
+echo              then exit.\r
+echo    msi - assumes binaries are installed in WIX tree, signs drivers and\r
+echo          create installers (.msi files) in IDIR.\r
+echo    wix - build .msi installers, assumes (drivers signed) .cat files exist\r
+echo    clean - remove build artifacts for a clean build: .obj, .sys, ...\r
+\r
 exit /B 1 \r
 \r
 :OK\r
 \r
+if not "%WDM_INC_PATH%" == "" (\r
+    echo %0: Error - %0 unable to run from WDK window,\r
+    echo     use %comspec%\r
+    exit /B 1\r
+)\r
+\r
+rem remove build artifacts\r
+if "%1" == "clean" (\r
+    echo Removing build artifacts and folders...\r
+    call %CD%\etc\clean-build.bat\r
+    exit /B 0\r
+)\r
+\r
 rem set CERTNAME=noCert\r
 set CERTNAME=cse1CStore\r
 \r
@@ -82,7 +99,7 @@ if NOT EXIST %_DDK% (
     echo Missing WDK @ %_DDK%\r
     exit /B 1\r
 )\r
-echo Building with WDK @ %_DDK%\r
+echo %0 - Building with WDK @ %_DDK%\r
 \r
 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)\r
 set _PSDK=C:\progra~1\mi2578~1\r
@@ -104,7 +121,7 @@ set RBIN_WNET=%WIX%\wnet\bin%
 set RBIN_WXP=%WIX%\wxp\bin%\r
 \r
 if NOT EXIST "..\branches\WinOF\WIX\build-all-MSI.bat" (\r
-    echo Missing .msi installer build script\r
+    echo %0 - Missing .msi installer build script\r
     echo    ..\branches\WinOF\WIX\build-all-MSI.bat\r
     exit /B 1\r
 )\r
@@ -124,7 +141,7 @@ if exist %windir%\system32\timeout.exe (
 )\r
 \r
 if NOT EXIST "%IDIR%" (\r
-    echo Missing Installer file destination folder %IDIR%\r
+    echo %0 - Missing Installer file destination folder %IDIR%\r
     exit /B 1\r
 )\r
 \r
@@ -134,12 +151,12 @@ rem   select wix-2.0.5325.0-binaries.zip download and unzip to
 rem   ..\branches\WinOF\WIX\WIX_tools\\r
 rem\r
 if NOT EXIST %WIX%\WIX_tools\wix-2.0.5325.0-binaries (\r
-    echo Missing WIX tools @ %WIX%\WIX_tools \r
+    echo %0 - Missing WIX tools @ %WIX%\WIX_tools \r
     exit /B 1\r
 )\r
 \r
 if NOT EXIST etc\makebin.bat (\r
-    echo Missing etc\makebin.bat, script must run from gen1\trunk\r
+    echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk\r
     exit /B 1\r
 )\r
 set STIME=%TIME%\r
@@ -160,28 +177,45 @@ if "%1" == "msi" (
 \r
 if "%1" == "makebin" goto InstallBin\r
 \r
-rem Compile everything\r
+set OPS=-wgcPM 3\r
+if "%1" == "allnoforce" (\r
+    rem Compile everything only if needed.\r
+    set OPS=-wgPM 3\r
+)\r
+if "%1" == "compilenoforce" (\r
+    rem Compile everything only if needed.\r
+    set OPS=-wgPM 3\r
+)\r
 \r
-set OPS=-wgcM 3\r
+if "%1" == "all" (\r
+    echo Removing build artifacts and folders...\r
+    call %CD%\etc\clean-build.bat\r
+)\r
 \r
-rem ********* WLH - Windows Server 2008 & Vista\r
+rem ********* Compile for WLH - Windows Server 2008 & Vista\r
 \r
 rem WLH x64\r
+echo %0 - Build WLH x64 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WLH x64 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
 rem WLH x86\r
 \r
+echo %0 - Build WLH x86 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WLH x86 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
 rem WLH ia64\r
+echo %0 - Build WLH ia64 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WLH ia64 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
@@ -192,10 +226,11 @@ rem Fix XP WSD/installsp.exe build problems
 \r
 if exist .\ulp\wsd\dirs                  rename .\ulp\wsd\dirs Xdirs\r
 if exist .\tools\wsdinstall\dirs  rename .\tools\wsdinstall\dirs Xdirs\r
-\r
+echo %0 - Build XP x86 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
+echo %0 - Build XP x86 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
@@ -206,23 +241,29 @@ if exist .\tools\wsdinstall\Xdirs  rename .\tools\wsdinstall\Xdirs dirs
 \r
 \r
 rem ********* WNET - Windows Server 2003\r
-\r
+echo %0 - Build WNET x64 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WNET x64 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
+echo %0 - Build WNET x86 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WNET x86 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
+echo %0 - Build WNET ia64 Checked\r
 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
+echo %0 - Build WNET ia64 Free\r
 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
 if "%1" == "compile" goto finito\r
+if "%1" == "compilenoforce" goto finito\r
 \r
 rem Install binaries into WIX environment, build msi installers.\r
 \r
@@ -230,25 +271,28 @@ rem Install binaries into WIX environment, build msi installers.
 \r
 echo Create binary release tree - suitible for WinOF-WIX installer build.\r
 \r
-if EXIST "%RBIN_WLH%"  rmdir /S /Q %RBIN_WLH%\r
-if EXIST "%RBIN_WNET%" rmdir /S /Q %RBIN_WNET%\r
-if EXIST "%RBIN_WXP%"  rmdir /S /Q %RBIN_WXP%\r
+if EXIST "%RBIN_WLH%"  (rmdir /S /Q %RBIN_WLH% &  echo %0 - removed %RBIN_WLH%)\r
+if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)\r
+if EXIST "%RBIN_WXP%"  (rmdir /S /Q %RBIN_WXP% &  echo %0 - removed %RBIN_WXP%)\r
 \r
 mkdir %RBIN_WLH%\r
 mkdir %RBIN_WNET%\r
 mkdir %RBIN_WXP%\r
 \r
 if EXIST "%BSE%\etc\makebin.bat" (\r
+    echo etc\makebin.bat %BSE% %RBIN_WLH% wlh\r
     call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh\r
     if ERRORLEVEL 1 (\r
         echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh\r
         exit /B 1\r
     )\r
+    echo etc\makebin.bat %BSE% %RBIN_WNET% wnet\r
     call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet\r
     if ERRORLEVEL 1 (\r
         echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet\r
         exit /B 1\r
     )\r
+    echo etc\makebin.bat %BSE% %RBIN_WXP% wxp\r
     call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp\r
     if ERRORLEVEL 1 (\r
         echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp\r