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