5 rem EXAMPLE - Build entire openIB-windows release & WIX installers (.msi) files.
\r
6 rem Binary release is constructed in WinOF\Wix\OS\bin.
\r
7 rem Processor architecture specific WIX installers are constructed
\r
10 rem BuildRelease option
\r
11 rem option: all | allnoforce | allf | compile | compilenoforce | compf path |
\r
12 rem makebin | msi |sign | wix | clean | msi-label | msi-del |
\r
13 rem msi-dir {OPENIB_REV}
\r
15 rem This script is an 'example' of a one-command entire IB stack build to
\r
16 rem single-file installer; used to build a WinOF releases.
\r
17 rem Script is designed to be invoked from the <whatever>\gen1\trunk folder with
\r
18 rem <whatever>\gen1\trunk\WinOF\Wix\* present.
\r
20 rem Verify the following env vars are suitible for your system configuration.
\r
21 rem _DDK, _PSDK, SVN, IDIR
\r
23 if "%1" == "" goto usage
\r
24 if "%1" == "/?" goto usage
\r
25 if "%1" == "-h" goto usage
\r
26 if "%1" == "all" goto OK
\r
27 if "%1" == "allnoforce" goto OK
\r
29 if "%2" == "" goto usage
\r
30 if exist "%2" goto OK
\r
31 echo %0 Err - path .\%2 does not exist?
\r
34 if "%1" == "compile" goto OK
\r
35 if "%1" == "compilenoforce" goto OK
\r
36 if "%1" == "compf" (
\r
37 if "%2" == "" goto usage
\r
38 if exist "%2" goto OK
\r
39 echo %0 Err - path .\%2 does not exist?
\r
42 if "%1" == "makebin" goto OK
\r
43 if "%1" == "msi" goto OK
\r
44 if "%1" == "sign" goto OK
\r
45 if "%1" == "wix" goto OK
\r
46 if "%1" == "clean" goto OK
\r
47 if "%1" == "msi-label" goto OK
\r
48 if "%1" == "msi-del" goto OK
\r
49 if "%1" == "msi-dir" goto OK
\r
51 echo Unknown arg '%1' ?
\r
55 echo "usage: BuildRelease command {OPENIB_REV value}"
\r
56 echo where 'command' may be:
\r
57 echo all - force recompile, install binaries to WIX tree(makebin),
\r
58 echo sign drivers and build installers.
\r
59 echo allnoforce - recompile only if needed, makebin, sign drivers and
\r
60 echo build installers.
\r
61 echo allf path - force recompile the specified folder, makebin,
\r
62 echo sign drivers and build installers.
\r
63 echo compile - force a recompile/link of everything then exit.
\r
64 echo compilenoforce - recompile/link only if needed then exit.
\r
65 echo compf path - force recompile (all arch*) specified folder
\r
66 echo makebin - assumes binaries are built, installs binaries to WIX tree
\r
68 echo msi - assumes binaries are installed in WIX tree, signs drivers and
\r
69 echo create installers (.msi files) in IDIR.
\r
70 echo sign - assumes binaries are built and installed, sign drivers, exit.
\r
71 echo wix - build .msi installers, assumes (drivers signed) .cat files exist
\r
72 echo clean - remove build artifacts for a clean build: .obj, .sys, ...
\r
73 echo msi-label {OPENIB_REV}
\r
74 echo rename WOF_os*_arch*.msi to WOF_os*_arch*_svn#.msi
\r
75 echo Uniquely identify installers just created.
\r
76 echo If OPENIB_REV arg used, then rename WOF_os*_arch*argVal.msi
\r
77 echo otherwise, use SVN# from path.
\r
78 echo msi-del - del %windir%\temp\WOF_os*_arch*.msi
\r
79 echo msi-dir - del %windir%\temp\WOF_os*_arch*.msi
\r
82 echo optional, if set then OPENIB_REV is assigned this value.
\r
83 echo example: BuildRelease all 1414
\r
89 if not "%WDM_INC_PATH%" == "" (
\r
90 echo %0: Error - %0 unable to run from WDK window,
\r
95 rem assumes %CD% == '<...>\gen1\trunk'
\r
97 set WIX=%CD%\WinOF\WIX
\r
99 rem Use Wix V2 binaries.
\r
100 rem set WIX_BIN=wix-2.0.5325.0-binaries
\r
101 set WIX_BIN=wix-2.0.5805.0-binaries
\r
103 set RBIN_W7=%WIX%\win7\bin%
\r
104 set RBIN_WLH=%WIX%\wlh\bin%
\r
105 set RBIN_WNET=%WIX%\wnet\bin%
\r
106 set RBIN_WXP=%WIX%\wxp\bin%
\r
108 rem remove build artifacts
\r
109 if "%1" == "clean" (
\r
110 echo Removing build artifacts and folders...
\r
111 call %CD%\etc\clean-build.bat
\r
112 if exist %WIX%\win7\bin (
\r
113 echo Removing %WIX%\win7\bin
\r
114 rmdir /Q /S %WIX%\win7\bin
\r
116 if exist %WIX%\wlh\bin (
\r
117 echo Removing %WIX%\wlh\bin
\r
118 rmdir /Q /S %WIX%\wlh\bin
\r
120 if exist %WIX%\wnet\bin (
\r
121 echo Removing %WIX%\wnet\bin
\r
122 rmdir /Q /S %WIX%\wnet\bin
\r
124 if exist %WIX%\wxp\bin (
\r
125 echo Removing %WIX%\wxp\bin
\r
126 rmdir /Q /S %WIX%\wxp\bin
\r
131 rem Driver Signing Certificate filename, assumes %WIX%\%CERTFILE% is valid.
\r
132 rem set CERTFILE=noCert
\r
133 set CERTFILE=MSCV-VSClass3.cer
\r
134 set SW_PUBLISHER="OpenFabrics Alliance"
\r
136 rem A Digital driver signing certificate store name may be required.
\r
138 if "%1" == "all" goto chk_cert
\r
139 if "%1" == "allf" goto chk_cert
\r
140 if "%1" == "msi" goto chk_cert
\r
141 if "%1" == "sign" goto chk_cert
\r
146 if "%CERTFILE%" == "noCert" set /P CERTFILE=[Enter Certificate FileName]
\r
147 if "%CERTFILE%" == "" (
\r
149 echo %0: Err - driver signing certificate filename required.
\r
150 echo %0: see certmgr.exe
\r
161 if "%WIN7%" == "yes" (
\r
163 set _DDK_VER=7068.0.0
\r
164 set _COIN_VER=01009
\r
166 rem Server 2008 WDK & WdfCoInstaller version
\r
167 set _DDK_VER=6001.18001
\r
168 set _COIN_VER=01007
\r
171 rem Full DDK root path
\r
172 set _DDK=%SystemDrive%\WinDDK\%_DDK_VER%
\r
174 if NOT EXIST %_DDK% (
\r
175 echo Missing WDK @ %_DDK%
\r
179 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)
\r
181 set _PSDK=C:\PROGRA~1\MICROS~3\Windows\v6.1
\r
182 if NOT EXIST %_PSDK% (
\r
183 echo Missing PLATFORM SDK @ %_PSDK%
\r
187 set ND_SDK_PATH=C:\PROGRA~1\MICROS~4\NetworkDirect
\r
188 if NOT EXIST %ND_SDK_PATH% (
\r
189 echo Missing Network Direct SDK @ %ND_SDK_PATH%
\r
193 rem set this to be the current svn commit number; overrides svn in path
\r
194 rem processing. Additionally if set to 'latest' code expects ..\..\..\latest.txt
\r
195 rem to contain the SVN number to use.
\r
196 rem set USE_SVN=1748
\r
199 if "%1" == "allf" (
\r
203 if "%1" == "compf" (
\r
208 rem setup value for OPENIB_REV assignment; AND supported by if would be nice.
\r
209 if not "%2" == "" (
\r
210 rem set SVN commit number.
\r
218 rem Determine SVN value from current path.
\r
219 rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',
\r
220 rem where SVN is set to XXX
\r
221 rem substring[23rd...26th] chars (offset counting) == xxxx
\r
222 rem Note - OPENIB_REV is assigned SVN in a child script.
\r
224 if "%USE_SVN%" == "" (
\r
227 if "%USE_SVN%" == "latest" (
\r
228 rem set /P SVN=<F:\openIB-windows-svn\latest.txt
\r
229 set /P SVN=< ..\..\..\latest.txt
\r
238 if NOT EXIST "%WIX%\build-all-MSI.bat" (
\r
239 echo %0 - Missing .msi installer build script
\r
240 echo %WIX%\build-all-MSI.bat
\r
244 rem WIX Installer files (.msi) destination folder - set for local environment.
\r
245 set IDIR=%SystemRoot%\temp
\r
247 if "%1" == "msi-label" (
\r
249 if exist WOF_wxp_x86.msi (
\r
250 if exist WOF_wxp_x86%LBL%.msi del /F/Q WOF_wxp_x86%LBL%.msi
\r
251 rename WOF_wxp_x86.msi WOF_wxp_x86%LBL%.msi
\r
254 if exist WOF_wnet_x86.msi (
\r
255 if exist WOF_wnet_x86%LBL%.msi del /F/Q WOF_wnet_x86%LBL%.msi
\r
256 rename WOF_wnet_x86.msi WOF_wnet_x86%LBL%.msi
\r
258 if exist WOF_wnet_x64.msi (
\r
259 if exist WOF_wnet_x64%LBL%.msi del /F/Q WOF_wnet_x64%LBL%.msi
\r
260 rename WOF_wnet_x64.msi WOF_wnet_x64%LBL%.msi
\r
262 if exist WOF_wnet_ia64.msi (
\r
263 if exist WOF_wnet_ia64%LBL%.msi del /F/Q WOF_wnet_ia64%LBL%.msi
\r
264 rename WOF_wnet_ia64.msi WOF_wnet_ia64%LBL%.msi
\r
267 if exist WOF_wlh_x86.msi (
\r
268 if exist WOF_wlh_x86%LBL%.msi del /F/Q WOF_wlh_x86%LBL%.msi
\r
269 rename WOF_wlh_x86.msi WOF_wlh_x86%LBL%.msi
\r
271 if exist WOF_wlh_x64.msi (
\r
272 if exist WOF_wlh_x64%LBL%.msi del /F/Q WOF_wlh_x64%LBL%.msi
\r
273 rename WOF_wlh_x64.msi WOF_wlh_x64%LBL%.msi
\r
275 if exist WOF_wlh_ia64.msi (
\r
276 if exist WOF_wlh_ia64%LBL%.msi del /F/Q WOF_wlh_ia64%LBL%.msi
\r
277 rename WOF_wlh_ia64.msi WOF_wlh_ia64%LBL%.msi
\r
284 if "%1" == "msi-del" (
\r
285 echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi
\r
287 if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi
\r
289 if exist WOF_wnet_x86%LBL%.msi del /F/P WOF_wnet_x86%LBL%.msi
\r
290 if exist WOF_wnet_x64%LBL%.msi del /F/P WOF_wnet_x64%LBL%.msi
\r
291 if exist WOF_wnet_ia64%LBL%.msi del /F/P WOF_wnet_ia64%LBL%.msi
\r
293 if exist WOF_wlh_x86%LBL%.msi del /F/P WOF_wlh_x86%LBL%.msi
\r
294 if exist WOF_wlh_x64%LBL%.msi del /F/P WOF_wlh_x64%LBL%.msi
\r
295 if exist WOF_wlh_ia64%LBL%.msi del /F/P WOF_wlh_ia64%LBL%.msi
\r
297 dir /N/OD WOF_*.msi
\r
302 if "%1" == "msi-dir" (
\r
304 dir /N/OD WOF_*.msi
\r
309 echo %0 - Building with WDK @ %_DDK%
\r
310 echo Building for OPENIB_REV %SVN%, installer files (.msi) @ %IDIR%
\r
311 echo Drivers signed using Certificate '%CERTFILE%'
\r
313 rem pause thoughtfully.
\r
314 if exist %windir%\system32\timeout.exe (
\r
320 if NOT EXIST "%IDIR%" (
\r
321 echo %0 - Missing Installer file destination folder
\r
326 rem Verify WIX 2.0 toolset is available - if not, download from
\r
327 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
328 rem select wix-2.0.5805.0-binaries.zip download and unzip to
\r
329 rem <...>\gen1\trunk\WinOF\WIX\WIX_tools\
\r
331 if NOT EXIST %WIX%\WIX_tools\%WIX_BIN% (
\r
332 echo %0 - Missing WIX tools @ %WIX%\WIX_tools\%WIX_BIN%
\r
336 if NOT EXIST etc\makebin.bat (
\r
337 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
342 rem skip build - assumes binaries already built and installed.
\r
349 if "%1" == "makebin" goto InstallBin
\r
352 if "%1" == "sign" (
\r
358 if "%1" == "msi" goto do_msi_chk
\r
363 rem make sure building a msi has files to work with.
\r
364 if "%WIN7%" == "yes" (
\r
365 if not EXIST "%RBIN_W7%" goto InstallBin
\r
367 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
368 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
369 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
375 if "%1" == "allnoforce" (
\r
376 rem Compile everything only if needed.
\r
379 if "%1" == "compilenoforce" (
\r
380 rem Compile everything only if needed.
\r
383 if "%1" == "allf" (
\r
384 rem Force Compile everything
\r
387 if "%1" == "compf" (
\r
388 rem Force Compile everything
\r
393 echo Removing build artifacts and folders...
\r
394 call %CD%\etc\clean-build.bat
\r
395 if exist %WIX%\wlh\bin (
\r
396 echo Removing %WIX%\wlh\bin
\r
397 rmdir /Q /S %WIX%\wlh\bin
\r
399 if exist %WIX%\wnet\bin (
\r
400 echo Removing %WIX%\wnet\bin
\r
401 rmdir /Q /S %WIX%\wnet\bin
\r
403 if exist %WIX%\wxp\bin (
\r
404 echo Removing %WIX%\wxp\bin
\r
405 rmdir /Q /S %WIX%\wxp\bin
\r
409 rem ************ Setup Env for Building
\r
411 set WDK_PATH=%_DDK%
\r
412 set WINOF_PATH=%CD%
\r
413 set OPENIB_REV=%SVN%
\r
414 set PLATFORM_SDK_PATH=%_PSDK%
\r
416 rem Compile in a specific folder? compf | allf
\r
417 if EXIST "%FPATH%" pushd %FPATH%
\r
419 rem ********* Compile for win7 - Windows 7
\r
421 if "%WIN7%" == "yes" (
\r
423 echo %0 - Build win7 x64 Checked
\r
424 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 win7 %OPS%"
\r
425 if ERRORLEVEL 1 exit /B 1
\r
426 echo %0 - Build win7 x64 Free
\r
427 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 win7 %OPS%"
\r
428 if ERRORLEVEL 1 exit /B 1
\r
431 echo %0 - Build win7 x86 Checked
\r
432 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 win7 %OPS%"
\r
433 if ERRORLEVEL 1 exit /B 1
\r
434 echo %0 - Build win7 x86 Free
\r
435 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 win7 %OPS%"
\r
436 if ERRORLEVEL 1 exit /B 1
\r
439 echo %0 - Build win7 ia64 Checked
\r
440 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 win7 %OPS%"
\r
441 if ERRORLEVEL 1 exit /B 1
\r
442 echo %0 - Build win7 ia64 Free
\r
443 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 win7 %OPS%"
\r
444 if ERRORLEVEL 1 exit /B 1
\r
447 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
450 echo %0 - Build WLH x64 Checked
\r
451 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2008 %OPS%"
\r
452 if ERRORLEVEL 1 exit /B 1
\r
453 echo %0 - Build WLH x64 Free
\r
454 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2008 %OPS%"
\r
455 if ERRORLEVEL 1 exit /B 1
\r
458 echo %0 - Build WLH x86 Checked
\r
459 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2008 %OPS%"
\r
460 if ERRORLEVEL 1 exit /B 1
\r
461 echo %0 - Build WLH x86 Free
\r
462 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2008 %OPS%"
\r
463 if ERRORLEVEL 1 exit /B 1
\r
466 echo %0 - Build WLH ia64 Checked
\r
467 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2008 %OPS%"
\r
468 if ERRORLEVEL 1 exit /B 1
\r
469 echo %0 - Build WLH ia64 Free
\r
470 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2008 %OPS%"
\r
471 if ERRORLEVEL 1 exit /B 1
\r
473 rem ********* WXP - Windows XP - x86 only
\r
475 echo %0 - Build XP x86 Checked
\r
476 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 xp %OPS%"
\r
477 if ERRORLEVEL 1 exit /B 1
\r
478 echo %0 - Build XP x86 Free
\r
479 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 xp %OPS%"
\r
480 if ERRORLEVEL 1 exit /B 1
\r
482 rem ********* WNET - Windows Server 2003
\r
484 echo %0 - Build WNET x64 Checked
\r
485 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2003 %OPS%"
\r
486 if ERRORLEVEL 1 exit /B 1
\r
487 echo %0 - Build WNET x64 Free
\r
488 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2003 %OPS%"
\r
489 if ERRORLEVEL 1 exit /B 1
\r
491 echo %0 - Build WNET x86 Checked
\r
492 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2003 %OPS%"
\r
493 if ERRORLEVEL 1 exit /B 1
\r
494 echo %0 - Build WNET x86 Free
\r
495 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2003 %OPS%"
\r
496 if ERRORLEVEL 1 exit /B 1
\r
498 echo %0 - Build WNET ia64 Checked
\r
499 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2003 %OPS%"
\r
500 if ERRORLEVEL 1 exit /B 1
\r
501 echo %0 - Build WNET ia64 Free
\r
502 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"
\r
503 if ERRORLEVEL 1 exit /B 1
\r
506 if EXIST "%FPATH%" popd
\r
508 if "%1" == "compf" goto finito
\r
509 if "%1" == "compile" goto finito
\r
510 if "%1" == "compilenoforce" goto finito
\r
512 rem Install binaries into WIX environment, build msi installers.
\r
516 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
518 if EXIST "%RBIN_W7%" (rmdir /S /Q %RBIN_W7% & echo %0 - removed %RBIN_W7%)
\r
519 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
520 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
521 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
523 if "%WIN7%" == "yes" mkdir %RBIN_W7%
\r
528 if EXIST "%BSE%\etc\makebin.bat" (
\r
529 if "%WIN7%" == "yes" (
\r
530 call %BSE%\etc\makebin.bat %BSE% %RBIN_W7% wlh %_DDK_VER% %_COIN_VER%
\r
532 echo %0: Err in makebin.bat %BSE% %RBIN_W7% wlh
\r
536 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh %_DDK_VER% %_COIN_VER%
\r
538 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh
\r
541 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet %_DDK_VER% %_COIN_VER%
\r
543 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet
\r
546 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp %_DDK_VER% %_COIN_VER%
\r
548 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp
\r
553 if "%1" == "makebin" goto finito
\r
557 echo %0 - Drivers Signed with %CERTFILE%
\r
558 echo Binary releases created in
\r
559 if "%WIN7%" == "yes" echo %RBIN_W7%
\r
564 rem build WIX installers --> see WinOF\WIX
\r
566 %COMSPEC% /V:on /E:on /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %MSI_CMD% %CERTFILE% %SW_PUBLISHER% %IDIR%"
\r
571 echo %0: Finished %0 %*
\r
572 echo %0: Started %STIME%
\r
573 echo %0: Finished %TIME%
\r