[WinOF] added common exit path with time stamp info (start & end times); curently...
[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 {all | compile | makebin | msi | wix}\r
10 rem\r
11 rem where:\r
12 rem    all - recompile, install binaries to WIX tree, sign drivers and\r
13 rem          build installers.\r
14 \r
15 rem    compile - recompile/link\r
16 \r
17 rem    makebin - assumes binaries are built, will installs binaries to WIX tree\r
18 rem              sign drivers + builds installers (.msi files) in IDIR.\r
19 \r
20 rem    msi - assumes binaries are installed in WIX tree, will sign drivers and\r
21 rem          create installers (.msi files) in IDIR.\r
22 \r
23 rem    wix - build .msi installers, assumes (drivers signed) & .cat files exist\r
24 rem\r
25 rem Common invocations are:\r
26 rem    buildrelease compile\r
27 rem    buildrelease msi\r
28 rem    buildrelease all\r
29 \r
30 rem This script is an 'example' of a one-command entire IB stack build to\r
31 rem single-file installer; used to build a WinOF release.\r
32 rem Script is designed to be invoked from the <whatever>\gen1\trunk folder with\r
33 rem <whatever>\branches\WinOF\Wix\* accessible.\r
34 rem\r
35 rem Verify the following env vars are suitible for your system configuration.\r
36 rem     _DDK, _PSDK, SVN, IDIR\r
37 \r
38 if "%1" == "" goto usage\r
39 if "%1" == "/?" goto usage\r
40 if "%1" == "-h" goto usage\r
41 if "%1" == "all" goto OK\r
42 if "%1" == "compile" goto OK\r
43 if "%1" == "makebin" goto OK\r
44 if "%1" == "msi" goto OK\r
45 if "%1" == "wix" goto OK\r
46 echo Unknown arg '%1' ?\r
47 :usage\r
48 echo "usage: BuildRelease { all | compile | makebin | msi | wix }"\r
49 exit /B 1 \r
50 \r
51 :OK\r
52 \r
53 rem set CERTNAME=noCert\r
54 set CERTNAME=cse1CStore\r
55 \r
56 rem A Digital driver signing certificate store name may be required.\r
57 if "%1" == "all" (\r
58     if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
59     if "%CERTNAME%" == "" (\r
60         echo %0\r
61         echo %0: Err - driver signing certificate store name required.\r
62         echo %0: see certmgr.exe\r
63         exit /B 1\r
64     )\r
65 )\r
66 \r
67 if "%1" == "msi" (\r
68     if "%CERTNAME%" == "noCert" set /P CERTNAME=[Enter Certificate Store Name] \r
69     if "%CERTNAME%" == "" (\r
70         echo %0\r
71         echo %0: Err - driver signing certificate store name required.\r
72         echo %0: see certmgr.exe\r
73         exit /B 1\r
74     )\r
75 )\r
76 \r
77 rem Use this WDK\r
78 \r
79 set _DDK=C:\WinDDK\6001.18001\r
80 \r
81 if NOT EXIST %_DDK% (\r
82     echo Missing WDK @ %_DDK%\r
83     exit /B 1\r
84 )\r
85 echo Building with WDK @ %_DDK%\r
86 \r
87 rem Platform SDK path - watchout for missing LoadPerf.h (installsp.c)\r
88 set _PSDK=C:\progra~1\mi2578~1\r
89 \r
90 rem WARNING - SVN set depends on the path '\openIB-windows-svn\xxx\gen1', where SVN is set to XXX\r
91 rem  substring[23rd...26th] chars (offset counting) == xxxx\r
92 \r
93 rem If this example method doesn't fit your environment, set SVN accordingly.\r
94 rem Note - OPENIB_REV is assigned SVN in a child script.\r
95 \r
96 set SVN=%CD:~22,4%\r
97 \r
98 rem assumes %CD% == '...\gen1\trunk'\r
99 set BSE=%CD%\r
100 set WIX=%CD:trunk=Branches\WinOF\WIX%\r
101 \r
102 set RBIN_WLH=%WIX%\wlh\bin%\r
103 set RBIN_WNET=%WIX%\wnet\bin%\r
104 set RBIN_WXP=%WIX%\wxp\bin%\r
105 \r
106 if NOT EXIST "..\branches\WinOF\WIX\build-all-MSI.bat" (\r
107     echo Missing .msi installer build script\r
108     echo    ..\branches\WinOF\WIX\build-all-MSI.bat\r
109     exit /B 1\r
110 )\r
111 \r
112 rem WIX Installer files (.msi) destination folder - set for local environment.\r
113 rem \r
114 set IDIR=%SystemRoot%\temp\r
115 \r
116 echo Building for OPENIB_REV %SVN%, installer files @ %IDIR%\r
117 echo   Drivers signed using Certificate '%CERTNAME%'\r
118 \r
119 rem pause thoughtfully.\r
120 if exist %windir%\system32\timeout.exe (\r
121     timeout /T 10\r
122 ) else (\r
123     pause\r
124 )\r
125 \r
126 if NOT EXIST "%IDIR%" (\r
127     echo Missing Installer file destination folder %IDIR%\r
128     exit /B 1\r
129 )\r
130 \r
131 rem Verify WIX 2.0 toolset is available - if not, download from\r
132 rem http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109\r
133 rem   select wix-2.0.5325.0-binaries.zip download and unzip to\r
134 rem   ..\branches\WinOF\WIX\WIX_tools\\r
135 rem\r
136 if NOT EXIST %WIX%\WIX_tools\wix-2.0.5325.0-binaries (\r
137     echo Missing WIX tools @ %WIX%\WIX_tools \r
138     exit /B 1\r
139 )\r
140 \r
141 if NOT EXIST etc\makebin.bat (\r
142     echo Missing etc\makebin.bat, script must run from gen1\trunk\r
143     exit /B 1\r
144 )\r
145 set STIME=%TIME%\r
146 \r
147 rem skip build - assumes binaries already built.\r
148 \r
149 if "%1" == "wix" (\r
150     set CERTNAME=nosign\r
151     goto mk_msi\r
152 )\r
153 \r
154 if "%1" == "msi" (\r
155     if not EXIST "%RBIN_WLH%"  goto InstallBin\r
156     if not EXIST "%RBIN_WNET%" goto InstallBin\r
157     if not EXIST "%RBIN_WXP%"  goto InstallBin\r
158     goto mk_msi\r
159 )\r
160 \r
161 if "%1" == "makebin" goto InstallBin\r
162 \r
163 rem Compile everything\r
164 \r
165 set OPS=-wgcM 3\r
166 \r
167 rem ********* WLH - Windows Server 2008 & Vista\r
168 \r
169 rem WLH x64\r
170 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
171 if ERRORLEVEL 1 exit /B 1\r
172 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
173 if ERRORLEVEL 1 exit /B 1\r
174 \r
175 rem WLH x86\r
176 \r
177 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
178 if ERRORLEVEL 1 exit /B 1\r
179 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
180 if ERRORLEVEL 1 exit /B 1\r
181 \r
182 rem WLH ia64\r
183 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
184 if ERRORLEVEL 1 exit /B 1\r
185 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WLH & build %OPS%"\r
186 if ERRORLEVEL 1 exit /B 1\r
187 \r
188 \r
189 rem ********* WXP - Windows XP - x86 only\r
190 \r
191 rem Fix XP WSD/installsp.exe build problems\r
192 \r
193 if exist .\ulp\wsd\dirs           rename .\ulp\wsd\dirs Xdirs\r
194 if exist .\tools\wsdinstall\dirs  rename .\tools\wsdinstall\dirs Xdirs\r
195 \r
196 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"\r
197 if ERRORLEVEL 1 exit /B 1\r
198 \r
199 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WXP & build %OPS%"\r
200 if ERRORLEVEL 1 exit /B 1\r
201 \r
202 rem restore WSD/installsp builds\r
203 if exist .\ulp\wsd\Xdirs           rename .\ulp\wsd\Xdirs dirs  \r
204 if exist .\tools\wsdinstall\Xdirs  rename .\tools\wsdinstall\Xdirs dirs\r
205 \r
206 \r
207 \r
208 rem ********* WNET - Windows Server 2003\r
209 \r
210 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
211 if ERRORLEVEL 1 exit /B 1\r
212 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
213 if ERRORLEVEL 1 exit /B 1\r
214 \r
215 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
216 if ERRORLEVEL 1 exit /B 1\r
217 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_x86.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
218 if ERRORLEVEL 1 exit /B 1\r
219 \r
220 %COMSPEC% /C "call %BSE%\etc\IB_CHK_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
221 if ERRORLEVEL 1 exit /B 1\r
222 %COMSPEC% /C "call %BSE%\etc\IB_FRE_BLD_IA64.bat %SVN% %CD% %_DDK% %_PSDK% WNET & build %OPS%"\r
223 if ERRORLEVEL 1 exit /B 1\r
224 \r
225 if "%1" == "compile" goto finito\r
226 \r
227 rem Install binaries into WIX environment, build msi installers.\r
228 \r
229 :InstallBin\r
230 \r
231 echo Create binary release tree - suitible for WinOF-WIX installer build.\r
232 \r
233 if EXIST "%RBIN_WLH%"  rmdir /S /Q %RBIN_WLH%\r
234 if EXIST "%RBIN_WNET%" rmdir /S /Q %RBIN_WNET%\r
235 if EXIST "%RBIN_WXP%"  rmdir /S /Q %RBIN_WXP%\r
236 \r
237 mkdir %RBIN_WLH%\r
238 mkdir %RBIN_WNET%\r
239 mkdir %RBIN_WXP%\r
240 \r
241 if EXIST "%BSE%\etc\makebin.bat" (\r
242     call %BSE%\etc\makebin.bat %BSE% %RBIN_WLH% wlh\r
243     if ERRORLEVEL 1 (\r
244         echo %0: Err in makebin.bat %BSE% %RBIN_WLH% wlh\r
245         exit /B 1\r
246     )\r
247     call %BSE%\etc\makebin.bat %BSE% %RBIN_WNET% wnet\r
248     if ERRORLEVEL 1 (\r
249         echo %0: Err in makebin.bat %BSE% %RBIN_WNET% wnet\r
250         exit /B 1\r
251     )\r
252     call %BSE%\etc\makebin.bat %BSE% %RBIN_WXP% wxp\r
253     if ERRORLEVEL 1 (\r
254         echo %0: Err in makebin.bat %BSE% %RBIN_WXP% wxp\r
255         exit /B 1\r
256     )\r
257 )\r
258 \r
259 if "%1" == "makebin" goto finito\r
260 \r
261 :mk_msi\r
262 \r
263 echo %0 - Drivers Signed with %CERTNAME% , Binary releases built in\r
264 echo     %RBIN_WLH%\r
265 echo     %RBIN_WNET%\r
266 echo     %RBIN_WXP%\r
267 \r
268 rem build WIX installers --> see ..\branches\WinOF\WIX\r
269 \r
270 %COMSPEC% /V:on /E:on /C "%_DDK%\bin\setenv.bat %_DDK% fre X64 WNET & cd /D %WIX% & build-all-MSI %CERTNAME% %IDIR%"\r
271 \r
272 \r
273 :finito\r
274 \r
275 echo .\r
276 echo %0: Finished %0 %*\r
277 echo %0:   Started  %STIME%\r
278 echo %0:   Finished %TIME%\r
279 \r
280 endlocal\r
281 @echo on\r