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