[CORE,HW] replace using of Paged pool by NonPaged one. [mlnx: 4836]
[mirror/winof/.git] / etc / makebin.bat
1 @echo off\r
2 setlocal\r
3 \r
4 rem usage:\r
5 rem   makebin src dst [win7 | wlh | wnet | wxp] DDK_ROOT WdfCoInstaler_Ver\r
6 rem\r
7 rem  src(%1) - OpenIB src path ...\gen1\trunk\r
8 rem  dst(%2) - full path tp where binaries are copied, 'bin\' created here.\r
9 rem  OSE(%3) - (Operating System Environment) which windows version\r
10 rem            {win7,wxp,wlh,wnet} representing {XP, server 2008 & server 2003}\r
11 rem  DDK_ROOT  - {blank == assumes %SystemDrive%\WinDDK\6001.1801}\r
12 rem  WdfCoInstall_ver - 5 digit WdfCoInstallerVersion # (blank == 01007} \r
13 \r
14 rem makebin is designed to take an openIB build tree path and produce a folder\r
15 rem tree of binaries suitable for input to a WIX builder which procduces\r
16 rem an OS .msi installer.\r
17 rem Building a WinOF release is done is 3 phases, makebin is the 2nd phase.\r
18 rem makebin is commonly run from trunk\buildrelease.bat although it can be\r
19 rem run standalone.\r
20 \r
21 echo Starting makebin\r
22 echo      Src %1\r
23 echo      Dst %2\r
24 echo      OS  %3\r
25 \r
26 if "%1"=="" goto usage\r
27 if "%2"=="" goto usage\r
28 \r
29 if "%3"=="" goto usage\r
30 if /I "%3"=="win7" goto os_ok\r
31 if /I "%3"=="wlh" goto os_ok\r
32 if /I "%3"=="wnet" goto os_ok\r
33 if /I "%3"=="wxp" goto os_ok\r
34 echo %0: Err - Invalid OS type '%3' ?\r
35 goto usage\r
36 \r
37 :os_ok\r
38 \r
39 rem Enable tracing to indicate phase for potiential debug.\r
40 set DBG=TRUE\r
41 \r
42 set OSE=%3\r
43 \r
44 rem setup DDK root path\r
45 if /I "%4"=="" (\r
46         set _DDK=%systemdrive%\WinDDK\6001.18001\r
47 ) else (\r
48         set _DDK=%4\r
49 )\r
50 if not exist "%_DDK%" (\r
51         echo Missing file %_DDK% ?\r
52         exit /B 1\r
53 )\r
54 \r
55 set WdfCoInstaller=%_DDK%\redist\wdf\r
56 set DIFXP=%_DDK%\redist\DIFx\DIFxAPP\WixLib\r
57 set DPINST=%_DDK%\redist\DIFx\DPInst\EngMui\r
58 \r
59 if /I "%5"=="" (\r
60         set CoInstallVer=01009\r
61 ) else (\r
62         set CoInstallVer=%5\r
63 )\r
64 \r
65 if not exist %1 goto usage\r
66 if not exist %2 goto usage\r
67 \r
68 if /I "%OSE%" == "wxp" (\r
69     if not exist %1\bin\kernel\objfre_%OSE%_x86\i386 goto error3\r
70     if not exist %1\bin\user\objfre_%OSE%_x86\i386 goto error6\r
71     if not exist %1\bin\user\objchk_%OSE%_x86\i386 goto error9\r
72 ) else (\r
73     if not exist %1\bin\kernel\objfre_%OSE%_amd64\amd64 goto error1\r
74     if not exist %1\bin\kernel\objfre_%OSE%_ia64\ia64 goto error2\r
75     if not exist %1\bin\kernel\objfre_%OSE%_x86\i386 goto error3\r
76     if not exist %1\bin\user\objfre_%OSE%_amd64\amd64 goto error4\r
77     if not exist %1\bin\user\objfre_%OSE%_ia64\ia64 goto error5\r
78     if not exist %1\bin\user\objfre_%OSE%_x86\i386 goto error6\r
79     if not exist %1\bin\user\objchk_%OSE%_amd64\amd64 goto error7\r
80     if not exist %1\bin\user\objchk_%OSE%_ia64\ia64 goto error8\r
81     if not exist %1\bin\user\objchk_%OSE%_x86\i386 goto error9\r
82 )\r
83 \r
84 set CORE_DRV_FRE=ibbus.sys ibbus.pdb ibiou.sys ibiou.pdb ib_iou.inf mthca.sys mthca.inf mthca.pdb mlx4_hca.sys mlx4_hca.pdb mlx4_hca.inf mlx4_bus.sys mlx4_bus.pdb mlx4_bus.inf winverbs.sys winverbs.pdb winmad.sys winmad.pdb\r
85 \r
86 set CORE_UM_F=ibal.dll ibal.lib ibal.pdb complib.dll complib.lib complib.pdb mthcau.dll mthcau.pdb mlx4u.dll mlx4u.pdb\r
87 \r
88 set CORE_UM_D=ibald.dll ibald.lib ibald.pdb complibd.dll complibd.lib complibd.pdb mthcaud.dll mthcaud.pdb mlx4ud.dll mlx4ud.pdb\r
89 \r
90 set WV_CHK=winverbsd.dll winverbsd.lib winmadd.dll winmadd.lib libibverbsd.dll libibverbsd.lib libibverbsd.pdb libibumadd.lib libibumadd.dll libibumadd.pdb libibmadd.lib libibmadd.dll libibmadd.pdb librdmacmd.lib librdmacmd.dll librdmacmd.pdb libibnetdiscd.dll libibnetdiscd.pdb\r
91 \r
92 set WV_FRE=winverbs.dll winverbs.lib winmad.dll winmad.lib libibverbs.dll libibverbs.lib libibverbs.pdb libibumad.lib libibumad.dll libibumad.pdb libibmad.lib libibmad.dll libibmad.pdb librdmacm.dll librdmacm.lib librdmacm.pdb libibnetdisc.dll libibnetdisc.pdb\r
93 \r
94 set DAPL2_F=dapl2.dll dapl2.pdb dapl2-ofa-scm.dll dapl2-ofa-scm.pdb dapl2-ofa-cma.dll dapl2-ofa-cma.pdb dat2.dll dat2.lib dat2.pdb\r
95 \r
96 set DAPL2_D=dapl2d.dll dapl2d.pdb dapl2-ofa-scmd.dll dapl2-ofa-scmd.pdb dapl2-ofa-cmad.dll dapl2-ofa-cmad.pdb dat2d.dll dat2d.lib dat2d.pdb\r
97 \r
98 set DAPL_F=dapl.dll dapl.pdb dat.dll dat.lib dat.pdb\r
99 \r
100 set DAPL_D=dapld.dll dapld.pdb datd.dll datd.lib datd.pdb\r
101 \r
102 \r
103 rem\r
104 rem KERNEL MODE\r
105 rem\r
106 \r
107 if /I "%OSE%" == "wxp" goto wxp_drv\r
108 \r
109 rem Copy AMD64 Free drivers\r
110 set bin_dir=%1\bin\kernel\objfre_%OSE%_amd64\amd64\r
111 set dest_dir=%2\HCA\amd64\\r
112 \r
113 if "%DBG%" == "TRUE" echo DBG: AMD64 free drivers\r
114 \r
115 for %%i in ( %CORE_DRV_FRE% ) do (\r
116     xcopy %bin_dir%\%%i %dest_dir% /yq 1> nul\r
117     if ERRORLEVEL 1 (\r
118         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
119         exit /B 1\r
120     )\r
121 )\r
122 \r
123 xcopy %WdfCoInstaller%\amd64\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq \r
124 \r
125 xcopy %bin_dir%\ipoib.sys %2\net\amd64\ /yq\r
126 xcopy %bin_dir%\qlgcvnic.sys %2\net\amd64\ /yq\r
127 xcopy %bin_dir%\ibsrp.sys %2\storage\amd64\ /yq\r
128 \r
129 xcopy %bin_dir%\ipoib.pdb %2\net\amd64\ /yq\r
130 xcopy %bin_dir%\qlgcvnic.pdb %2\net\amd64\ /yq\r
131 xcopy %bin_dir%\ibsrp.pdb %2\storage\amd64\ /yq\r
132 \r
133 xcopy %bin_dir%\netipoib.inf %2\net\amd64\ /yq\r
134 xcopy %bin_dir%\netvnic.inf %2\net\amd64\ /yq\r
135 xcopy %bin_dir%\ib_srp.inf %2\storage\amd64\ /yq\r
136 \r
137 rem Copy IA64 drivers\r
138 set bin_dir=%1\bin\kernel\objfre_%OSE%_ia64\ia64\r
139 set dest_dir=%2\HCA\ia64\\r
140 \r
141 if "%DBG%" == "TRUE" echo DBG: ia64 free drivers\r
142 \r
143 for %%i in ( %CORE_DRV_FRE% ) do (\r
144     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
145     if ERRORLEVEL 1 (\r
146         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
147         exit /B 1\r
148     )\r
149 )\r
150 xcopy %WdfCoInstaller%\ia64\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq \r
151 \r
152 xcopy %bin_dir%\ipoib.sys %2\net\ia64\ /yq\r
153 xcopy %bin_dir%\qlgcvnic.sys %2\net\ia64\ /yq\r
154 xcopy %bin_dir%\ibsrp.sys %2\storage\ia64\ /yq\r
155 \r
156 xcopy %bin_dir%\ipoib.pdb %2\net\ia64\ /yq\r
157 xcopy %bin_dir%\qlgcvnic.pdb %2\net\ia64\ /yq\r
158 xcopy %bin_dir%\ibsrp.pdb %2\storage\ia64\ /yq\r
159 \r
160 xcopy %bin_dir%\netipoib.inf %2\net\ia64\ /yq\r
161 xcopy %bin_dir%\netvnic.inf %2\net\ia64\ /yq\r
162 xcopy %bin_dir%\ib_srp.inf %2\storage\ia64\ /yq\r
163 \r
164 rem Copy x86 drivers\r
165 \r
166 :wxp_drv\r
167 \r
168 if "%DBG%" == "TRUE" echo DBG: x86 free drivers\r
169 \r
170 set bin_dir=%1\bin\kernel\objfre_%OSE%_x86\i386\r
171 set dest_dir=%2\HCA\x86\\r
172 \r
173 for %%i in ( %CORE_DRV_FRE% ) do (\r
174     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
175     if ERRORLEVEL 1 (\r
176         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
177         exit /B 1\r
178     )\r
179 )\r
180 xcopy %WdfCoInstaller%\x86\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq\r
181 \r
182 xcopy %bin_dir%\ipoib.sys %2\net\x86\ /yq\r
183 xcopy %bin_dir%\qlgcvnic.sys %2\net\x86\ /yq\r
184 xcopy %bin_dir%\ibsrp.sys %2\storage\x86\ /yq\r
185 \r
186 xcopy %bin_dir%\ipoib.pdb %2\net\x86\ /yq\r
187 xcopy %bin_dir%\qlgcvnic.pdb %2\net\x86\ /yq\r
188 xcopy %bin_dir%\ibsrp.pdb %2\storage\x86\ /yq\r
189 \r
190 rem Use netipoib.inf without WSD support for XP32\r
191 if /I "%OSE%" == "wxp" (\r
192     copy /A /Y %1\ulp\ipoib\kernel\netipoib-xp32.inf %2\net\x86\netipoib.inf\r
193 ) else (\r
194     xcopy %bin_dir%\netipoib.inf %2\net\x86\ /yq\r
195 )\r
196 \r
197 rem allow XP SRP build & sign, WIX skips SRP for XP\r
198 rem otherwise there is too much special casing for SRP on XP.\r
199 xcopy %bin_dir%\ib_srp.inf %2\storage\x86\ /yq\r
200 xcopy %bin_dir%\netvnic.inf %2\net\x86\ /yq\r
201 xcopy %bin_dir%\ib_srp.inf %2\storage\x86\ /yq\r
202 \r
203 rem Checked USER MODE\r
204 \r
205 if /I "%OSE%" == "wxp" goto wxp_userm\r
206 \r
207 if "%DBG%" == "TRUE" echo DBG: amd64 Checked amd64 user-mode\r
208 \r
209 set bin_dir=%1\bin\user\objchk_%OSE%_amd64\amd64\r
210 set dest_dir=%2\HCA\amd64\\r
211 \r
212 for %%i in (%CORE_UM_D%) do (\r
213     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
214     if ERRORLEVEL 1 (\r
215         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
216         exit /B 1\r
217     )\r
218 )\r
219 \r
220 echo xcopy winverbs: User checked to HCA\amd64\r
221 \r
222 for %%i in ( %WV_CHK% ) do (\r
223     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
224     if ERRORLEVEL 1 (\r
225         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
226         exit /B 1\r
227     )\r
228 )\r
229 \r
230 echo xcopy *.exe tools\amd64\debug\\r
231 xcopy %bin_dir%\*.exe %2\tools\amd64\debug\ /yq 1>nul\r
232 \r
233 for %%i in ( %DAPL_D% ) do (\r
234     xcopy %bin_dir%\%%i %2\DAPL\amd64\ /yq 1>nul\r
235     if ERRORLEVEL 1 (\r
236         echo ERR on xcopy %bin_dir%\%%i %2\DAPL\amd64\ /yq\r
237         exit /B 1\r
238     )\r
239 )\r
240 \r
241 for %%i in ( %DAPL2_D% ) do (\r
242     xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq 1>nul\r
243     if ERRORLEVEL 1 (\r
244         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq\r
245         exit /B 1\r
246     )\r
247 )\r
248 \r
249 \r
250 rem Copy checked IA64 dlls\r
251 \r
252 if "%DBG%" == "TRUE" echo DBG: ia64 Checked dlls\r
253 \r
254 set bin_dir=%1\bin\user\objchk_%OSE%_ia64\ia64\r
255 set dest_dir=%2\HCA\ia64\\r
256 \r
257 for %%i in (%CORE_UM_D%) do (\r
258     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
259     if ERRORLEVEL 1 (\r
260         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
261         exit /B 1\r
262     )\r
263 )\r
264 \r
265 echo xcopy winverbs: User checked to HCA\ia64\r
266 \r
267 for %%i in ( %WV_CHK% ) do (\r
268     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
269     if ERRORLEVEL 1 (\r
270         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
271         exit /B 1\r
272     )\r
273 )\r
274 \r
275 echo xcopy *.exe tools\ia64\debug\ \r
276 xcopy %bin_dir%\*.exe %2\tools\ia64\debug\ /yq 1>nul\r
277 \r
278 for %%i in ( %DAPL_D% ) do (\r
279     xcopy %bin_dir%\%%i %2\DAPL\ia64\ /yq 1>nul\r
280     if ERRORLEVEL 1 (\r
281         echo ERR on xcopy %bin_dir%\%%i %2\DAPL\ia64\ /yq\r
282         exit /B 1\r
283     )\r
284 )\r
285 \r
286 for %%i in ( %DAPL2_D% ) do (\r
287     xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq 1>nul\r
288     if ERRORLEVEL 1 (\r
289         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq\r
290         exit /B 1\r
291     )\r
292 )\r
293 \r
294 \r
295 rem checked x86 user mode\r
296 \r
297 :wxp_userm\r
298 \r
299 if "%DBG%" == "TRUE" echo DBG: x86 Checked user-mode dlls\r
300 \r
301 set bin_dir=%1\bin\user\objchk_%OSE%_x86\i386\r
302 set dest_dir=%2\HCA\x86\\r
303 \r
304 for %%i in (%CORE_UM_D%) do (\r
305     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
306     if ERRORLEVEL 1 (\r
307         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
308         exit /B 1\r
309     )\r
310 )\r
311 \r
312 echo xcopy winverbs: User checked to HCA\x86\r
313 \r
314 for %%i in ( %WV_CHK% ) do (\r
315     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
316     if ERRORLEVEL 1 (\r
317         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
318         exit /B 1\r
319     )\r
320 )\r
321 \r
322 if "%DBG%" == "TRUE"  echo DBG: checked *.exe to tools\x86\debug\ \r
323 xcopy %bin_dir%\*.exe %2\tools\x86\debug\ /yq 1>nul\r
324 \r
325 for %%i in ( %DAPL_D% ) do (\r
326     xcopy %bin_dir%\%%i %2\DAPL\x86\ /yq 1>nul\r
327     if ERRORLEVEL 1 (\r
328         echo ERR on xcopy %bin_dir%\%%i %2\DAPL\x86\ /yq\r
329         exit /B 1\r
330     )\r
331 )\r
332 \r
333 for %%i in ( %DAPL2_D% ) do (\r
334     xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq 1>nul\r
335     if ERRORLEVEL 1 (\r
336         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq\r
337         exit /B 1\r
338     )\r
339 )\r
340 copy /B %bin_dir%\installsp.exe %2\tools\x86\debug\ /y 1>nul\r
341 \r
342 if /I "%OSE%" == "wxp" goto wxp_free_drv\r
343 \r
344 rem checked x86 DLLs --> WOW64 DLLs\r
345 \r
346 if "%DBG%" == "TRUE" echo DBG: x86 Checked dlls copy to WOW64 dlls\r
347 \r
348 rem xcopy had problems determining if dest was File | Dir ??\r
349 \r
350 copy /B %bin_dir%\ibald.dll %2\HCA\amd64\ibal32d.dll /y \r
351 copy /B %bin_dir%\ibald.lib %2\HCA\amd64\ibal32d.lib /y \r
352 copy /B %bin_dir%\ibald.pdb %2\HCA\amd64\ibal32d.pdb /y \r
353 copy /B %bin_dir%\complibd.dll %2\HCA\amd64\cl32d.dll /y \r
354 copy /B %bin_dir%\complibd.lib %2\HCA\amd64\cl32d.lib /y \r
355 copy /B %bin_dir%\complibd.pdb %2\HCA\amd64\cl32d.pdb /y \r
356 \r
357 copy /B %bin_dir%\ibald.dll %2\HCA\ia64\ibal32d.dll /y \r
358 copy /B %bin_dir%\ibald.lib %2\HCA\ia64\ibal32d.lib /y \r
359 copy /B %bin_dir%\ibald.pdb %2\HCA\ia64\ibal32d.pdb /y \r
360 copy /B %bin_dir%\complibd.dll %2\HCA\ia64\cl32d.dll /y \r
361 copy /B %bin_dir%\complibd.lib %2\HCA\ia64\cl32d.lib /y \r
362 copy /B %bin_dir%\complibd.pdb %2\HCA\ia64\cl32d.pdb /y \r
363 \r
364 copy /B %bin_dir%\mthcaud.dll %2\HCA\amd64\mthca32d.dll /y \r
365 copy /B %bin_dir%\mthcaud.dll %2\HCA\ia64\mthca32d.dll /y \r
366 \r
367 copy /B %bin_dir%\mlx4ud.dll %2\HCA\amd64\mlx4u32d.dll /y \r
368 copy /B %bin_dir%\mlx4ud.dll %2\HCA\ia64\mlx4u32d.dll /y\r
369 \r
370 copy /B %bin_dir%\dapld.dll  %2\DAPL\amd64\dapl32d.dll /y \r
371 copy /B %bin_dir%\datd.dll   %2\DAPL\amd64\dat32d.dll /y \r
372 copy /B %bin_dir%\dapld.dll  %2\DAPL\ia64\dapl32d.dll /y \r
373 copy /B %bin_dir%\datd.dll   %2\DAPL\ia64\dat32d.dll /y \r
374 \r
375 copy /B %bin_dir%\dapl2d.dll %2\DAPL2\amd64\dapl232d.dll /y \r
376 copy /B %bin_dir%\dat2d.dll  %2\DAPL2\amd64\dat232d.dll /y \r
377 copy /B %bin_dir%\dapl2d.dll %2\DAPL2\ia64\dapl232d.dll /y \r
378 copy /B %bin_dir%\dat2d.dll  %2\DAPL2\ia64\dat232d.dll /y \r
379 \r
380 rem Copy Free x64 dll\r
381 \r
382 set bin_dir=%1\bin\user\objfre_%OSE%_amd64\amd64\r
383 set dest_dir=%2\HCA\amd64\\r
384 \r
385 if "%DBG%" == "TRUE" echo DBG: copy amd64 Free dlls\r
386 \r
387 for %%i in (%CORE_UM_F%) do (\r
388     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
389     if ERRORLEVEL 1 (\r
390         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /y\r
391         exit /B 1\r
392     )\r
393 )\r
394 \r
395 echo xcopy winverbs: User free to HCA\amd64\r
396 \r
397 for %%i in ( %WV_FRE% ) do (\r
398     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
399     if ERRORLEVEL 1 (\r
400         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
401         exit /B 1\r
402     )\r
403 )\r
404 \r
405 xcopy %bin_dir%\ibwsd.dll %2\net\amd64\ /yq\r
406 xcopy %bin_dir%\installsp.exe %2\net\amd64\ /yq \r
407 xcopy %bin_dir%\installsp.exe %2\tools\amd64\release\ /yq\r
408 \r
409 if exist "%bin_dir%\ndinstall.exe" (\r
410     xcopy %bin_dir%\ndinstall.exe %2\net\amd64\ /yq \r
411     xcopy %bin_dir%\ndinstall.exe %2\tools\amd64\release\ /yq\r
412     xcopy %bin_dir%\ibndprov.dll %2\net\amd64\ /yq\r
413 ) else (\r
414     echo %0 - missing x64 Network Direct components [ibndprov.dll,ndinstall.exe]\r
415 )\r
416 \r
417 echo xcopy amd64 Free *.exe tools\amd64\release\ \r
418 xcopy %bin_dir%\*.exe %2\tools\amd64\release\ /yq 1>nul\r
419 \r
420 echo xcopy AMD64 [Winverb-apps].pdb tools\amd64\release\ \r
421 xcopy %bin_dir%\*.pdb %2\tools\amd64\release\ /yq 1>nul\r
422 if ERRORLEVEL 1 (\r
423         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\amd64\release\ /yq\r
424         exit /B 1\r
425 )\r
426 \r
427 for %%i in ( %DAPL_F% ) do (\r
428     xcopy %bin_dir%\%%i %2\DAPL\amd64\ /yq 1>nul\r
429     if ERRORLEVEL 1 (\r
430         echo ERR on xcopy %bin_dir%\%%i %2\DAPL\amd64\ /yq\r
431         exit /B 1\r
432     )\r
433 )\r
434 \r
435 for %%i in ( %DAPL2_F% ) do (\r
436     xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq 1>nul\r
437     if ERRORLEVEL 1 (\r
438         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq\r
439         exit /B 1\r
440     )\r
441 )\r
442 \r
443 \r
444 rem Copy Free IA64 dlls\r
445 \r
446 set bin_dir=%1\bin\user\objfre_%OSE%_ia64\ia64\r
447 set dest_dir=%2\HCA\ia64\\r
448 \r
449 if "%DBG%" == "TRUE" echo DBG: copy IA64 Free dlls\r
450 \r
451 for %%i in (%CORE_UM_F%) do (\r
452     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
453     if ERRORLEVEL 1 (\r
454         echo ERR on xcopy %%i %dest_dir% /yq\r
455         exit /B 1\r
456     )\r
457 )\r
458 \r
459 echo xcopy winverbs: User free to HCA\ia64\r
460 \r
461 for %%i in ( %WV_FRE% ) do (\r
462     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
463     if ERRORLEVEL 1 (\r
464         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
465         exit /B 1\r
466     )\r
467 )\r
468 \r
469 xcopy %bin_dir%\ibwsd.dll %2\net\ia64\ /yq\r
470 xcopy %bin_dir%\installsp.exe %2\net\ia64\ /yq\r
471 rem xcopy %bin_dir%\ndinstall.exe %2\net\ia64\ /yq\r
472 rem xcopy %bin_dir%\ibndprov.dll %2\net\ia64\ /yq\r
473 \r
474 echo xcopy IA64 Free *.exe tools\ia64\release\ \r
475 xcopy %bin_dir%\*.exe %2\tools\ia64\release\ /yq 1>nul\r
476 \r
477 echo xcopy IA64 [Winverb-apps].pdb tools\ia64\release\ \r
478 xcopy %bin_dir%\*.pdb %2\tools\ia64\release\ /yq 1>nul\r
479 if ERRORLEVEL 1 (\r
480         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\ia64\release\ /yq\r
481         exit /B 1\r
482 )\r
483 \r
484 for %%i in ( %DAPL_F% ) do (\r
485     xcopy %bin_dir%\%%i %2\DAPL\ia64\ /yq 1>nul\r
486     if ERRORLEVEL 1 (\r
487         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq\r
488         exit /B 1\r
489     )\r
490 )\r
491 \r
492 for %%i in ( %DAPL2_F% ) do (\r
493     xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq 1>nul\r
494     if ERRORLEVEL 1 (\r
495         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq\r
496         exit /B 1\r
497     )\r
498 )\r
499 \r
500 \r
501 rem Copy Free x86 drivers\r
502 \r
503 :wxp_free_drv\r
504 \r
505 set bin_dir=%1\bin\user\objfre_%OSE%_x86\i386\r
506 set dest_dir=%2\HCA\x86\\r
507 \r
508 if "%DBG%" == "TRUE" echo DBG: copy x86 Free dlls\r
509 \r
510 for %%i in (%CORE_UM_F%) do (\r
511     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
512     if ERRORLEVEL 1 (\r
513         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
514         exit /B 1\r
515     )\r
516 )\r
517 \r
518 echo xcopy winverbs: User free to HCA\x86\r
519 \r
520 for %%i in ( %WV_FRE% ) do (\r
521     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
522     if ERRORLEVEL 1 (\r
523         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
524         exit /B 1\r
525     )\r
526 )\r
527 \r
528 echo xcopy x86 free *.exe to tools\x86\release\r
529 xcopy %bin_dir%\*.exe %2\tools\x86\release\ /yq 1>nul\r
530 \r
531 echo xcopy X86 Free [Winverb-apps].pdb tools\x86\release\ \r
532 xcopy %bin_dir%\*.pdb %2\tools\x86\release\ /yq 1>nul\r
533 if ERRORLEVEL 1 (\r
534         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\x86\release\ /yq\r
535         exit /B 1\r
536 )\r
537 \r
538 for %%i in ( %DAPL_F% ) do (\r
539     xcopy %bin_dir%\%%i %2\DAPL\x86\ /yq 1>nul\r
540     if ERRORLEVEL 1 (\r
541         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq\r
542         exit /B 1\r
543     )\r
544 )\r
545 \r
546 for %%i in ( %DAPL2_F% ) do (\r
547     xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq 1>nul\r
548     if ERRORLEVEL 1 (\r
549         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq\r
550         exit /B 1\r
551     )\r
552 )\r
553 \r
554 if exist "%bin_dir%\ndinstall.exe" (\r
555     copy %bin_dir%\ndinstall.exe %2\net\x86\ /y\r
556     copy %bin_dir%\ndinstall.exe %2\tools\x86\release\ /y\r
557     copy %bin_dir%\ibndprov.dll %2\net\x86\ /y\r
558 ) else (\r
559     echo %0 - missing x86 Network Direct components [ibndprov.dll,ndinstall.exe]\r
560 )\r
561 \r
562 if /I "%OSE%" == "wxp" goto mk_sym_bin\r
563 rem free x86 items\r
564 \r
565 if "%DBG%" == "TRUE" echo DBG: copy x86 Free WSD\r
566 \r
567 copy %bin_dir%\ibwsd.dll %2\net\x86\ /y\r
568 copy %bin_dir%\installsp.exe %2\net\x86\ /y\r
569 copy %bin_dir%\installsp.exe %2\tools\x86\release\ /y\r
570 \r
571 rem free x86 DLLs --> WOW64 DLLs\r
572 \r
573 if "%DBG%" == "TRUE" echo DBG: x86 Free dlls to WOW64\r
574 \r
575 if exist "%bin_dir%\ibndprov.dll" (\r
576     copy %bin_dir%\ibndprov.dll %2\net\amd64\ibndprov32.dll /y\r
577     copy %bin_dir%\ibndprov.dll %2\net\ia64\ibndprov32.dll /y\r
578 )\r
579 copy /B %bin_dir%\ibwsd.dll %2\net\amd64\ibwsd32.dll /y\r
580 copy /B %bin_dir%\ibwsd.dll %2\net\ia64\ibwsd32.dll /y\r
581 \r
582 copy /B %bin_dir%\ibal.dll %2\HCA\amd64\ibal32.dll /y\r
583 copy /B %bin_dir%\ibal.lib %2\HCA\amd64\ibal32.lib /y\r
584 copy /B %bin_dir%\ibal.pdb %2\HCA\amd64\ibal32.pdb /y\r
585 copy /B %bin_dir%\complib.dll %2\HCA\amd64\cl32.dll /y\r
586 copy /B %bin_dir%\complib.lib %2\HCA\amd64\cl32.lib /y\r
587 copy /B %bin_dir%\complib.pdb %2\HCA\amd64\cl32.pdb /y\r
588 copy /B %bin_dir%\winverbs.dll %2\HCA\amd64\winverbs32.dll /y\r
589 copy /B %bin_dir%\winverbs.lib %2\HCA\amd64\winverbs32.lib /y\r
590 copy /B %bin_dir%\winverbs.pdb %2\HCA\amd64\winverbs32.pdb /y\r
591 copy /B %bin_dir%\winmad.dll %2\HCA\amd64\winverbs32.dll /y\r
592 copy /B %bin_dir%\winmad.lib %2\HCA\amd64\winverbs32.lib /y\r
593 copy /B %bin_dir%\winmad.pdb %2\HCA\amd64\winverbs32.pdb /y\r
594 \r
595 copy /B %bin_dir%\ibal.dll %2\HCA\ia64\ibal32.dll /y\r
596 copy /B %bin_dir%\ibal.lib %2\HCA\ia64\ibal32.lib /y\r
597 copy /B %bin_dir%\ibal.pdb %2\HCA\ia64\ibal32.pdb /y\r
598 copy /B %bin_dir%\complib.dll %2\HCA\ia64\cl32.dll /y\r
599 copy /B %bin_dir%\complib.lib %2\HCA\ia64\cl32.lib /y\r
600 copy /B %bin_dir%\complib.pdb %2\HCA\ia64\cl32.pdb /y\r
601 copy /B %bin_dir%\winverbs.dll %2\HCA\ia64\winverbs32.dll /y\r
602 copy /B %bin_dir%\winverbs.lib %2\HCA\ia64\winverbs32.lib /y\r
603 copy /B %bin_dir%\winverbs.pdb %2\HCA\ia64\winverbs32.pdb /y\r
604 copy /B %bin_dir%\winmad.dll %2\HCA\ia64\winverbs32.dll /y\r
605 copy /B %bin_dir%\winmad.lib %2\HCA\ia64\winverbs32.lib /y\r
606 copy /B %bin_dir%\winmad.pdb %2\HCA\ia64\winverbs32.pdb /y\r
607 \r
608 copy /B %bin_dir%\mthcau.dll %2\HCA\amd64\mthca32.dll /y\r
609 copy /B %bin_dir%\mthcau.dll %2\HCA\ia64\mthca32.dll /y\r
610 \r
611 copy /B %bin_dir%\mlx4u.dll %2\HCA\amd64\mlx4u32.dll /y\r
612 copy /B %bin_dir%\mlx4u.dll %2\HCA\ia64\mlx4u32.dll /y\r
613 \r
614 copy /B %bin_dir%\dapl.dll %2\DAPL\amd64\dapl32.dll /y\r
615 copy /B %bin_dir%\dat.dll %2\DAPL\amd64\dat32.dll /y\r
616 copy /B %bin_dir%\dapl.dll %2\DAPL\ia64\dapl32.dll /y\r
617 copy /B %bin_dir%\dat.dll %2\DAPL\ia64\dat32.dll /y\r
618 \r
619 copy /B %bin_dir%\dapl2.dll %2\DAPL2\amd64\dapl232.dll /y\r
620 copy /B %bin_dir%\dat2.dll %2\DAPL2\amd64\dat232.dll /y\r
621 copy /B %bin_dir%\dapl2.dll %2\DAPL2\ia64\dapl232.dll /y\r
622 copy /B %bin_dir%\dat2.dll %2\DAPL2\ia64\dat232.dll /y\r
623 \r
624 :mk_sym_bin\r
625 \r
626 rem bin\bin used to generate a web based symbol store in build-ofa-dist.bat.\r
627 \r
628 echo 'Copy bin\obj{chk,fre}_%3_{x86,amd64,ia64} to bin'\r
629 rem xcopy %1\bin %2\bin\ /eyq\r
630 rem instead of copying the entire bin\ folder, pick items of OS interest.\r
631 \r
632 xcopy %1\bin\kernel\objchk_%3_x86 %2\bin\kernel\objchk_%3_x86\ /S /Y /Q\r
633 xcopy %1\bin\kernel\objfre_%3_x86 %2\bin\kernel\objfre_%3_x86\ /S /Y /Q\r
634 if /I "%3" == "wxp" goto ucpy\r
635 xcopy %1\bin\kernel\objchk_%3_ia64 %2\bin\kernel\objchk_%3_ia64\ /S /Y /Q\r
636 xcopy %1\bin\kernel\objfre_%3_ia64 %2\bin\kernel\objfre_%3_ia64\ /S /Y /Q\r
637 xcopy %1\bin\kernel\objchk_%3_amd64 %2\bin\kernel\objchk_%3_amd64\ /S /Y /Q\r
638 xcopy %1\bin\kernel\objfre_%3_amd64 %2\bin\kernel\objfre_%3_amd64\ /S /Y /Q\r
639 \r
640 :ucpy\r
641 \r
642 xcopy %1\bin\user\objchk_%3_x86 %2\bin\user\objchk_%3_x86\ /S /Y /Q\r
643 xcopy %1\bin\user\objfre_%3_x86 %2\bin\user\objfre_%3_x86\ /S /Y /Q\r
644 if /I "%3" == "wxp" goto ucpyx\r
645 xcopy %1\bin\user\objchk_%3_ia64 %2\bin\user\objchk_%3_ia64\ /S /Y /Q\r
646 xcopy %1\bin\user\objfre_%3_ia64 %2\bin\user\objfre_%3_ia64\ /S /Y /Q\r
647 xcopy %1\bin\user\objchk_%3_amd64 %2\bin\user\objchk_%3_amd64\ /S /Y /Q\r
648 xcopy %1\bin\user\objfre_%3_amd64 %2\bin\user\objfre_%3_amd64\ /S /Y /Q\r
649 \r
650 :ucpyx\r
651 \r
652 rem echo Copy symbol files: bin\*.pdb to %2\symbols\r
653 rem xcopy %1\bin\*.pdb %2\symbols\ /eyq\r
654 \r
655 rem if "%DBG%" == "TRUE" echo DBG: bin\ file cleanup, file-not-found is OK.\r
656 rem pushd %2\r
657 rem del /s bin\*.pdb > nul\r
658 rem del /s ibtest*   > nul\r
659 rem del /s pingpong* > nul\r
660 rem del /s *Sdp*     > nul\r
661 rem del /s Select*   > nul\r
662 rem del /s usrp*     > nul\r
663 rem del /s bin\*.lib > nul\r
664 rem del /s bin\*.exp > nul\r
665 rem popd\r
666 \r
667 rem Copy DAT v1.1 header files\r
668 if "%DBG%" == "TRUE" echo DBG: DAT v1.1 header files\r
669 if exist %1\ulp\dapl\dat\include\dat (\r
670     pushd %1\ulp\dapl\dat\include\dat\r
671 \r
672     xcopy dat.h %2\DAPL /Y/Q\r
673     xcopy dat_error.h %2\DAPL /Y/Q\r
674     xcopy dat_platform_specific.h %2\DAPL /Y/Q\r
675     xcopy dat_redirection.h %2\DAPL /Y/Q\r
676     xcopy dat_registry.h %2\DAPL /Y/Q\r
677     xcopy dat_vendor_specific.h %2\DAPL /Y/Q\r
678     xcopy udat.h %2\DAPL /Y/Q\r
679     xcopy udat_config.h %2\DAPL /Y/Q\r
680     xcopy udat_redirection.h %2\DAPL /Y/Q\r
681     xcopy udat_vendor_specific.h %2\DAPL /Y/Q\r
682     popd\r
683 )\r
684 \r
685 rem Copy DAT v2.0 header files\r
686 \r
687 if "%DBG%" == "TRUE" echo DBG: [%OSE%] DAT v2.0 header files\r
688 \r
689 if exist %1\ulp\dapl2\dat\include\dat (set DATINC=dat) else (set DATINC=dat2)\r
690 pushd %1\ulp\dapl2\dat\include\%DATINC%\r
691 if ERRORLEVEL 1 (\r
692     echo %0: ERR - missing DAT files @ %1\ulp\dapl2\dat\include\%DATINC%\r
693     exit /B 1\r
694 )\r
695 xcopy dat.h %2\DAPL2 /Y/Q  \r
696 xcopy dat_error.h %2\DAPL2 /Y/Q\r
697 xcopy dat_platform_specific.h %2\DAPL2 /Y/Q\r
698 xcopy dat_redirection.h %2\DAPL2 /Y/Q\r
699 xcopy dat_registry.h %2\DAPL2 /Y/Q\r
700 xcopy dat_vendor_specific.h %2\DAPL2 /Y/Q\r
701 xcopy udat.h %2\DAPL2 /Y/Q\r
702 xcopy udat_config.h %2\DAPL2 /Y/Q\r
703 xcopy udat_redirection.h %2\DAPL2 /Y/Q\r
704 xcopy udat_vendor_specific.h %2\DAPL2 /Y/Q\r
705 popd\r
706 \r
707 pushd %1\ulp\dapl2\test\dapltest\scripts\r
708 xcopy dt-svr.bat %2\DAPL2 /Y/Q\r
709 xcopy dt-cli.bat %2\DAPL2 /Y/Q\r
710 popd\r
711 \r
712 rem Copy IBAL header files\r
713 if "%DBG%" == "TRUE" echo DBG: IBAL header files\r
714 if exist %1\inc (\r
715     if exist %2\inc rmdir /S/Q %2\inc\r
716     mkdir %2\Inc\r
717     pushd %1\inc\r
718     xcopy oib_ver.h %2\Inc /Y/Q\r
719     xcopy openib.def %2\Inc /Y/Q\r
720     xcopy Complib %2\Inc\Complib /I/S/Y/Q\r
721     xcopy Iba %2\Inc\Iba /I/S/Y/Q\r
722     xcopy User\Complib %2\Inc\Complib /I/S/Y/Q\r
723     xcopy User\Iba %2\Inc\Iba /I/S/Y/Q\r
724     popd\r
725 )\r
726 \r
727 rem WDK/WIX, Docs & IB SDK items\r
728 if "%DBG%" == "TRUE" echo DBG: WDK, WIx, Docs and SDK files\r
729 \r
730 if exist %2\Misc  rmdir /Q/S %2\Misc\r
731 mkdir %2\Misc\r
732 \r
733 copy /Y/A %1\Docs\Manual.htm %2\Misc\Manual.htm\r
734 copy /Y/A %1\tests\cmtest\user\cmtest_main.c %2\Misc\cmtest.c\r
735 \r
736 rem copy 'Driver Install Frameworks for Applications' files so WIX makefiles\r
737 rem are not required to know the current WDK version/path.\r
738 \r
739 for %%i in ( amd64 ia64 x86 ) do (\r
740         mkdir %2\Misc\%%i\r
741         if ERRORLEVEL 1 (\r
742                 echo ERR on mkdir %2\Misc\DIFxAPP\%%i\r
743                 exit /B 1\r
744         )\r
745         for %%j in ( DIFxApp.dll DIFxAppA.dll DIFxApp.wixlib ) do (\r
746                 copy /B/Y %DIFXP%\%%i\%%j  %2\Misc\%%i\%%j\r
747                 if ERRORLEVEL 1 (\r
748                         echo ERR on copy /B/Y %DIFXP%\%%i\%%j  %2\Misc\%%i\%%j\r
749                         exit /B 1\r
750                 )\r
751         )\r
752         copy /B/Y %DPINST%\%%i\DPInst.exe  %2\Misc\%%i\DPInst.exe\r
753         if ERRORLEVEL 1 (\r
754                 echo ERR on copy /B/Y %DPINST%\%%i\DPInst.exe  %2\Misc\%%i\DPInst.exe\r
755                 exit /B 1\r
756         )\r
757 )\r
758 \r
759 rem setup Checked Drivers & Symbols for signing and installation.\r
760 if "%DBG%" == "TRUE" echo %3 Checked Drivers+symbols\r
761 \r
762 if NOT exist %2\Chk (\r
763     mkdir %2\Chk\r
764     if ERRORLEVEL 1 (\r
765         echo "failed[%ERRORLEVEL%] mkdir %2\Chk ?"\r
766         exit /B 1\r
767     )\r
768 )\r
769 \r
770 echo "Copy Checked drivers {HCA,net,storage} to %2\Chk"\r
771 \r
772 rem copy free drivers to get directory structure plus signing files.\r
773 rem Overwrite .sys & .pdb files with checked versions.\r
774 \r
775 for %%i in ( HCA net storage ) do (\r
776     xcopy %2\%%i %2\Chk\%%i\ /S /Y /Q\r
777     if ERRORLEVEL 1 (\r
778         echo ERR on xcopy %2\%%i %2\Chk /syq\r
779         exit /B 1\r
780     )\r
781 )\r
782 \r
783 echo "Copy Checked drivers {ibbus,mthca,mlx} to %2\Chk\HCA\{amd64,ia64,x86}"\r
784 set B=%2\bin\kernel\objchk_%3\r
785 \r
786 for %%i in ( ibbus mthca ibiou mlx4_hca mlx4_bus ) do (\r
787     if exist %B%_amd64\amd64\%%i.sys (\r
788         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\HCA\amd64\%%i.sys\r
789         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\HCA\amd64\%%i.pdb\r
790     )\r
791 \r
792     if exist %B%_ia64\ia64\%%i.sys (\r
793         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\HCA\ia64\%%i.sys\r
794         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\HCA\ia64\%%i.pdb\r
795     )\r
796     if exist %B%_x86\i386\%%i.sys (\r
797         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\HCA\x86\%%i.sys\r
798         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\HCA\x86\%%i.pdb\r
799     )\r
800 )\r
801 \r
802 echo "Copy Checked drivers {ipoib,qlgcvnic} to %2\Chk\net\{amd64,ia64,x86}"\r
803 for %%i in ( ipoib qlgcvnic ) do (\r
804     if exist %B%_amd64\amd64\%%i.sys (\r
805         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\net\amd64\%%i.sys\r
806         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\net\amd64\%%i.pdb\r
807     )\r
808     if exist %B%_ia64\ia64\%%i.sys (\r
809         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\net\ia64\%%i.sys\r
810         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\net\ia64\%%i.pdb\r
811     )\r
812     if exist %B%_x86\i386\%%i.sys (\r
813         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\net\x86\%%i.sys\r
814         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\net\x86\%%i.pdb\r
815     )\r
816 )\r
817 \r
818 echo "Copy Checked drivers {ibsrp} to %2\Chk\storage\{amd64,ia64,x86}"\r
819 for %%i in ( ibsrp ) do (\r
820     if exist %B%_amd64\amd64\%%i.sys (\r
821         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\storage\amd64\%%i.sys\r
822         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\storage\amd64\%%i.pdb\r
823     )\r
824     if exist %B%_ia64\ia64\%%i.sys (\r
825         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\storage\ia64\%%i.sys\r
826         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\storage\ia64\%%i.pdb\r
827     )\r
828     if exist %B%_x86\i386\%%i.sys (\r
829         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\storage\x86\%%i.sys\r
830         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\storage\x86\%%i.pdb\r
831     )\r
832 )\r
833 \r
834 goto end\r
835 \r
836 :usage\r
837 echo makebin src dest os\r
838 echo   src      base directory.\r
839 echo   dest     directory in which to build the installable binary tree.\r
840 echo   os   Windows version [wlh, wnet, wxp]\r
841 goto end\r
842 \r
843 :error1\r
844 echo %1\bin\kernel\objfre_%OSE%_amd64\amd64 missing \r
845 goto end\r
846 :error2\r
847 echo %1\bin\kernel\objfre_%OSE%_ia64\ia64 missing \r
848 goto end\r
849 :error3\r
850 echo %1\bin\kernel\objfre_%OSE%_x86\i386 missing \r
851 goto end\r
852 :error4\r
853 echo %1\bin\user\objfre_%OSE%_amd64\amd64 missing \r
854 goto end\r
855 :error5\r
856 echo %6\bin\user\objfre_%OSE%_ia64\ia64 missing \r
857 goto end\r
858 :error6\r
859 echo %1\bin\user\objfre_%OSE%_x86\i386 missing \r
860 goto end\r
861 :error7\r
862 echo %1\bin\user\objchk_%OSE%_amd64\amd64 missing \r
863 goto end\r
864 :error8\r
865 echo %1\bin\user\objchk_%OSE%_ia64\ia64 missing \r
866 goto end\r
867 :error9\r
868 echo %1\bin\user\objchk_%OSE%_x86\i386 missing \r
869 \r
870 :end\r
871 echo .\r
872 echo Finished OS %3\r
873 echo .\r
874 \r
875 endlocal\r