4 rem EXAMPLE - Build entire openIB-windows release & WIX installers (.msi) files.
\r
5 rem Binary release is constructed in ..\Branches\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 | 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>\branches\WinOF\Wix\* accessible.
\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 remove build artifacts
\r
78 if "%1" == "clean" (
\r
79 echo Removing build artifacts and folders...
\r
80 call %CD%\etc\clean-build.bat
\r
84 rem set CERTNAME=noCert
\r
85 set CERTNAME=cse1CStore
\r
87 rem A Digital driver signing certificate store name may be required.
\r
89 if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name]
\r
90 if "%CERTNAME%" == "" (
\r
92 echo %0: Err - driver signing certificate store name required.
\r
93 echo %0: see certmgr.exe
\r
99 if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name]
\r
100 if "%CERTNAME%" == "" (
\r
102 echo %0: Err - driver signing certificate store name required.
\r
103 echo %0: see certmgr.exe
\r
110 set _DDK=%SystemDrive%\WinDDK\6001.18001
\r
112 if NOT EXIST %_DDK% (
\r
113 echo Missing WDK @ %_DDK%
\r
117 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)
\r
118 set _PSDK=%SystemDrive%\progra~1\mi2578~1
\r
120 rem setup value for OPENIB_REV assignment.
\r
122 if not "%2" == "" (
\r
126 rem WARNING - SVN value depends on the path '\openIB-windows-svn\XXX\gen1',
\r
127 rem where SVN is set to XXX
\r
128 rem substring[23rd...26th] chars (offset counting) == xxxx
\r
129 rem Note - OPENIB_REV is assigned SVN in a child script.
\r
135 rem assumes %CD% == '...\gen1\trunk'
\r
137 set WIX=%CD:trunk=Branches\WinOF\WIX%
\r
139 set RBIN_WLH=%WIX%\wlh\bin%
\r
140 set RBIN_WNET=%WIX%\wnet\bin%
\r
141 set RBIN_WXP=%WIX%\wxp\bin%
\r
143 if NOT EXIST "..\branches\WinOF\WIX\build-all-MSI.bat" (
\r
144 echo %0 - Missing .msi installer build script
\r
145 echo ..\branches\WinOF\WIX\build-all-MSI.bat
\r
149 rem WIX Installer files (.msi) destination folder - set for local environment.
\r
151 set IDIR=%SystemRoot%\temp
\r
153 if "%1" == "msi-label" (
\r
155 if exist WOF_wxp_x86.msi (
\r
156 if exist WOF_wxp_x86%LBL%.msi del /F/Q WOF_wxp_x86%LBL%.msi
\r
157 rename WOF_wxp_x86.msi WOF_wxp_x86%LBL%.msi
\r
160 if exist WOF_wnet_x86.msi (
\r
161 if exist WOF_wnet_x86%LBL%.msi del /F/Q WOF_wnet_x86%LBL%.msi
\r
162 rename WOF_wnet_x86.msi WOF_wnet_x86%LBL%.msi
\r
164 if exist WOF_wnet_x64.msi (
\r
165 if exist WOF_wnet_x64%LBL%.msi del /F/Q WOF_wnet_x64%LBL%.msi
\r
166 rename WOF_wnet_x64.msi WOF_wnet_x64%LBL%.msi
\r
168 if exist WOF_wnet_ia64.msi (
\r
169 if exist WOF_wnet_ia64%LBL%.msi del /F/Q WOF_wnet_ia64%LBL%.msi
\r
170 rename WOF_wnet_ia64.msi WOF_wnet_ia64%LBL%.msi
\r
173 if exist WOF_wlh_x86.msi (
\r
174 if exist WOF_wlh_x86%LBL%.msi del /F/Q WOF_wlh_x86%LBL%.msi
\r
175 rename WOF_wlh_x86.msi WOF_wlh_x86%LBL%.msi
\r
177 if exist WOF_wlh_x64.msi (
\r
178 if exist WOF_wlh_x64%LBL%.msi del /F/Q WOF_wlh_x64%LBL%.msi
\r
179 rename WOF_wlh_x64.msi WOF_wlh_x64%LBL%.msi
\r
181 if exist WOF_wlh_ia64.msi (
\r
182 if exist WOF_wlh_ia64%LBL%.msi del /F/Q WOF_wlh_ia64%LBL%.msi
\r
183 rename WOF_wlh_ia64.msi WOF_wlh_ia64%LBL%.msi
\r
190 if "%1" == "msi-del" (
\r
191 echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi
\r
193 if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi
\r
195 if exist WOF_wnet_x86%LBL%.msi del /F/P WOF_wnet_x86%LBL%.msi
\r
196 if exist WOF_wnet_x64%LBL%.msi del /F/P WOF_wnet_x64%LBL%.msi
\r
197 if exist WOF_wnet_ia64%LBL%.msi del /F/P WOF_wnet_ia64%LBL%.msi
\r
199 if exist WOF_wlh_x86%LBL%.msi del /F/P WOF_wlh_x86%LBL%.msi
\r
200 if exist WOF_wlh_x64%LBL%.msi del /F/P WOF_wlh_x64%LBL%.msi
\r
201 if exist WOF_wlh_ia64%LBL%.msi del /F/P WOF_wlh_ia64%LBL%.msi
\r
203 dir /N/OD WOF_*.msi
\r
208 if "%1" == "msi-dir" (
\r
210 dir /N/OD WOF_*.msi
\r
215 echo %0 - Building with WDK @ %_DDK%
\r
216 echo Building for OPENIB_REV %SVN%, installer files @ %IDIR%
\r
217 echo Drivers signed using Certificate '%CERTNAME%'
\r
219 rem pause thoughtfully.
\r
220 if exist %windir%\system32\timeout.exe (
\r
226 if NOT EXIST "%IDIR%" (
\r
227 echo %0 - Missing Installer file destination folder %IDIR%
\r
231 rem Verify WIX 2.0 toolset is available - if not, download from
\r
232 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109
\r
233 rem select wix-2.0.5325.0-binaries.zip download and unzip to
\r
234 rem ..\branches\WinOF\WIX\WIX_tools\
\r
236 if NOT EXIST %WIX%\WIX_tools\wix-2.0.5325.0-binaries (
\r
237 echo %0 - Missing WIX tools @ %WIX%\WIX_tools
\r
241 if NOT EXIST etc\makebin.bat (
\r
242 echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk
\r
247 rem skip build - assumes binaries already built.
\r
250 set CERTNAME=nosign
\r
255 if not EXIST "%RBIN_WLH%" goto InstallBin
\r
256 if not EXIST "%RBIN_WNET%" goto InstallBin
\r
257 if not EXIST "%RBIN_WXP%" goto InstallBin
\r
261 if "%1" == "makebin" goto InstallBin
\r
264 if "%1" == "allnoforce" (
\r
265 rem Compile everything only if needed.
\r
268 if "%1" == "compilenoforce" (
\r
269 rem Compile everything only if needed.
\r
274 echo Removing build artifacts and folders...
\r
275 call %CD%\etc\clean-build.bat
\r
278 rem ********* Compile for WLH - Windows Server 2008 & Vista
\r
281 echo %0 - Build WLH x64 Checked
\r
282 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
283 if ERRORLEVEL 1 exit /B 1
\r
284 echo %0 - Build WLH x64 Free
\r
285 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
286 if ERRORLEVEL 1 exit /B 1
\r
290 echo %0 - Build WLH x86 Checked
\r
291 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
292 if ERRORLEVEL 1 exit /B 1
\r
293 echo %0 - Build WLH x86 Free
\r
294 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
295 if ERRORLEVEL 1 exit /B 1
\r
298 echo %0 - Build WLH ia64 Checked
\r
299 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
300 if ERRORLEVEL 1 exit /B 1
\r
301 echo %0 - Build WLH ia64 Free
\r
302 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"
\r
303 if ERRORLEVEL 1 exit /B 1
\r
306 rem ********* WXP - Windows XP - x86 only
\r
308 echo %0 - Build XP x86 Checked
\r
309 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"
\r
310 if ERRORLEVEL 1 exit /B 1
\r
312 echo %0 - Build XP x86 Free
\r
313 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"
\r
314 if ERRORLEVEL 1 exit /B 1
\r
317 rem ********* WNET - Windows Server 2003
\r
318 echo %0 - Build WNET x64 Checked
\r
319 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
320 if ERRORLEVEL 1 exit /B 1
\r
321 echo %0 - Build WNET x64 Free
\r
322 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
323 if ERRORLEVEL 1 exit /B 1
\r
325 echo %0 - Build WNET x86 Checked
\r
326 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
327 if ERRORLEVEL 1 exit /B 1
\r
328 echo %0 - Build WNET x86 Free
\r
329 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
330 if ERRORLEVEL 1 exit /B 1
\r
332 echo %0 - Build WNET ia64 Checked
\r
333 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
334 if ERRORLEVEL 1 exit /B 1
\r
335 echo %0 - Build WNET ia64 Free
\r
336 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"
\r
337 if ERRORLEVEL 1 exit /B 1
\r
339 if "%1" == "compile" goto finito
\r
340 if "%1" == "compilenoforce" goto finito
\r
342 rem Install binaries into WIX environment, build msi installers.
\r
346 echo Create binary release tree - suitible for WinOF-WIX installer build.
\r
348 if EXIST "%RBIN_WLH%" (rmdir /S /Q %RBIN_WLH% & echo %0 - removed %RBIN_WLH%)
\r
349 if EXIST "%RBIN_WNET%" (rmdir /S /Q %RBIN_WNET% & echo %0 - removed %RBIN_WNET%)
\r
350 if EXIST "%RBIN_WXP%" (rmdir /S /Q %RBIN_WXP% & echo %0 - removed %RBIN_WXP%)
\r
356 if EXIST "%BSE%\etc\makebin.bat" (
\r
357 call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh
\r
359 echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh
\r
362 call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet
\r
364 echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet
\r
367 call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp
\r
369 echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp
\r
374 if "%1" == "makebin" goto finito
\r
378 echo %0 - Drivers Signed with %CERTNAME% , Binary releases built in
\r
383 rem build WIX installers --> see ..\branches\WinOF\WIX
\r
385 %COMSPEC% /V:on /E:on /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %CERTNAME% %IDIR%"
\r
391 echo %0: Finished %0 %*
\r
392 echo %0: Started %STIME%
\r
393 echo %0: Finished %TIME%
\r