[ipoib] Change network connection status when pkey added/removed in SM.
[mirror/winof/.git] / BuildRelease.bat
1 @echo off\r
2 setlocal\r
3 rem\r
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
7 rem           in %IDIR%\r
8 rem\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
11 rem\r
12 \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
17 rem\r
18 rem Verify the following env vars are suitible for your system configuration.\r
19 rem     _DDK, _PSDK, SVN, IDIR\r
20 \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
35 \r
36 echo Unknown arg '%1' ?\r
37 \r
38 :usage\r
39 \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
44 \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
50 echo              then exit.\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
62 echo :\r
63 echo    {OPENIB_REV}\r
64 echo       optional, if set then OPENIB_REV is assigned this value.\r
65 echo            example: BuildRelease all 1414\r
66 \r
67 exit /B 1 \r
68 \r
69 :OK\r
70 \r
71 if not "%WDM_INC_PATH%" == "" (\r
72     echo %0: Error - %0 unable to run from WDK window,\r
73     echo     use %comspec%\r
74     exit /B 1\r
75 )\r
76 \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
81     exit /B 0\r
82 )\r
83 \r
84 rem set CERTNAME=noCert\r
85 set CERTNAME=cse1CStore\r
86 \r
87 rem A Digital driver signing certificate store name may be required.\r
88 if "%1" == "all" (\r
89     if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
90     if "%CERTNAME%" == "" (\r
91         echo %0\r
92         echo %0: Err - driver signing certificate store name required.\r
93         echo %0: see certmgr.exe\r
94         exit /B 1\r
95     )\r
96 )\r
97 \r
98 if "%1" == "msi" (\r
99     if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
100     if "%CERTNAME%" == "" (\r
101         echo %0\r
102         echo %0: Err - driver signing certificate store name required.\r
103         echo %0: see certmgr.exe\r
104         exit /B 1\r
105     )\r
106 )\r
107 \r
108 rem Use this WDK\r
109 \r
110 set _DDK=%SystemDrive%\WinDDK\6001.18001\r
111 \r
112 if NOT EXIST %_DDK% (\r
113     echo Missing WDK @ %_DDK%\r
114     exit /B 1\r
115 )\r
116 \r
117 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)\r
118 set _PSDK=%SystemDrive%\progra~1\mi2578~1\r
119 \r
120 rem setup value for OPENIB_REV assignment.\r
121 \r
122 if not "%2" == "" (\r
123     set SVN=%2\r
124     set LBL=%2\r
125 ) else (\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
130 \r
131     set SVN=%CD:~22,4%\r
132     set LBL=_svn.!SVN!\r
133 )\r
134 \r
135 rem assumes %CD% == '...\gen1\trunk'\r
136 set BSE=%CD%\r
137 set WIX=%CD:trunk=Branches\WinOF\WIX%\r
138 \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
142 \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
146     exit /B 1\r
147 )\r
148 \r
149 rem WIX Installer files (.msi) destination folder - set for local environment.\r
150 rem \r
151 set IDIR=%SystemRoot%\temp\r
152 \r
153 if "%1" == "msi-label" (\r
154     pushd %IDIR%\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
158     )\r
159 \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
163     )\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
167     )\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
171     )\r
172 \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
176     )\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
180     )\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
184     )\r
185     dir WOF_*%LBL%.msi\r
186     popd\r
187     exit /B 0\r
188 )\r
189 \r
190 if "%1" == "msi-del" (\r
191     echo Deleting WOF_{wxp,wnet,wlh}_{x86,x64,ia64}%LBL%.msi\r
192     pushd %IDIR%\r
193     if exist WOF_wxp_x86%LBL%.msi del /F/P WOF_wxp_x86%LBL%.msi\r
194 \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
198 \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
202 \r
203     dir /N/OD WOF_*.msi\r
204     popd\r
205     exit /B 0\r
206 )\r
207 \r
208 if "%1" == "msi-dir" (\r
209     pushd %IDIR%\r
210     dir /N/OD WOF_*.msi\r
211     popd\r
212     exit /B 0\r
213 )\r
214 \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
218 \r
219 rem pause thoughtfully.\r
220 if exist %windir%\system32\timeout.exe (\r
221     timeout /T 10\r
222 ) else (\r
223     pause\r
224 )\r
225 \r
226 if NOT EXIST "%IDIR%" (\r
227     echo %0 - Missing Installer file destination folder %IDIR%\r
228     exit /B 1\r
229 )\r
230 \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
235 rem\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
238     exit /B 1\r
239 )\r
240 \r
241 if NOT EXIST etc\makebin.bat (\r
242     echo %0 - Missing etc\makebin.bat, script must run from gen1\trunk\r
243     exit /B 1\r
244 )\r
245 set STIME=%TIME%\r
246 \r
247 rem skip build - assumes binaries already built.\r
248 \r
249 if "%1" == "wix" (\r
250     set CERTNAME=nosign\r
251     goto mk_msi\r
252 )\r
253 \r
254 if "%1" == "msi" (\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
258     goto mk_msi\r
259 )\r
260 \r
261 if "%1" == "makebin" goto InstallBin\r
262 \r
263 set OPS=-wgcPM 3\r
264 if "%1" == "allnoforce" (\r
265     rem Compile everything only if needed.\r
266     set OPS=-wgPM 3\r
267 )\r
268 if "%1" == "compilenoforce" (\r
269     rem Compile everything only if needed.\r
270     set OPS=-wgPM 3\r
271 )\r
272 \r
273 if "%1" == "all" (\r
274     echo Removing build artifacts and folders...\r
275     call %CD%\etc\clean-build.bat\r
276 )\r
277 \r
278 rem ********* Compile for WLH - Windows Server 2008 & Vista\r
279 \r
280 rem WLH x64\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
287 \r
288 rem WLH x86\r
289 \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
296 \r
297 rem WLH ia64\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
304 \r
305 \r
306 rem ********* WXP - Windows XP - x86 only\r
307 \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
311 \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
315 \r
316 \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
324 \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
331 \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
338 \r
339 if "%1" == "compile" goto finito\r
340 if "%1" == "compilenoforce" goto finito\r
341 \r
342 rem Install binaries into WIX environment, build msi installers.\r
343 \r
344 :InstallBin\r
345 \r
346 echo Create binary release tree - suitible for WinOF-WIX installer build.\r
347 \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
351 \r
352 mkdir %RBIN_WLH%\r
353 mkdir %RBIN_WNET%\r
354 mkdir %RBIN_WXP%\r
355 \r
356 if EXIST "%BSE%\etc\makebin.bat" (\r
357     call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh\r
358     if ERRORLEVEL 1 (\r
359         echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh\r
360         exit /B 1\r
361     )\r
362     call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet\r
363     if ERRORLEVEL 1 (\r
364         echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet\r
365         exit /B 1\r
366     )\r
367     call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp\r
368     if ERRORLEVEL 1 (\r
369         echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp\r
370         exit /B 1\r
371     )\r
372 )\r
373 \r
374 if "%1" == "makebin" goto finito\r
375 \r
376 :mk_msi\r
377 \r
378 echo %0 - Drivers Signed with %CERTNAME% , Binary releases built in\r
379 echo     %RBIN_WLH%\r
380 echo     %RBIN_WNET%\r
381 echo     %RBIN_WXP%\r
382 \r
383 rem build WIX installers --> see ..\branches\WinOF\WIX\r
384 \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
386 \r
387 \r
388 :finito\r
389 \r
390 echo .\r
391 echo %0: Finished %0 %*\r
392 echo %0:   Started  %STIME%\r
393 echo %0:   Finished %TIME%\r
394 \r
395 endlocal\r
396 @echo on\r