[WINOF] introduce new cmds 'allnf path' & 'compnf path' to work around a bug in the...
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 11 Dec 2009 21:14:34 +0000 (21:14 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 11 Dec 2009 21:14:34 +0000 (21:14 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2632 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

WinOF/BuildRelease.bat

index 8dc7264..2074184 100644 (file)
@@ -1,16 +1,18 @@
 @echo off\r
 setlocal\r
 rem tabstop=4\r
-rem\r
+\r
+rem version: 2.1.0\r
+\r
 rem EXAMPLE - Build entire openIB-windows release & WIX installers (.msi) files.\r
 rem           Binary release is constructed in WinOF\Wix\OS\bin.\r
 rem           Processor architecture specific WIX installers are constructed\r
 rem           in %IDIR%\r
 rem\r
 rem BuildRelease option\r
-rem  option: all | allnoforce | allf | compile | compilenoforce | compf path |\r
-rem          compnf path | makebin | msi |sign | wix | clean | msi-label |\r
-rem          msi-del | msi-dir {OPENIB_REV}\r
+rem  option: all | allnoforce | allf | allnf | compile | compilenoforce |\r
+rem          compf path | compnf path | makebin | msi |sign | wix | clean |\r
+rem          msi-label | msi-del | msi-dir {OPENIB_REV}\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 releases.\r
@@ -20,22 +22,32 @@ rem
 rem Verify the following env vars are suitible for your system configuration.\r
 rem     _DDK, _PSDK, SVN, IDIR\r
 \r
+rem 'nf path' command variants are required due to a bug in the WDK build env.\r
+rem ipoib\ & ipoib_ndis6_cm\ both build ipoib.sys just for different OS\r
+rem versions. The problem arises when a compile is forced on one folder or the\r
+rem other, all instances of ipoib.sys are deleted\r
+\r
+\r
 if "%1" == "" goto usage\r
 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" == "allf" (\r
+:allf\r
     if "%2" == "" goto usage\r
+    set FPATH=%2\r
     if exist "%2" goto OK\r
        echo %0 Err - path .\%2 does not exist?\r
        exit /B 1\r
 )\r
+if "%1" == "allnf" goto allf\r
 if "%1" == "compile" goto OK\r
 if "%1" == "compilenoforce" goto OK\r
 if "%1" == "compf" (\r
 :cpf\r
     if "%2" == "" goto usage\r
+    set FPATH=%2\r
     if exist "%2" goto OK\r
        echo %0 Err - path .\%2 does not exist?\r
        exit /B 1\r
@@ -62,6 +74,8 @@ echo    allnoforce - recompile only if needed, makebin, sign drivers and
 echo                 build installers.\r
 echo    allf path - force recompile the specified folder, makebin,\r
 echo                sign drivers and build installers.\r
+echo    allnf path - recompile specified folder ONLY if required, makebin,\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    compf path - force recompile (all arch*) specified folder\r
@@ -141,6 +155,7 @@ rem A Digital driver signing certificate store name may be required.
 \r
 if "%1" == "all" goto chk_cert\r
 if "%1" == "allf" goto chk_cert\r
+if "%1" == "allnf" goto chk_cert\r
 if "%1" == "msi" goto chk_cert\r
 if "%1" == "sign" goto chk_cert\r
 \r
@@ -206,15 +221,12 @@ rem to contain the SVN number to use.
 rem set USE_SVN=1748\r
 set USE_SVN=latest\r
 \r
-if "%1" == "allf" (\r
-:fp\r
-       set FPATH=%2\r
-       goto svn\r
-)\r
-if "%1" == "compf" goto fp\r
-if "%1" == "compnf" goto fp\r
+rem %2 can be either a file spec or IPENIB_REV value.\r
+rem Based on %1 command, FPATH will/will-not be set to a file spec.\r
+\r
+if Not "%FPATH%" == "" goto svn\r
 \r
-rem setup value for OPENIB_REV assignment; AND supported by if would be nice.\r
+rem setup value for OPENIB_REV assignment\r
 if not "%2" == "" (\r
        rem set SVN commit number.\r
        set SVN=%2\r
@@ -393,12 +405,16 @@ if "%1" == "allf" (
     rem Force Compile everything\r
     set OPS=-wgcfPM 3\r
 )\r
+if "%1" == "allnf" (\r
+    rem Compile only if necessary\r
+    set OPS=-wgPM 3\r
+)\r
 if "%1" == "compf" (\r
     rem Force Compile everything\r
     set OPS=-wgcfPM 3\r
 )\r
 if "%1" == "compnf" (\r
-    rem Force Compile everything\r
+    rem Compile only if necessary\r
     set OPS=-wgPM 3\r
 )\r
 \r
@@ -426,7 +442,7 @@ set WINOF_PATH=%CD%
 set OPENIB_REV=%SVN%\r
 if not DEFINED PLATFORM_SDK_PATH  set PLATFORM_SDK_PATH=%_PSDK%\r
 \r
-rem Compile in a specific folder? compf | compnf | allf\r
+rem Compile in a specific folder? compf | compnf | allf | allnf\r
 if EXIST "%FPATH%" pushd %FPATH%\r
 \r
 rem ********* Compile for win7 - Windows 7\r
@@ -515,7 +531,7 @@ echo %0 - Build WNET ia64 Free
 %COMSPEC% /C "%BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"\r
 if ERRORLEVEL 1 exit /B 1\r
 \r
-rem compnf | compf | allf\r
+rem compnf | compf | allf | allnf\r
 if EXIST "%FPATH%" popd\r
 \r
 if "%1" == "compf" goto finito\r