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
\r
264 rem Verify WIX 2.0 toolset is available - if not, download from
\r
265 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
266 rem select wix-2.0.5805.0-binaries.zip download and unzip to
\r
267 rem <...>\gen1\trunk\WinOF\WIX\WIX_tools\
\r
269 if NOT EXIST %WIX%\WIX_tools\%WIX_BIN% (
\r
270 echo %0 - Missing WIX tools @ %WIX%\WIX_tools\%WIX_BIN%
\r
274 if NOT EXIST etc\makebin.bat (
\r
275 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
280 rem skip build - assumes binaries already built.
\r
289 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
290 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
291 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
295 if "%1" == "makebin" goto InstallBin
\r
298 if "%1" == "allnoforce" (
\r
299 rem Compile everything only if needed.
\r
302 if "%1" == "compilenoforce" (
\r
303 rem Compile everything only if needed.
\r
308 echo Removing build artifacts and folders...
\r
309 call %CD%\etc\clean-build.bat
\r
310 if exist %WIX%\wlh\bin (
\r
311 echo Removing %WIX%\wlh\bin
\r
312 rmdir /Q /S %WIX%\wlh\bin
\r
314 if exist %WIX%\wnet\bin (
\r
315 echo Removing %WIX%\wnet\bin
\r
316 rmdir /Q /S %WIX%\wnet\bin
\r
318 if exist %WIX%\wxp\bin (
\r
319 echo Removing %WIX%\wxp\bin
\r
320 rmdir /Q /S %WIX%\wxp\bin
\r
324 rem ************ Setup Env for Building
\r
326 set WDK_PATH=%_DDK%
\r
327 set WINOF_PATH=%CD%
\r
328 set OPENIB_REV=%SVN%
\r
329 set PLATFORM_SDK_PATH=%_PSDK%
\r
331 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
333 echo %0 - Build WLH x64 Checked
\r
334 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2008 %OPS%"
\r
335 if ERRORLEVEL 1 exit /B 1
\r
336 echo %0 - Build WLH x64 Free
\r
337 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2008 %OPS%"
\r
338 if ERRORLEVEL 1 exit /B 1
\r
342 echo %0 - Build WLH x86 Checked
\r
343 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2008 %OPS%"
\r
344 if ERRORLEVEL 1 exit /B 1
\r
345 echo %0 - Build WLH x86 Free
\r
346 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2008 %OPS%"
\r
347 if ERRORLEVEL 1 exit /B 1
\r
350 echo %0 - Build WLH ia64 Checked
\r
351 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2008 %OPS%"
\r
352 if ERRORLEVEL 1 exit /B 1
\r
353 echo %0 - Build WLH ia64 Free
\r
354 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2008 %OPS%"
\r
355 if ERRORLEVEL 1 exit /B 1
\r
358 rem ********* WXP - Windows XP - x86 only
\r
360 echo %0 - Build XP x86 Checked
\r
361 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 xp %OPS%"
\r
362 if ERRORLEVEL 1 exit /B 1
\r
364 echo %0 - Build XP x86 Free
\r
365 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 xp %OPS%"
\r
366 if ERRORLEVEL 1 exit /B 1
\r
369 rem ********* WNET - Windows Server 2003
\r
370 echo %0 - Build WNET x64 Checked
\r
371 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x64 2003 %OPS%"
\r
372 if ERRORLEVEL 1 exit /B 1
\r
373 echo %0 - Build WNET x64 Free
\r
374 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x64 2003 %OPS%"
\r
375 if ERRORLEVEL 1 exit /B 1
\r
377 echo %0 - Build WNET x86 Checked
\r
378 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk x86 2003 %OPS%"
\r
379 if ERRORLEVEL 1 exit /B 1
\r
380 echo %0 - Build WNET x86 Free
\r
381 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre x86 2003 %OPS%"
\r
382 if ERRORLEVEL 1 exit /B 1
\r
384 echo %0 - Build WNET ia64 Checked
\r
385 %COMSPEC% /C "call %BSE%\etc\bldwo.bat chk ia64 2003 %OPS%"
\r
386 if ERRORLEVEL 1 exit /B 1
\r
387 echo %0 - Build WNET ia64 Free
\r
388 %COMSPEC% /C "call %BSE%\etc\bldwo.bat fre ia64 2003 %OPS%"
\r
389 if ERRORLEVEL 1 exit /B 1
\r
391 if "%1" == "compile" goto finito
\r
392 if "%1" == "compilenoforce" goto finito
\r
394 rem Install binaries into WIX environment, build msi installers.
\r
398 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
400 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
401 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
402 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
408 if EXIST "%BSE%\etc\makebin.bat" (
\r
409 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh
\r
411 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh
\r
414 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet
\r
416 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet
\r
419 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp
\r
421 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp
\r
426 if "%1" == "makebin" goto finito
\r
430 echo %0 - Drivers Signed with %CERTFILE%
\r
431 echo Binary releases created in
\r
436 rem build WIX installers --> see WinOF\WIX
\r
438 %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
444 echo %0: Finished %0 %*
\r
445 echo %0: Started %STIME%
\r
446 echo %0: Finished %TIME%
\r