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=7600.16385.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 if DEFINED PLATFORM_SDK_PATH (
\r
182 set _PSDK=%PLATFORM_SDK_PATH%
\r
184 set _PSDK=C:\PROGRA~1\MICROS~3\Windows\v6.1
\r
186 if NOT EXIST %_PSDK% (
\r
187 echo Missing PLATFORM SDK @ %_PSDK%
\r
191 if not DEFINED ND_SDK_PATH (
\r
192 set ND_SDK_PATH=C:\PROGRA~1\MICROS~4\NetworkDirect
\r
194 if NOT EXIST %ND_SDK_PATH% (
\r
195 echo Missing Network Direct SDK @ %ND_SDK_PATH%
\r
199 rem set this to be the current svn commit number; overrides svn in path
\r
200 rem processing. Additionally if set to 'latest' code expects ..\..\..\latest.txt
\r
201 rem to contain the SVN number to use.
\r
202 rem set USE_SVN=1748
\r
205 if "%1" == "allf" (
\r
209 if "%1" == "compf" (
\r
214 rem setup value for OPENIB_REV assignment; AND supported by if would be nice.
\r
215 if not "%2" == "" (
\r
216 rem set SVN commit number.
\r
224 rem Determine SVN value from current path.
\r
225 rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',
\r
226 rem where SVN is set to XXX
\r
227 rem substring[23rd...26th] chars (offset counting) == xxxx
\r
228 rem Note - OPENIB_REV is assigned SVN in a child script.
\r
230 if "%USE_SVN%" == "" (
\r
233 if "%USE_SVN%" == "latest" (
\r
234 rem set /P SVN=<F:\openIB-windows-svn\latest.txt
\r
235 set /P SVN=< ..\..\..\latest.txt
\r
244 if NOT EXIST "%WIX%\build-all-MSI.bat" (
\r
245 echo %0 - Missing .msi installer build script
\r
246 echo %WIX%\build-all-MSI.bat
\r
250 rem WIX Installer files (.msi) destination folder - set for local environment.
\r
251 set IDIR=%SystemRoot%\temp
\r
253 if "%1" == "msi-label" (
\r
255 if exist WOF_wxp_x86.msi (
\r
256 if exist WOF_wxp_x86%LBL%.msi del /F/Q WOF_wxp_x86%LBL%.msi
\r
257 rename WOF_wxp_x86.msi WOF_wxp_x86%LBL%.msi
\r
260 if exist WOF_wnet_x86.msi (
\r
261 if exist WOF_wnet_x86%LBL%.msi del /F/Q WOF_wnet_x86%LBL%.msi
\r
262 rename WOF_wnet_x86.msi WOF_wnet_x86%LBL%.msi
\r
264 if exist WOF_wnet_x64.msi (
\r
265 if exist WOF_wnet_x64%LBL%.msi del /F/Q WOF_wnet_x64%LBL%.msi
\r
266 rename WOF_wnet_x64.msi WOF_wnet_x64%LBL%.msi
\r
268 if exist WOF_wnet_ia64.msi (
\r
269 if exist WOF_wnet_ia64%LBL%.msi del /F/Q WOF_wnet_ia64%LBL%.msi
\r
270 rename WOF_wnet_ia64.msi WOF_wnet_ia64%LBL%.msi
\r
273 if exist WOF_wlh_x86.msi (
\r
274 if exist WOF_wlh_x86%LBL%.msi del /F/Q WOF_wlh_x86%LBL%.msi
\r
275 rename WOF_wlh_x86.msi WOF_wlh_x86%LBL%.msi
\r
277 if exist WOF_wlh_x64.msi (
\r
278 if exist WOF_wlh_x64%LBL%.msi del /F/Q WOF_wlh_x64%LBL%.msi
\r
279 rename WOF_wlh_x64.msi WOF_wlh_x64%LBL%.msi
\r
281 if exist WOF_wlh_ia64.msi (
\r
282 if exist WOF_wlh_ia64%LBL%.msi del /F/Q WOF_wlh_ia64%LBL%.msi
\r
283 rename WOF_wlh_ia64.msi WOF_wlh_ia64%LBL%.msi
\r
290 if "%1" == "msi-del" (
\r
291 echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi
\r
293 if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi
\r
295 if exist WOF_wnet_x86%LBL%.msi del /F/P WOF_wnet_x86%LBL%.msi
\r
296 if exist WOF_wnet_x64%LBL%.msi del /F/P WOF_wnet_x64%LBL%.msi
\r
297 if exist WOF_wnet_ia64%LBL%.msi del /F/P WOF_wnet_ia64%LBL%.msi
\r
299 if exist WOF_wlh_x86%LBL%.msi del /F/P WOF_wlh_x86%LBL%.msi
\r
300 if exist WOF_wlh_x64%LBL%.msi del /F/P WOF_wlh_x64%LBL%.msi
\r
301 if exist WOF_wlh_ia64%LBL%.msi del /F/P WOF_wlh_ia64%LBL%.msi
\r
303 dir /N/OD WOF_*.msi
\r
308 if "%1" == "msi-dir" (
\r
310 dir /N/OD WOF_*.msi
\r
315 echo %0 - Building with WDK @ %_DDK%
\r
316 echo Building for OPENIB_REV %SVN%, installer files (.msi) @ %IDIR%
\r
317 echo Drivers signed using Certificate '%CERTFILE%'
\r
319 rem pause thoughtfully.
\r
320 if exist %windir%\system32\timeout.exe (
\r
326 if NOT EXIST "%IDIR%" (
\r
327 echo %0 - Missing Installer file destination folder
\r
332 rem Verify WIX 2.0 toolset is available - if not, download from
\r
333 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
334 rem select wix-2.0.5805.0-binaries.zip download and unzip to
\r
335 rem <...>\WinOF\WIX\WIX_tools\
\r
337 if NOT EXIST %WIX%\WIX_tools\%WIX_BIN% (
\r
338 echo %0 - Missing WIX tools @ %WIX%\WIX_tools\%WIX_BIN%
\r
342 if NOT EXIST etc\makebin.bat (
\r
343 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
348 rem skip build - assumes binaries already built and installed.
\r
355 if "%1" == "makebin" goto InstallBin
\r
358 if "%1" == "sign" (
\r
364 if "%1" == "msi" goto do_msi_chk
\r
369 rem make sure building a msi has files to work with.
\r
370 if "%WIN7%" == "yes" (
\r
371 if not EXIST "%RBIN_W7%" goto InstallBin
\r
373 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
374 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
375 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
381 if "%1" == "allnoforce" (
\r
382 rem Compile everything only if needed.
\r
385 if "%1" == "compilenoforce" (
\r
386 rem Compile everything only if needed.
\r
389 if "%1" == "allf" (
\r
390 rem Force Compile everything
\r
393 if "%1" == "compf" (
\r
394 rem Force Compile everything
\r
399 echo Removing build artifacts and folders...
\r
400 call %CD%\etc\clean-build.bat
\r
401 if exist %WIX%\wlh\bin (
\r
402 echo Removing %WIX%\wlh\bin
\r
403 rmdir /Q /S %WIX%\wlh\bin
\r
405 if exist %WIX%\wnet\bin (
\r
406 echo Removing %WIX%\wnet\bin
\r
407 rmdir /Q /S %WIX%\wnet\bin
\r
409 if exist %WIX%\wxp\bin (
\r
410 echo Removing %WIX%\wxp\bin
\r
411 rmdir /Q /S %WIX%\wxp\bin
\r
415 rem ************ Setup Env for Building
\r
417 set WDK_PATH=%_DDK%
\r
418 set WINOF_PATH=%CD%
\r
419 set OPENIB_REV=%SVN%
\r
420 if not DEFINED PLATFORM_SDK_PATH set PLATFORM_SDK_PATH=%_PSDK%
\r
422 rem Compile in a specific folder? compf | allf
\r
423 if EXIST "%FPATH%" pushd %FPATH%
\r
425 rem ********* Compile for win7 - Windows 7
\r
427 if "%WIN7%" == "yes" (
\r
429 echo %0 - Build win7 x64 Checked
\r
430 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 win7 %OPS%"
\r
431 if ERRORLEVEL 1 exit /B 1
\r
432 echo %0 - Build win7 x64 Free
\r
433 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 win7 %OPS%"
\r
434 if ERRORLEVEL 1 exit /B 1
\r
437 echo %0 - Build win7 x86 Checked
\r
438 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 win7 %OPS%"
\r
439 if ERRORLEVEL 1 exit /B 1
\r
440 echo %0 - Build win7 x86 Free
\r
441 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 win7 %OPS%"
\r
442 if ERRORLEVEL 1 exit /B 1
\r
445 echo %0 - Build win7 ia64 Checked
\r
446 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 win7 %OPS%"
\r
447 if ERRORLEVEL 1 exit /B 1
\r
448 echo %0 - Build win7 ia64 Free
\r
449 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 win7 %OPS%"
\r
450 if ERRORLEVEL 1 exit /B 1
\r
453 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
456 echo %0 - Build WLH x64 Checked
\r
457 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2008 %OPS%"
\r
458 if ERRORLEVEL 1 exit /B 1
\r
459 echo %0 - Build WLH x64 Free
\r
460 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2008 %OPS%"
\r
461 if ERRORLEVEL 1 exit /B 1
\r
464 echo %0 - Build WLH x86 Checked
\r
465 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2008 %OPS%"
\r
466 if ERRORLEVEL 1 exit /B 1
\r
467 echo %0 - Build WLH x86 Free
\r
468 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2008 %OPS%"
\r
469 if ERRORLEVEL 1 exit /B 1
\r
472 echo %0 - Build WLH ia64 Checked
\r
473 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2008 %OPS%"
\r
474 if ERRORLEVEL 1 exit /B 1
\r
475 echo %0 - Build WLH ia64 Free
\r
476 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2008 %OPS%"
\r
477 if ERRORLEVEL 1 exit /B 1
\r
479 rem ********* WXP - Windows XP - x86 only
\r
481 echo %0 - Build XP x86 Checked
\r
482 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 xp %OPS%"
\r
483 if ERRORLEVEL 1 exit /B 1
\r
484 echo %0 - Build XP x86 Free
\r
485 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 xp %OPS%"
\r
486 if ERRORLEVEL 1 exit /B 1
\r
488 rem ********* WNET - Windows Server 2003
\r
490 echo %0 - Build WNET x64 Checked
\r
491 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2003 %OPS%"
\r
492 if ERRORLEVEL 1 exit /B 1
\r
493 echo %0 - Build WNET x64 Free
\r
494 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2003 %OPS%"
\r
495 if ERRORLEVEL 1 exit /B 1
\r
497 echo %0 - Build WNET x86 Checked
\r
498 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2003 %OPS%"
\r
499 if ERRORLEVEL 1 exit /B 1
\r
500 echo %0 - Build WNET x86 Free
\r
501 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2003 %OPS%"
\r
502 if ERRORLEVEL 1 exit /B 1
\r
504 echo %0 - Build WNET ia64 Checked
\r
505 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2003 %OPS%"
\r
506 if ERRORLEVEL 1 exit /B 1
\r
507 echo %0 - Build WNET ia64 Free
\r
508 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"
\r
509 if ERRORLEVEL 1 exit /B 1
\r
512 if EXIST "%FPATH%" popd
\r
514 if "%1" == "compf" goto finito
\r
515 if "%1" == "compile" goto finito
\r
516 if "%1" == "compilenoforce" goto finito
\r
518 rem Install binaries into WIX environment, build msi installers.
\r
522 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
524 if EXIST "%RBIN_W7%" (rmdir /S /Q %RBIN_W7% & echo %0 - removed %RBIN_W7%)
\r
525 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
526 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
527 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
529 if "%WIN7%" == "yes" mkdir %RBIN_W7%
\r
534 if EXIST "%BSE%\etc\makebin.bat" (
\r
535 if "%WIN7%" == "yes" (
\r
536 call %BSE%\etc\makebin.bat %BSE% %RBIN_W7% win7 %_DDK% %_COIN_VER%
\r
538 echo %0: Err in makebin.bat %BSE% %RBIN_W7% wlh %_DDK% %_COIN_VER%
\r
542 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh %_DDK% %_COIN_VER%
\r
544 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh %_DDK% %_COIN_VER%
\r
547 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet %_DDK% %_COIN_VER%
\r
549 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet %_DDK% %_COIN_VER%
\r
552 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp %_DDK% %_COIN_VER%
\r
554 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp %_DDK% %_COIN_VER%
\r
559 if "%1" == "makebin" goto finito
\r
563 echo %0 - Drivers Signed with %CERTFILE%
\r
564 echo Binary releases created in
\r
565 if "%WIN7%" == "yes" echo %RBIN_W7%
\r
570 rem build WIX installers --> see WinOF\WIX
\r
572 %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
577 echo %0: Finished %0 %*
\r
578 echo %0: Started %STIME%
\r
579 echo %0: Finished %TIME%
\r