4 rem EXAMPLE - Build entire openIB-windows release & WIX installers (.msi) files.
\r
5 rem Binary release is constructed in WinOF\Wix\OS\bin.
\r
6 rem Processor architecture specific WIX installers are constructed
\r
9 rem BuildRelease option
\r
10 rem option == all | allnoforce | compile | compilenoforce | makebin | msi |
\r
11 rem sign | wix | clean | msi-label | msi-del | msi-dir {OPENIB_REV}
\r
13 rem This script is an 'example' of a one-command entire IB stack build to
\r
14 rem single-file installer; used to build a WinOF releases.
\r
15 rem Script is designed to be invoked from the <whatever>\gen1\trunk folder with
\r
16 rem <whatever>\gen1\trunk\WinOF\Wix\* present.
\r
18 rem Verify the following env vars are suitible for your system configuration.
\r
19 rem _DDK, _PSDK, SVN, IDIR
\r
21 if "%1" == "" goto usage
\r
22 if "%1" == "/?" goto usage
\r
23 if "%1" == "-h" goto usage
\r
24 if "%1" == "all" goto OK
\r
25 if "%1" == "allnoforce" goto OK
\r
26 if "%1" == "compile" goto OK
\r
27 if "%1" == "compilenoforce" goto OK
\r
28 if "%1" == "makebin" goto OK
\r
29 if "%1" == "msi" goto OK
\r
30 if "%1" == "sign" goto OK
\r
31 if "%1" == "wix" goto OK
\r
32 if "%1" == "clean" goto OK
\r
33 if "%1" == "msi-label" goto OK
\r
34 if "%1" == "msi-del" goto OK
\r
35 if "%1" == "msi-dir" goto OK
\r
37 echo Unknown arg '%1' ?
\r
41 echo "usage: BuildRelease command {OPENIB_REV value}"
\r
42 echo where 'command' may be:
\r
43 echo all - force recompile, install binaries to WIX tree, sign drivers and
\r
44 echo build installers.
\r
46 echo allnoforce - recompile only if needed, install binaries to WIX tree,
\r
47 echo sign drivers and build installers.
\r
48 echo compile - force a recompile/link of everything then exit.
\r
49 echo compilenoforce - recompile/link only if needed then exit.
\r
50 echo makebin - assumes binaries are built, will installs binaries to WIX tree
\r
52 echo msi - assumes binaries are installed in WIX tree, signs drivers and
\r
53 echo create installers (.msi files) in IDIR.
\r
54 echo sign - assumes binaries are built and installed, sign drivers, exit.
\r
55 echo wix - build .msi installers, assumes (drivers signed) .cat files exist
\r
56 echo clean - remove build artifacts for a clean build: .obj, .sys, ...
\r
57 echo msi-label {OPENIB_REV}
\r
58 echo rename WOF_os*_arch*.msi to WOF_os*_arch*_svn#.msi
\r
59 echo Uniquely identify installers just created.
\r
60 echo If OPENIB_REV arg used, then rename WOF_os*_arch*argVal.msi
\r
61 echo otherwise, use SVN# from path.
\r
62 echo msi-del - del %windir%\temp\WOF_os*_arch*.msi
\r
63 echo msi-dir - del %windir%\temp\WOF_os*_arch*.msi
\r
66 echo optional, if set then OPENIB_REV is assigned this value.
\r
67 echo example: BuildRelease all 1414
\r
73 if not "%WDM_INC_PATH%" == "" (
\r
74 echo %0: Error - %0 unable to run from WDK window,
\r
79 rem assumes %CD% == '<...>\gen1\trunk'
\r
81 set WIX=%CD%\WinOF\WIX
\r
83 rem Use Wix V2 binaries.
\r
84 rem set WIX_BIN=wix-2.0.5325.0-binaries
\r
85 set WIX_BIN=wix-2.0.5805.0-binaries
\r
87 set RBIN_WLH=%WIX%\wlh\bin%
\r
88 set RBIN_WNET=%WIX%\wnet\bin%
\r
89 set RBIN_WXP=%WIX%\wxp\bin%
\r
91 rem remove build artifacts
\r
92 if "%1" == "clean" (
\r
93 echo Removing build artifacts and folders...
\r
94 call %CD%\etc\clean-build.bat
\r
95 if exist %WIX%\wlh\bin (
\r
96 echo Removing %WIX%\wlh\bin
\r
97 rmdir /Q /S %WIX%\wlh\bin
\r
99 if exist %WIX%\wnet\bin (
\r
100 echo Removing %WIX%\wnet\bin
\r
101 rmdir /Q /S %WIX%\wnet\bin
\r
103 if exist %WIX%\wxp\bin (
\r
104 echo Removing %WIX%\wxp\bin
\r
105 rmdir /Q /S %WIX%\wxp\bin
\r
110 rem Driver Signing Certificate filename, assumes %WIX%\%CERTFILE% is valid.
\r
111 rem set CERTFILE=noCert
\r
112 set CERTFILE=MSCV-VSClass3.cer
\r
113 set SW_PUBLISHER="OpenFabrics Alliance"
\r
115 rem A Digital driver signing certificate store name may be required.
\r
117 if "%1" == "all" goto chk_cert
\r
118 if "%1" == "msi" goto chk_cert
\r
119 if "%1" == "sign" goto chk_cert
\r
124 if "%CERTFILE%" == "noCert" set /P CERTFILE=[Enter Certificate FileName]
\r
125 if "%CERTFILE%" == "" (
\r
127 echo %0: Err - driver signing certificate filename required.
\r
128 echo %0: see certmgr.exe
\r
137 set _DDK=%SystemDrive%\WinDDK\6001.18001
\r
139 if NOT EXIST %_DDK% (
\r
140 echo Missing WDK @ %_DDK%
\r
144 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)
\r
145 set _PSDK=%SystemDrive%\progra~1\mi2578~1
\r
147 rem set this to be the current svn commit number; overrides svn in path
\r
148 rem processing. Additionally if set to 'latest' code expects ..\..\..\latest.txt
\r
149 rem to contain the SVN number to use.
\r
150 rem set USE_SVN=1748
\r
153 rem setup value for OPENIB_REV assignment.
\r
155 rem Determine SVN value from current path.
\r
156 rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',
\r
157 rem where SVN is set to XXX
\r
158 rem substring[23rd...26th] chars (offset counting) == xxxx
\r
159 rem Note - OPENIB_REV is assigned SVN in a child script.
\r
161 if "%USE_SVN%" == "" (
\r
164 if "%USE_SVN%" == "latest" (
\r
165 rem set /P SVN=<F:\openIB-windows-svn\latest.txt
\r
166 set /P SVN=< ..\..\..\latest.txt
\r
177 if NOT EXIST "%WIX%\build-all-MSI.bat" (
\r
178 echo %0 - Missing .msi installer build script
\r
179 echo %WIX%\build-all-MSI.bat
\r
183 rem WIX Installer files (.msi) destination folder - set for local environment.
\r
184 set IDIR=%SystemRoot%\temp
\r
186 if "%1" == "msi-label" (
\r
188 if exist WOF_wxp_x86.msi (
\r
189 if exist WOF_wxp_x86%LBL%.msi del /F/Q WOF_wxp_x86%LBL%.msi
\r
190 rename WOF_wxp_x86.msi WOF_wxp_x86%LBL%.msi
\r
193 if exist WOF_wnet_x86.msi (
\r
194 if exist WOF_wnet_x86%LBL%.msi del /F/Q WOF_wnet_x86%LBL%.msi
\r
195 rename WOF_wnet_x86.msi WOF_wnet_x86%LBL%.msi
\r
197 if exist WOF_wnet_x64.msi (
\r
198 if exist WOF_wnet_x64%LBL%.msi del /F/Q WOF_wnet_x64%LBL%.msi
\r
199 rename WOF_wnet_x64.msi WOF_wnet_x64%LBL%.msi
\r
201 if exist WOF_wnet_ia64.msi (
\r
202 if exist WOF_wnet_ia64%LBL%.msi del /F/Q WOF_wnet_ia64%LBL%.msi
\r
203 rename WOF_wnet_ia64.msi WOF_wnet_ia64%LBL%.msi
\r
206 if exist WOF_wlh_x86.msi (
\r
207 if exist WOF_wlh_x86%LBL%.msi del /F/Q WOF_wlh_x86%LBL%.msi
\r
208 rename WOF_wlh_x86.msi WOF_wlh_x86%LBL%.msi
\r
210 if exist WOF_wlh_x64.msi (
\r
211 if exist WOF_wlh_x64%LBL%.msi del /F/Q WOF_wlh_x64%LBL%.msi
\r
212 rename WOF_wlh_x64.msi WOF_wlh_x64%LBL%.msi
\r
214 if exist WOF_wlh_ia64.msi (
\r
215 if exist WOF_wlh_ia64%LBL%.msi del /F/Q WOF_wlh_ia64%LBL%.msi
\r
216 rename WOF_wlh_ia64.msi WOF_wlh_ia64%LBL%.msi
\r
223 if "%1" == "msi-del" (
\r
224 echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi
\r
226 if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi
\r
228 if exist WOF_wnet_x86%LBL%.msi del /F/P WOF_wnet_x86%LBL%.msi
\r
229 if exist WOF_wnet_x64%LBL%.msi del /F/P WOF_wnet_x64%LBL%.msi
\r
230 if exist WOF_wnet_ia64%LBL%.msi del /F/P WOF_wnet_ia64%LBL%.msi
\r
232 if exist WOF_wlh_x86%LBL%.msi del /F/P WOF_wlh_x86%LBL%.msi
\r
233 if exist WOF_wlh_x64%LBL%.msi del /F/P WOF_wlh_x64%LBL%.msi
\r
234 if exist WOF_wlh_ia64%LBL%.msi del /F/P WOF_wlh_ia64%LBL%.msi
\r
236 dir /N/OD WOF_*.msi
\r
241 if "%1" == "msi-dir" (
\r
243 dir /N/OD WOF_*.msi
\r
248 echo %0 - Building with WDK @ %_DDK%
\r
249 echo Building for OPENIB_REV %SVN%, installer files (.msi) @ %IDIR%
\r
250 echo Drivers signed using Certificate '%CERTFILE%'
\r
252 rem pause thoughtfully.
\r
253 if exist %windir%\system32\timeout.exe (
\r
259 if NOT EXIST "%IDIR%" (
\r
260 echo %0 - Missing Installer file destination folder
\r
265 rem Verify WIX 2.0 toolset is available - if not, download from
\r
266 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
267 rem select wix-2.0.5805.0-binaries.zip download and unzip to
\r
268 rem <...>\gen1\trunk\WinOF\WIX\WIX_tools\
\r
270 if NOT EXIST %WIX%\WIX_tools\%WIX_BIN% (
\r
271 echo %0 - Missing WIX tools @ %WIX%\WIX_tools\%WIX_BIN%
\r
275 if NOT EXIST etc\makebin.bat (
\r
276 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
281 rem skip build - assumes binaries already built and installed.
\r
288 if "%1" == "makebin" goto InstallBin
\r
291 if "%1" == "sign" (
\r
297 if "%1" == "msi" goto do_msi_chk
\r
302 rem make sure building a msi has files to work with.
\r
303 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
304 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
305 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
311 if "%1" == "allnoforce" (
\r
312 rem Compile everything only if needed.
\r
315 if "%1" == "compilenoforce" (
\r
316 rem Compile everything only if needed.
\r
321 echo Removing build artifacts and folders...
\r
322 call %CD%\etc\clean-build.bat
\r
323 if exist %WIX%\wlh\bin (
\r
324 echo Removing %WIX%\wlh\bin
\r
325 rmdir /Q /S %WIX%\wlh\bin
\r
327 if exist %WIX%\wnet\bin (
\r
328 echo Removing %WIX%\wnet\bin
\r
329 rmdir /Q /S %WIX%\wnet\bin
\r
331 if exist %WIX%\wxp\bin (
\r
332 echo Removing %WIX%\wxp\bin
\r
333 rmdir /Q /S %WIX%\wxp\bin
\r
337 rem ************ Setup Env for Building
\r
339 set WDK_PATH=%_DDK%
\r
340 set WINOF_PATH=%CD%
\r
341 set OPENIB_REV=%SVN%
\r
342 set PLATFORM_SDK_PATH=%_PSDK%
\r
344 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
346 echo %0 - Build WLH x64 Checked
\r
347 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2008 %OPS%"
\r
348 if ERRORLEVEL 1 exit /B 1
\r
349 echo %0 - Build WLH x64 Free
\r
350 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2008 %OPS%"
\r
351 if ERRORLEVEL 1 exit /B 1
\r
355 echo %0 - Build WLH x86 Checked
\r
356 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2008 %OPS%"
\r
357 if ERRORLEVEL 1 exit /B 1
\r
358 echo %0 - Build WLH x86 Free
\r
359 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2008 %OPS%"
\r
360 if ERRORLEVEL 1 exit /B 1
\r
363 echo %0 - Build WLH ia64 Checked
\r
364 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2008 %OPS%"
\r
365 if ERRORLEVEL 1 exit /B 1
\r
366 echo %0 - Build WLH ia64 Free
\r
367 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2008 %OPS%"
\r
368 if ERRORLEVEL 1 exit /B 1
\r
371 rem ********* WXP - Windows XP - x86 only
\r
373 echo %0 - Build XP x86 Checked
\r
374 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 xp %OPS%"
\r
375 if ERRORLEVEL 1 exit /B 1
\r
377 echo %0 - Build XP x86 Free
\r
378 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 xp %OPS%"
\r
379 if ERRORLEVEL 1 exit /B 1
\r
382 rem ********* WNET - Windows Server 2003
\r
383 echo %0 - Build WNET x64 Checked
\r
384 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2003 %OPS%"
\r
385 if ERRORLEVEL 1 exit /B 1
\r
386 echo %0 - Build WNET x64 Free
\r
387 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2003 %OPS%"
\r
388 if ERRORLEVEL 1 exit /B 1
\r
390 echo %0 - Build WNET x86 Checked
\r
391 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2003 %OPS%"
\r
392 if ERRORLEVEL 1 exit /B 1
\r
393 echo %0 - Build WNET x86 Free
\r
394 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2003 %OPS%"
\r
395 if ERRORLEVEL 1 exit /B 1
\r
397 echo %0 - Build WNET ia64 Checked
\r
398 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2003 %OPS%"
\r
399 if ERRORLEVEL 1 exit /B 1
\r
400 echo %0 - Build WNET ia64 Free
\r
401 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"
\r
402 if ERRORLEVEL 1 exit /B 1
\r
404 if "%1" == "compile" goto finito
\r
405 if "%1" == "compilenoforce" goto finito
\r
407 rem Install binaries into WIX environment, build msi installers.
\r
411 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
413 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
414 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
415 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
421 if EXIST "%BSE%\etc\makebin.bat" (
\r
422 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh
\r
424 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh
\r
427 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet
\r
429 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet
\r
432 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp
\r
434 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp
\r
439 if "%1" == "makebin" goto finito
\r
443 echo %0 - Drivers Signed with %CERTFILE%
\r
444 echo Binary releases created in
\r
449 rem build WIX installers --> see WinOF\WIX
\r
451 %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
457 echo %0: Finished %0 %*
\r
458 echo %0: Started %STIME%
\r
459 echo %0: Finished %TIME%
\r