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 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" == "wix" goto OK
\r
31 if "%1" == "clean" goto OK
\r
32 if "%1" == "msi-label" goto OK
\r
33 if "%1" == "msi-del" goto OK
\r
34 if "%1" == "msi-dir" goto OK
\r
36 echo Unknown arg '%1' ?
\r
40 echo "usage: BuildRelease command {OPENIB_REV value}"
\r
41 echo where 'command' may be:
\r
42 echo all - force recompile, install binaries to WIX tree, sign drivers and
\r
43 echo build installers.
\r
45 echo allnoforce - recompile only if needed, install binaries to WIX tree,
\r
46 echo sign drivers and build installers.
\r
47 echo compile - force a recompile/link of everything then exit.
\r
48 echo compilenoforce - recompile/link only if needed then exit.
\r
49 echo makebin - assumes binaries are built, will installs binaries to WIX tree
\r
51 echo msi - assumes binaries are installed in WIX tree, signs drivers and
\r
52 echo create installers (.msi files) in IDIR.
\r
53 echo wix - build .msi installers, assumes (drivers signed) .cat files exist
\r
54 echo clean - remove build artifacts for a clean build: .obj, .sys, ...
\r
55 echo msi-label {OPENIB_REV}
\r
56 echo rename WOF_os*_arch*.msi to WOF_os*_arch*_svn#.msi
\r
57 echo Uniquely identify installers just created.
\r
58 echo If OPENIB_REV arg used, then rename WOF_os*_arch*argVal.msi
\r
59 echo otherwise, use SVN# from path.
\r
60 echo msi-del - del %windir%\temp\WOF_os*_arch*.msi
\r
61 echo msi-dir - del %windir%\temp\WOF_os*_arch*.msi
\r
64 echo optional, if set then OPENIB_REV is assigned this value.
\r
65 echo example: BuildRelease all 1414
\r
71 if not "%WDM_INC_PATH%" == "" (
\r
72 echo %0: Error - %0 unable to run from WDK window,
\r
77 rem assumes %CD% == '<...>\gen1\trunk'
\r
79 set WIX=%CD%\WinOF\WIX
\r
81 rem Use Wix V2 binaries.
\r
82 rem set WIX_BIN=wix-2.0.5325.0-binaries
\r
83 set WIX_BIN=wix-2.0.5805.0-binaries
\r
85 set RBIN_WLH=%WIX%\wlh\bin%
\r
86 set RBIN_WNET=%WIX%\wnet\bin%
\r
87 set RBIN_WXP=%WIX%\wxp\bin%
\r
89 rem remove build artifacts
\r
90 if "%1" == "clean" (
\r
91 echo Removing build artifacts and folders...
\r
92 call %CD%\etc\clean-build.bat
\r
93 if exist %WIX%\wlh\bin (
\r
94 echo Removing %WIX%\wlh\bin
\r
95 rmdir /Q /S %WIX%\wlh\bin
\r
97 if exist %WIX%\wnet\bin (
\r
98 echo Removing %WIX%\wnet\bin
\r
99 rmdir /Q /S %WIX%\wnet\bin
\r
101 if exist %WIX%\wxp\bin (
\r
102 echo Removing %WIX%\wxp\bin
\r
103 rmdir /Q /S %WIX%\wxp\bin
\r
108 rem Driver Signing Certificate filename, assumes %WIX%\%CERTFILE% is valid.
\r
109 rem set CERTFILE=noCert
\r
110 set CERTFILE=MSCV-VSClass3.cer
\r
111 set CERTSNAME="OpenFabrics Alliance"
\r
113 rem A Digital driver signing certificate store name may be required.
\r
115 if "%CERTFILE%" == "noCert" set /P CERTFILE=[Enter Certificate FileName]
\r
116 if "%CERTFILE%" == "" (
\r
118 echo %0: Err - driver signing certificate filename required.
\r
119 echo %0: see certmgr.exe
\r
125 if "%CERTFILE%" == "noCert" set /P CERTFILE=[Enter Certificate FileName]
\r
126 if "%CERTFILE%" == "" (
\r
128 echo %0: Err - driver signing certificate filename required.
\r
129 echo %0: see certmgr.exe
\r
136 set _DDK=%SystemDrive%\WinDDK\6001.18001
\r
138 if NOT EXIST %_DDK% (
\r
139 echo Missing WDK @ %_DDK%
\r
143 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)
\r
144 set _PSDK=%SystemDrive%\progra~1\mi2578~1
\r
146 rem set this to be the current svn commit number; overrides svn in path
\r
147 rem processing. Additionally if set to 'latest' code expects ..\..\..\latest.txt
\r
148 rem to contain the SVN number to use.
\r
149 rem set USE_SVN=1748
\r
152 rem setup value for OPENIB_REV assignment.
\r
154 rem Determine SVN value from current path.
\r
155 rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',
\r
156 rem where SVN is set to XXX
\r
157 rem substring[23rd...26th] chars (offset counting) == xxxx
\r
158 rem Note - OPENIB_REV is assigned SVN in a child script.
\r
160 if "%USE_SVN%" == "" (
\r
163 if "%USE_SVN%" == "latest" (
\r
164 rem set /P SVN=<F:\openIB-windows-svn\latest.txt
\r
165 set /P SVN=< ..\..\..\latest.txt
\r
176 if NOT EXIST "%WIX%\build-all-MSI.bat" (
\r
177 echo %0 - Missing .msi installer build script
\r
178 echo %WIX%\build-all-MSI.bat
\r
182 rem WIX Installer files (.msi) destination folder - set for local environment.
\r
183 set IDIR=%SystemRoot%\temp
\r
185 if "%1" == "msi-label" (
\r
187 if exist WOF_wxp_x86.msi (
\r
188 if exist WOF_wxp_x86%LBL%.msi del /F/Q WOF_wxp_x86%LBL%.msi
\r
189 rename WOF_wxp_x86.msi WOF_wxp_x86%LBL%.msi
\r
192 if exist WOF_wnet_x86.msi (
\r
193 if exist WOF_wnet_x86%LBL%.msi del /F/Q WOF_wnet_x86%LBL%.msi
\r
194 rename WOF_wnet_x86.msi WOF_wnet_x86%LBL%.msi
\r
196 if exist WOF_wnet_x64.msi (
\r
197 if exist WOF_wnet_x64%LBL%.msi del /F/Q WOF_wnet_x64%LBL%.msi
\r
198 rename WOF_wnet_x64.msi WOF_wnet_x64%LBL%.msi
\r
200 if exist WOF_wnet_ia64.msi (
\r
201 if exist WOF_wnet_ia64%LBL%.msi del /F/Q WOF_wnet_ia64%LBL%.msi
\r
202 rename WOF_wnet_ia64.msi WOF_wnet_ia64%LBL%.msi
\r
205 if exist WOF_wlh_x86.msi (
\r
206 if exist WOF_wlh_x86%LBL%.msi del /F/Q WOF_wlh_x86%LBL%.msi
\r
207 rename WOF_wlh_x86.msi WOF_wlh_x86%LBL%.msi
\r
209 if exist WOF_wlh_x64.msi (
\r
210 if exist WOF_wlh_x64%LBL%.msi del /F/Q WOF_wlh_x64%LBL%.msi
\r
211 rename WOF_wlh_x64.msi WOF_wlh_x64%LBL%.msi
\r
213 if exist WOF_wlh_ia64.msi (
\r
214 if exist WOF_wlh_ia64%LBL%.msi del /F/Q WOF_wlh_ia64%LBL%.msi
\r
215 rename WOF_wlh_ia64.msi WOF_wlh_ia64%LBL%.msi
\r
222 if "%1" == "msi-del" (
\r
223 echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi
\r
225 if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi
\r
227 if exist WOF_wnet_x86%LBL%.msi del /F/P WOF_wnet_x86%LBL%.msi
\r
228 if exist WOF_wnet_x64%LBL%.msi del /F/P WOF_wnet_x64%LBL%.msi
\r
229 if exist WOF_wnet_ia64%LBL%.msi del /F/P WOF_wnet_ia64%LBL%.msi
\r
231 if exist WOF_wlh_x86%LBL%.msi del /F/P WOF_wlh_x86%LBL%.msi
\r
232 if exist WOF_wlh_x64%LBL%.msi del /F/P WOF_wlh_x64%LBL%.msi
\r
233 if exist WOF_wlh_ia64%LBL%.msi del /F/P WOF_wlh_ia64%LBL%.msi
\r
235 dir /N/OD WOF_*.msi
\r
240 if "%1" == "msi-dir" (
\r
242 dir /N/OD WOF_*.msi
\r
247 echo %0 - Building with WDK @ %_DDK%
\r
248 echo Building for OPENIB_REV %SVN%, installer files (.msi) @ %IDIR%
\r
249 echo Drivers signed using Certificate '%CERTFILE%'
\r
251 rem pause thoughtfully.
\r
252 if exist %windir%\system32\timeout.exe (
\r
258 if NOT EXIST "%IDIR%" (
\r
259 echo %0 - Missing Installer file destination folder %IDIR%
\r
263 rem Verify WIX 2.0 toolset is available - if not, download from
\r
264 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
265 rem select wix-2.0.5805.0-binaries.zip download and unzip to
\r
266 rem <...>\gen1\trunk\WinOF\WIX\WIX_tools\
\r
268 if NOT EXIST %WIX%\WIX_tools\%WIX_BIN% (
\r
269 echo %0 - Missing WIX tools @ %WIX%\WIX_tools\%WIX_BIN%
\r
273 if NOT EXIST etc\makebin.bat (
\r
274 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
279 rem skip build - assumes binaries already built.
\r
288 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
289 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
290 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
294 if "%1" == "makebin" goto InstallBin
\r
297 if "%1" == "allnoforce" (
\r
298 rem Compile everything only if needed.
\r
301 if "%1" == "compilenoforce" (
\r
302 rem Compile everything only if needed.
\r
307 echo Removing build artifacts and folders...
\r
308 call %CD%\etc\clean-build.bat
\r
309 if exist %WIX%\wlh\bin (
\r
310 echo Removing %WIX%\wlh\bin
\r
311 rmdir /Q /S %WIX%\wlh\bin
\r
313 if exist %WIX%\wnet\bin (
\r
314 echo Removing %WIX%\wnet\bin
\r
315 rmdir /Q /S %WIX%\wnet\bin
\r
317 if exist %WIX%\wxp\bin (
\r
318 echo Removing %WIX%\wxp\bin
\r
319 rmdir /Q /S %WIX%\wxp\bin
\r
323 rem ************ Setup Env for Building
\r
325 set WDK_PATH=%_DDK%
\r
326 set WINOF_PATH=%CD%
\r
327 set OPENIB_REV=%SVN%
\r
328 set PLATFORM_SDK_PATH=%_PSDK%
\r
330 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
332 echo %0 - Build WLH x64 Checked
\r
333 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2008 %OPS%"
\r
334 if ERRORLEVEL 1 exit /B 1
\r
335 echo %0 - Build WLH x64 Free
\r
336 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2008 %OPS%"
\r
337 if ERRORLEVEL 1 exit /B 1
\r
341 echo %0 - Build WLH x86 Checked
\r
342 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2008 %OPS%"
\r
343 if ERRORLEVEL 1 exit /B 1
\r
344 echo %0 - Build WLH x86 Free
\r
345 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2008 %OPS%"
\r
346 if ERRORLEVEL 1 exit /B 1
\r
349 echo %0 - Build WLH ia64 Checked
\r
350 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2008 %OPS%"
\r
351 if ERRORLEVEL 1 exit /B 1
\r
352 echo %0 - Build WLH ia64 Free
\r
353 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2008 %OPS%"
\r
354 if ERRORLEVEL 1 exit /B 1
\r
357 rem ********* WXP - Windows XP - x86 only
\r
359 echo %0 - Build XP x86 Checked
\r
360 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 xp %OPS%"
\r
361 if ERRORLEVEL 1 exit /B 1
\r
363 echo %0 - Build XP x86 Free
\r
364 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 xp %OPS%"
\r
365 if ERRORLEVEL 1 exit /B 1
\r
368 rem ********* WNET - Windows Server 2003
\r
369 echo %0 - Build WNET x64 Checked
\r
370 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2003 %OPS%"
\r
371 if ERRORLEVEL 1 exit /B 1
\r
372 echo %0 - Build WNET x64 Free
\r
373 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2003 %OPS%"
\r
374 if ERRORLEVEL 1 exit /B 1
\r
376 echo %0 - Build WNET x86 Checked
\r
377 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2003 %OPS%"
\r
378 if ERRORLEVEL 1 exit /B 1
\r
379 echo %0 - Build WNET x86 Free
\r
380 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2003 %OPS%"
\r
381 if ERRORLEVEL 1 exit /B 1
\r
383 echo %0 - Build WNET ia64 Checked
\r
384 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2003 %OPS%"
\r
385 if ERRORLEVEL 1 exit /B 1
\r
386 echo %0 - Build WNET ia64 Free
\r
387 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"
\r
388 if ERRORLEVEL 1 exit /B 1
\r
390 if "%1" == "compile" goto finito
\r
391 if "%1" == "compilenoforce" goto finito
\r
393 rem Install binaries into WIX environment, build msi installers.
\r
397 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
399 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
400 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
401 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
407 if EXIST "%BSE%\etc\makebin.bat" (
\r
408 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh
\r
410 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh
\r
413 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet
\r
415 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet
\r
418 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp
\r
420 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp
\r
425 if "%1" == "makebin" goto finito
\r
429 echo %0 - Drivers Signed with %CERTFILE%
\r
430 echo Binary releases created in
\r
435 rem build WIX installers --> see WinOF\WIX
\r
437 %COMSPEC% /V:on /E:on /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %MSI_CMD% %CERTFILE% %CERTSNAME% %IDIR%"
\r
443 echo %0: Finished %0 %*
\r
444 echo %0: Started %STIME%
\r
445 echo %0: Finished %TIME%
\r