[ipoib] mcast garbage collector and igmp V2 support. (mlnx: 2850)
[mirror/winof/.git] / BuildRelease.bat
index 42fba41..320f52a 100644 (file)
@@ -6,18 +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}\r
-rem\r
-rem where:\r
-rem    all - recompile, install binaries to WIX tree, sign drivers and\r
-rem          build installers.\r
-rem    compile - recompile/link\r
-rem    makebin - assumes binaries are built, install binaries to WIX tree.\r
-rem    msi - assumes binaries are install in WIX tree, sign drivers and\r
-rem          create installers (.msi file) in IDIR.\r
+rem BuildRelease option\r
+rem  option == all | allnoforce | compile | compilenoforce | makebin | msi | wix | clean {OPENIB_REV}\r
 rem\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
@@ -28,19 +22,61 @@ 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 }"\r
+\r
+echo "usage: BuildRelease all | allnoforce | compile | compilenoforce | makebin | msi | wix | clean {OPENIB_REV value}"\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
+echo :\r
+echo    {OPENIB_REV}\r
+echo       optional, if set then OPENIB_REV is assigned this value.\r
+echo           example: BuildRelease all 1414\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
 rem A Digital driver signing certificate store name may be required.\r
 if "%1" == "all" (\r
-    if "%CERTNAME%" == "" set /P CERTNAME=[Enter Certificate Store Name] \r
+    if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
     if "%CERTNAME%" == "" (\r
         echo %0\r
         echo %0: Err - driver signing certificate store name required.\r
@@ -48,8 +84,9 @@ if "%1" == "all" (
         exit /B 1\r
     )\r
 )\r
+\r
 if "%1" == "msi" (\r
-    if "%CERTNAME%" == "" set /P CERTNAME=[Enter Certificate Store Name] \r
+    if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
     if "%CERTNAME%" == "" (\r
         echo %0\r
         echo %0: Err - driver signing certificate store name required.\r
@@ -66,18 +103,23 @@ if NOT EXIST %_DDK% (
     echo Missing WDK @ %_DDK%\r
     exit /B 1\r
 )\r
-echo Building with DDK @ %_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
 \r
-rem WARNING - SVN set depends on the path '\openIB-windows-svn\xxx\gen1', where SVN is set to XXX\r
-rem  substring[23rd...26th] chars (offset counting) == xxxx\r
+rem setup value for OPENIB_REV assignment.\r
 \r
-rem If this example method doesn't fit your environment, set SVN accordingly.\r
-rem Note - OPENIB_REV is assigned SVN in a child script.\r
+if not "%2" == "" (\r
+    set SVN=%2\r
+) else (\r
+    rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',\r
+    rem where SVN is set to XXX\r
+    rem  substring[23rd...26th] chars (offset counting) == xxxx\r
+    rem Note - OPENIB_REV is assigned SVN in a child script.\r
 \r
-set SVN=%CD:~22,4%\r
+    set SVN=%CD:~22,4%\r
+)\r
 \r
 rem assumes %CD% == '...\gen1\trunk'\r
 set BSE=%CD%\r
@@ -88,7 +130,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
@@ -108,7 +150,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
@@ -118,113 +160,139 @@ 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
 \r
 rem skip build - assumes binaries already built.\r
 \r
-if "%1" == "msi" goto InstallBin\r
+if "%1" == "wix" (\r
+    set CERTNAME=nosign\r
+    goto mk_msi\r
+)\r
+\r
+if "%1" == "msi" (\r
+    if not EXIST "%RBIN_WLH%"  goto InstallBin\r
+    if not EXIST "%RBIN_WNET%" goto InstallBin\r
+    if not EXIST "%RBIN_WXP%"  goto InstallBin\r
+    goto mk_msi\r
+)\r
+\r
 if "%1" == "makebin" goto InstallBin\r
 \r
-rem set OPS=-wgcM 3\r
-set OPS=-wg\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
+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
 \r
 rem ********* WXP - Windows XP - x86 only\r
 \r
-rem Fix XP WSD/installsp.exe build problems\r
-\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
-rem restore WSD/installsp builds\r
-if exist .\ulp\wsd\Xdirs           rename .\ulp\wsd\Xdirs dirs  \r
-if exist .\tools\wsdinstall\Xdirs  rename .\tools\wsdinstall\Xdirs dirs\r
-\r
-\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
-\r
-if "%1" == "compile" (\r
-    echo .\r
-    echo %0: Finished %0 %*\r
-       exit /B 0\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
 :InstallBin\r
+\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
@@ -232,23 +300,26 @@ if EXIST "%BSE%\etc\makebin.bat" (
     )\r
 )\r
 \r
-if "%1" == "makebin" (\r
-    echo .\r
-    echo %0: Finished %0 %*\r
-    exit /B 0\r
-)\r
+if "%1" == "makebin" goto finito\r
+\r
+:mk_msi\r
 \r
-echo %0 - Binary releases built in\r
+echo %0 - Drivers Signed with %CERTNAME% , Binary releases built in\r
 echo     %RBIN_WLH%\r
 echo     %RBIN_WNET%\r
 echo     %RBIN_WXP%\r
 \r
 rem build WIX installers --> see ..\branches\WinOF\WIX\r
 \r
-%COMSPEC% /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %CERTNAME% %IDIR%"\r
+%COMSPEC% /V:on /E:on /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %CERTNAME% %IDIR%"\r
+\r
+\r
+:finito\r
 \r
 echo .\r
 echo %0: Finished %0 %*\r
+echo %0:   Started  %STIME%\r
+echo %0:   Finished %TIME%\r
 \r
 endlocal\r
 @echo on\r