[IPOIB] fixing bugs in previous commit. (mlnx 5205)
[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 to where binaries are copied, must exist.\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 \r
99 rem\r
100 rem KERNEL MODE\r
101 rem\r
102 \r
103 if /I "%OSE%" == "wxp" goto wxp_drv\r
104 \r
105 rem Copy AMD64 Free drivers\r
106 set bin_dir=%1\bin\kernel\objfre_%OSE%_amd64\amd64\r
107 set dest_dir=%2\HCA\amd64\\r
108 \r
109 if "%DBG%" == "TRUE" echo DBG: AMD64 free drivers\r
110 \r
111 for %%i in ( %CORE_DRV_FRE% ) do (\r
112     xcopy %bin_dir%\%%i %dest_dir% /yq 1> nul\r
113     if ERRORLEVEL 1 (\r
114         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
115         exit /B 1\r
116     )\r
117 )\r
118 \r
119 xcopy %WdfCoInstaller%\amd64\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq \r
120 \r
121 for %%i in ( ipoib qlgcvnic ) do (\r
122     xcopy %bin_dir%\%%i.sys %2\net\amd64\ /yq 1> nul\r
123     if ERRORLEVEL 1 (\r
124         echo   ERR xcopy %bin_dir%\%%i.sys %2\net\amd64\ /yq\r
125         exit /B 1\r
126     )\r
127     xcopy %bin_dir%\%%i.pdb %2\net\amd64\ /yq 1> nul\r
128     if ERRORLEVEL 1 (\r
129         echo   ERR xcopy %bin_dir%\%%i.pdb %2\net\amd64\ /yq\r
130         exit /B 1\r
131     )\r
132 )\r
133 \r
134 xcopy %bin_dir%\ibsrp.sys %2\storage\amd64\ /yq\r
135 xcopy %bin_dir%\ibsrp.pdb %2\storage\amd64\ /yq\r
136 \r
137 xcopy %bin_dir%\netipoib.inf %2\net\amd64\ /yq\r
138 xcopy %bin_dir%\netvnic.inf %2\net\amd64\ /yq\r
139 xcopy %bin_dir%\ib_srp.inf %2\storage\amd64\ /yq\r
140 \r
141 rem Copy IA64 drivers\r
142 set bin_dir=%1\bin\kernel\objfre_%OSE%_ia64\ia64\r
143 set dest_dir=%2\HCA\ia64\\r
144 \r
145 if "%DBG%" == "TRUE" echo DBG: ia64 free drivers\r
146 \r
147 for %%i in ( %CORE_DRV_FRE% ) do (\r
148     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
149     if ERRORLEVEL 1 (\r
150         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
151         exit /B 1\r
152     )\r
153 )\r
154 xcopy %WdfCoInstaller%\ia64\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq \r
155 \r
156 for %%i in ( ipoib qlgcvnic ) do (\r
157     xcopy %bin_dir%\%%i.sys %2\net\ia64\ /yq 1> nul\r
158     if ERRORLEVEL 1 (\r
159         echo   ERR xcopy %bin_dir%\%%i.sys %2\net\ia64\ /yq\r
160         exit /B 1\r
161     )\r
162     xcopy %bin_dir%\%%i.pdb %2\net\ia64\ /yq 1> nul\r
163     if ERRORLEVEL 1 (\r
164         echo   ERR xcopy %bin_dir%\%%i.pdb %2\net\ia64\ /yq\r
165         exit /B 1\r
166     )\r
167 )\r
168 \r
169 xcopy %bin_dir%\ibsrp.sys %2\storage\ia64\ /yq\r
170 xcopy %bin_dir%\ibsrp.pdb %2\storage\ia64\ /yq\r
171 \r
172 xcopy %bin_dir%\netipoib.inf %2\net\ia64\ /yq\r
173 xcopy %bin_dir%\netvnic.inf %2\net\ia64\ /yq\r
174 xcopy %bin_dir%\ib_srp.inf %2\storage\ia64\ /yq\r
175 \r
176 rem Copy x86 drivers\r
177 \r
178 :wxp_drv\r
179 \r
180 if "%DBG%" == "TRUE" echo DBG: x86 free drivers\r
181 \r
182 set bin_dir=%1\bin\kernel\objfre_%OSE%_x86\i386\r
183 set dest_dir=%2\HCA\x86\\r
184 \r
185 for %%i in ( %CORE_DRV_FRE% ) do (\r
186     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
187     if ERRORLEVEL 1 (\r
188         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
189         exit /B 1\r
190     )\r
191 )\r
192 xcopy %WdfCoInstaller%\x86\WdfCoInstaller%CoInstallVer%.dll %dest_dir% /yq\r
193 \r
194 for %%i in ( ipoib qlgcvnic ) do (\r
195     xcopy %bin_dir%\%%i.sys %2\net\x86\ /yq 1> nul\r
196     if ERRORLEVEL 1 (\r
197         echo   ERR xcopy %bin_dir%\%%i.sys %2\net\x86\ /yq\r
198         exit /B 1\r
199     )\r
200     xcopy %bin_dir%\%%i.pdb %2\net\x86\ /yq 1> nul\r
201     if ERRORLEVEL 1 (\r
202         echo   ERR xcopy %bin_dir%\%%i.pdb %2\net\x86\ /yq\r
203         exit /B 1\r
204     )\r
205 )\r
206 \r
207 xcopy %bin_dir%\ibsrp.sys %2\storage\x86\ /yq\r
208 xcopy %bin_dir%\ibsrp.pdb %2\storage\x86\ /yq\r
209 \r
210 rem Use netipoib.inf without WSD support for XP32\r
211 if /I "%OSE%" == "wxp" (\r
212     copy /A /Y %1\ulp\ipoib\kernel\netipoib-xp32.inf %2\net\x86\netipoib.inf\r
213 ) else (\r
214     xcopy %bin_dir%\netipoib.inf %2\net\x86\ /yq\r
215 )\r
216 \r
217 rem allow XP SRP build & sign, WIX skips SRP for XP\r
218 rem otherwise there is too much special casing for SRP on XP.\r
219 xcopy %bin_dir%\ib_srp.inf %2\storage\x86\ /yq\r
220 xcopy %bin_dir%\netvnic.inf %2\net\x86\ /yq\r
221 xcopy %bin_dir%\ib_srp.inf %2\storage\x86\ /yq\r
222 \r
223 rem Checked USER MODE\r
224 \r
225 if /I "%OSE%" == "wxp" goto wxp_userm\r
226 \r
227 if "%DBG%" == "TRUE" echo DBG: amd64 Checked amd64 user-mode\r
228 \r
229 set bin_dir=%1\bin\user\objchk_%OSE%_amd64\amd64\r
230 set dest_dir=%2\HCA\amd64\\r
231 \r
232 for %%i in (%CORE_UM_D%) do (\r
233     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
234     if ERRORLEVEL 1 (\r
235         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
236         exit /B 1\r
237     )\r
238 )\r
239 \r
240 echo xcopy winverbs: User checked to HCA\amd64\r
241 \r
242 for %%i in ( %WV_CHK% ) do (\r
243     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
244     if ERRORLEVEL 1 (\r
245         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
246         exit /B 1\r
247     )\r
248 )\r
249 \r
250 echo xcopy *.exe tools\amd64\debug\\r
251 xcopy %bin_dir%\*.exe %2\tools\amd64\debug\ /yq 1>nul\r
252 \r
253 for %%i in ( %DAPL2_D% ) do (\r
254     xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq 1>nul\r
255     if ERRORLEVEL 1 (\r
256         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq\r
257         exit /B 1\r
258     )\r
259 )\r
260 \r
261 \r
262 rem Copy checked IA64 dlls\r
263 \r
264 if "%DBG%" == "TRUE" echo DBG: ia64 Checked dlls\r
265 \r
266 set bin_dir=%1\bin\user\objchk_%OSE%_ia64\ia64\r
267 set dest_dir=%2\HCA\ia64\\r
268 \r
269 for %%i in (%CORE_UM_D%) do (\r
270     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
271     if ERRORLEVEL 1 (\r
272         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
273         exit /B 1\r
274     )\r
275 )\r
276 \r
277 echo xcopy winverbs: User checked to HCA\ia64\r
278 \r
279 for %%i in ( %WV_CHK% ) do (\r
280     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
281     if ERRORLEVEL 1 (\r
282         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
283         exit /B 1\r
284     )\r
285 )\r
286 \r
287 echo xcopy *.exe tools\ia64\debug\ \r
288 xcopy %bin_dir%\*.exe %2\tools\ia64\debug\ /yq 1>nul\r
289 \r
290 for %%i in ( %DAPL2_D% ) do (\r
291     xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq 1>nul\r
292     if ERRORLEVEL 1 (\r
293         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq\r
294         exit /B 1\r
295     )\r
296 )\r
297 \r
298 \r
299 rem checked x86 user mode\r
300 \r
301 :wxp_userm\r
302 \r
303 if "%DBG%" == "TRUE" echo DBG: x86 Checked user-mode dlls\r
304 \r
305 set bin_dir=%1\bin\user\objchk_%OSE%_x86\i386\r
306 set dest_dir=%2\HCA\x86\\r
307 \r
308 for %%i in (%CORE_UM_D%) do (\r
309     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
310     if ERRORLEVEL 1 (\r
311         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
312         exit /B 1\r
313     )\r
314 )\r
315 \r
316 echo xcopy winverbs: User checked to HCA\x86\r
317 \r
318 for %%i in ( %WV_CHK% ) do (\r
319     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
320     if ERRORLEVEL 1 (\r
321         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
322         exit /B 1\r
323     )\r
324 )\r
325 \r
326 if "%DBG%" == "TRUE"  echo DBG: checked *.exe to tools\x86\debug\ \r
327 xcopy %bin_dir%\*.exe %2\tools\x86\debug\ /yq 1>nul\r
328 \r
329 for %%i in ( %DAPL2_D% ) do (\r
330     xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq 1>nul\r
331     if ERRORLEVEL 1 (\r
332         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq\r
333         exit /B 1\r
334     )\r
335 )\r
336 copy /B %bin_dir%\installsp.exe %2\tools\x86\debug\ /y 1>nul\r
337 \r
338 if /I "%OSE%" == "wxp" goto wxp_free_drv\r
339 \r
340 rem checked x86 DLLs --> WOW64 DLLs\r
341 \r
342 if "%DBG%" == "TRUE" echo DBG: x86 Checked dlls copy to WOW64 dlls\r
343 \r
344 rem xcopy had problems determining if dest was File | Dir ??\r
345 \r
346 copy /B %bin_dir%\ibald.dll %2\HCA\amd64\ibal32d.dll /y \r
347 copy /B %bin_dir%\ibald.lib %2\HCA\amd64\ibal32d.lib /y \r
348 copy /B %bin_dir%\ibald.pdb %2\HCA\amd64\ibal32d.pdb /y \r
349 copy /B %bin_dir%\complibd.dll %2\HCA\amd64\cl32d.dll /y \r
350 copy /B %bin_dir%\complibd.lib %2\HCA\amd64\cl32d.lib /y \r
351 copy /B %bin_dir%\complibd.pdb %2\HCA\amd64\cl32d.pdb /y \r
352 \r
353 copy /B %bin_dir%\ibald.dll %2\HCA\ia64\ibal32d.dll /y \r
354 copy /B %bin_dir%\ibald.lib %2\HCA\ia64\ibal32d.lib /y \r
355 copy /B %bin_dir%\ibald.pdb %2\HCA\ia64\ibal32d.pdb /y \r
356 copy /B %bin_dir%\complibd.dll %2\HCA\ia64\cl32d.dll /y \r
357 copy /B %bin_dir%\complibd.lib %2\HCA\ia64\cl32d.lib /y \r
358 copy /B %bin_dir%\complibd.pdb %2\HCA\ia64\cl32d.pdb /y \r
359 \r
360 copy /B %bin_dir%\mthcaud.dll %2\HCA\amd64\mthca32d.dll /y \r
361 copy /B %bin_dir%\mthcaud.dll %2\HCA\ia64\mthca32d.dll /y \r
362 \r
363 copy /B %bin_dir%\mlx4ud.dll %2\HCA\amd64\mlx4u32d.dll /y \r
364 copy /B %bin_dir%\mlx4ud.dll %2\HCA\ia64\mlx4u32d.dll /y\r
365 \r
366 copy /B %bin_dir%\dapl2d.dll %2\DAPL2\amd64\dapl232d.dll /y \r
367 copy /B %bin_dir%\dat2d.dll  %2\DAPL2\amd64\dat232d.dll /y \r
368 copy /B %bin_dir%\dapl2d.dll %2\DAPL2\ia64\dapl232d.dll /y \r
369 copy /B %bin_dir%\dat2d.dll  %2\DAPL2\ia64\dat232d.dll /y \r
370 \r
371 rem Copy Free x64 dll\r
372 \r
373 set bin_dir=%1\bin\user\objfre_%OSE%_amd64\amd64\r
374 set dest_dir=%2\HCA\amd64\\r
375 \r
376 if "%DBG%" == "TRUE" echo DBG: copy amd64 Free dlls\r
377 \r
378 for %%i in (%CORE_UM_F%) do (\r
379     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
380     if ERRORLEVEL 1 (\r
381         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /y\r
382         exit /B 1\r
383     )\r
384 )\r
385 \r
386 echo xcopy winverbs: User free to HCA\amd64\r
387 \r
388 for %%i in ( %WV_FRE% ) do (\r
389     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
390     if ERRORLEVEL 1 (\r
391         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
392         exit /B 1\r
393     )\r
394 )\r
395 \r
396 xcopy %bin_dir%\ibwsd.dll %2\net\amd64\ /yq\r
397 xcopy %bin_dir%\installsp.exe %2\net\amd64\ /yq \r
398 xcopy %bin_dir%\installsp.exe %2\tools\amd64\release\ /yq\r
399 \r
400 if exist "%bin_dir%\ndinstall.exe" (\r
401     xcopy %bin_dir%\ndinstall.exe %2\net\amd64\ /yq \r
402     xcopy %bin_dir%\ndinstall.exe %2\tools\amd64\release\ /yq\r
403     xcopy %bin_dir%\ibndprov.dll %2\net\amd64\ /yq\r
404     xcopy %bin_dir%\wvndprov.dll %2\net\amd64\ /yq\r
405 ) else (\r
406     echo %0 - missing x64 Network Direct components [wvndprov.dll ibndprov.dll,ndinstall.exe]\r
407 )\r
408 \r
409 echo xcopy amd64 Free *.exe tools\amd64\release\ \r
410 xcopy %bin_dir%\*.exe %2\tools\amd64\release\ /yq 1>nul\r
411 \r
412 echo xcopy AMD64 [Winverb-apps].pdb tools\amd64\release\ \r
413 xcopy %bin_dir%\*.pdb %2\tools\amd64\release\ /yq 1>nul\r
414 if ERRORLEVEL 1 (\r
415         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\amd64\release\ /yq\r
416         exit /B 1\r
417 )\r
418 \r
419 for %%i in ( %DAPL2_F% ) do (\r
420     xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq 1>nul\r
421     if ERRORLEVEL 1 (\r
422         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\amd64\ /yq\r
423         exit /B 1\r
424     )\r
425 )\r
426 \r
427 \r
428 rem Copy Free IA64 dlls\r
429 \r
430 set bin_dir=%1\bin\user\objfre_%OSE%_ia64\ia64\r
431 set dest_dir=%2\HCA\ia64\\r
432 \r
433 if "%DBG%" == "TRUE" echo DBG: copy IA64 Free dlls\r
434 \r
435 for %%i in (%CORE_UM_F%) do (\r
436     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
437     if ERRORLEVEL 1 (\r
438         echo ERR on xcopy %%i %dest_dir% /yq\r
439         exit /B 1\r
440     )\r
441 )\r
442 \r
443 echo xcopy winverbs: User free to HCA\ia64\r
444 \r
445 for %%i in ( %WV_FRE% ) do (\r
446     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
447     if ERRORLEVEL 1 (\r
448         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
449         exit /B 1\r
450     )\r
451 )\r
452 \r
453 xcopy %bin_dir%\ibwsd.dll %2\net\ia64\ /yq\r
454 xcopy %bin_dir%\installsp.exe %2\net\ia64\ /yq\r
455 xcopy %bin_dir%\ndinstall.exe %2\net\ia64\ /yq\r
456 xcopy %bin_dir%\wvndprov.dll  %2\net\ia64\ /yq\r
457 \r
458 echo xcopy IA64 Free *.exe tools\ia64\release\ \r
459 xcopy %bin_dir%\*.exe %2\tools\ia64\release\ /yq 1>nul\r
460 \r
461 echo xcopy IA64 [Winverb-apps].pdb tools\ia64\release\ \r
462 xcopy %bin_dir%\*.pdb %2\tools\ia64\release\ /yq 1>nul\r
463 if ERRORLEVEL 1 (\r
464         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\ia64\release\ /yq\r
465         exit /B 1\r
466 )\r
467 \r
468 for %%i in ( %DAPL2_F% ) do (\r
469     xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq 1>nul\r
470     if ERRORLEVEL 1 (\r
471         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\ia64\ /yq\r
472         exit /B 1\r
473     )\r
474 )\r
475 \r
476 \r
477 rem Copy Free x86 drivers\r
478 \r
479 :wxp_free_drv\r
480 \r
481 set bin_dir=%1\bin\user\objfre_%OSE%_x86\i386\r
482 set dest_dir=%2\HCA\x86\\r
483 \r
484 if "%DBG%" == "TRUE" echo DBG: copy x86 Free dlls\r
485 \r
486 for %%i in (%CORE_UM_F%) do (\r
487     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
488     if ERRORLEVEL 1 (\r
489         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
490         exit /B 1\r
491     )\r
492 )\r
493 \r
494 echo xcopy winverbs: User free to HCA\x86\r
495 \r
496 for %%i in ( %WV_FRE% ) do (\r
497     xcopy %bin_dir%\%%i %dest_dir% /yq 1>nul\r
498     if ERRORLEVEL 1 (\r
499         echo ERR on xcopy %bin_dir%\%%i %dest_dir% /yq\r
500         exit /B 1\r
501     )\r
502 )\r
503 \r
504 echo xcopy x86 free *.exe to tools\x86\release\r
505 xcopy %bin_dir%\*.exe %2\tools\x86\release\ /yq 1>nul\r
506 \r
507 echo xcopy X86 Free [Winverb-apps].pdb tools\x86\release\ \r
508 xcopy %bin_dir%\*.pdb %2\tools\x86\release\ /yq 1>nul\r
509 if ERRORLEVEL 1 (\r
510         echo ERR on xcopy %bin_dir%\*.pdb %2\tools\x86\release\ /yq\r
511         exit /B 1\r
512 )\r
513 \r
514 for %%i in ( %DAPL2_F% ) do (\r
515     xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq 1>nul\r
516     if ERRORLEVEL 1 (\r
517         echo ERR on xcopy %bin_dir%\%%i %2\DAPL2\x86\ /yq\r
518         exit /B 1\r
519     )\r
520 )\r
521 \r
522 if exist "%bin_dir%\ndinstall.exe" (\r
523     copy %bin_dir%\ndinstall.exe %2\net\x86\ /y\r
524     copy %bin_dir%\ndinstall.exe %2\tools\x86\release\ /y\r
525     copy %bin_dir%\ibndprov.dll %2\net\x86\ /y\r
526     copy %bin_dir%\wvndprov.dll %2\net\x86\ /y\r
527 ) else (\r
528     echo %0 - missing x86 Network Direct components [ibndprov.dll,ndinstall.exe]\r
529 )\r
530 \r
531 if /I "%OSE%" == "wxp" goto mk_sym_bin\r
532 rem free x86 items\r
533 \r
534 if "%DBG%" == "TRUE" echo DBG: copy x86 Free WSD\r
535 \r
536 copy %bin_dir%\ibwsd.dll %2\net\x86\ /y\r
537 copy %bin_dir%\installsp.exe %2\net\x86\ /y\r
538 copy %bin_dir%\installsp.exe %2\tools\x86\release\ /y\r
539 \r
540 rem free x86 DLLs --> WOW64 DLLs\r
541 \r
542 if "%DBG%" == "TRUE" echo DBG: x86 Free dlls to WOW64\r
543 \r
544 if exist "%bin_dir%\ibndprov.dll" (\r
545     copy %bin_dir%\ibndprov.dll %2\net\amd64\ibndprov32.dll /y\r
546     copy %bin_dir%\ibndprov.dll %2\net\ia64\ibndprov32.dll /y\r
547 )\r
548 copy /B %bin_dir%\ibwsd.dll %2\net\amd64\ibwsd32.dll /y\r
549 copy /B %bin_dir%\ibwsd.dll %2\net\ia64\ibwsd32.dll /y\r
550 \r
551 copy /B %bin_dir%\ibal.dll %2\HCA\amd64\ibal32.dll /y\r
552 copy /B %bin_dir%\ibal.lib %2\HCA\amd64\ibal32.lib /y\r
553 copy /B %bin_dir%\ibal.pdb %2\HCA\amd64\ibal32.pdb /y\r
554 copy /B %bin_dir%\complib.dll %2\HCA\amd64\cl32.dll /y\r
555 copy /B %bin_dir%\complib.lib %2\HCA\amd64\cl32.lib /y\r
556 copy /B %bin_dir%\complib.pdb %2\HCA\amd64\cl32.pdb /y\r
557 copy /B %bin_dir%\winverbs.dll %2\HCA\amd64\winverbs32.dll /y\r
558 copy /B %bin_dir%\winverbs.lib %2\HCA\amd64\winverbs32.lib /y\r
559 copy /B %bin_dir%\winverbs.pdb %2\HCA\amd64\winverbs32.pdb /y\r
560 copy /B %bin_dir%\winmad.dll %2\HCA\amd64\winverbs32.dll /y\r
561 copy /B %bin_dir%\winmad.lib %2\HCA\amd64\winverbs32.lib /y\r
562 copy /B %bin_dir%\winmad.pdb %2\HCA\amd64\winverbs32.pdb /y\r
563 \r
564 copy /B %bin_dir%\ibal.dll %2\HCA\ia64\ibal32.dll /y\r
565 copy /B %bin_dir%\ibal.lib %2\HCA\ia64\ibal32.lib /y\r
566 copy /B %bin_dir%\ibal.pdb %2\HCA\ia64\ibal32.pdb /y\r
567 copy /B %bin_dir%\complib.dll %2\HCA\ia64\cl32.dll /y\r
568 copy /B %bin_dir%\complib.lib %2\HCA\ia64\cl32.lib /y\r
569 copy /B %bin_dir%\complib.pdb %2\HCA\ia64\cl32.pdb /y\r
570 copy /B %bin_dir%\winverbs.dll %2\HCA\ia64\winverbs32.dll /y\r
571 copy /B %bin_dir%\winverbs.lib %2\HCA\ia64\winverbs32.lib /y\r
572 copy /B %bin_dir%\winverbs.pdb %2\HCA\ia64\winverbs32.pdb /y\r
573 copy /B %bin_dir%\winmad.dll %2\HCA\ia64\winverbs32.dll /y\r
574 copy /B %bin_dir%\winmad.lib %2\HCA\ia64\winverbs32.lib /y\r
575 copy /B %bin_dir%\winmad.pdb %2\HCA\ia64\winverbs32.pdb /y\r
576 \r
577 copy /B %bin_dir%\mthcau.dll %2\HCA\amd64\mthca32.dll /y\r
578 copy /B %bin_dir%\mthcau.dll %2\HCA\ia64\mthca32.dll /y\r
579 \r
580 copy /B %bin_dir%\mlx4u.dll %2\HCA\amd64\mlx4u32.dll /y\r
581 copy /B %bin_dir%\mlx4u.dll %2\HCA\ia64\mlx4u32.dll /y\r
582 \r
583 copy /B %bin_dir%\dapl2.dll %2\DAPL2\amd64\dapl232.dll /y\r
584 copy /B %bin_dir%\dat2.dll %2\DAPL2\amd64\dat232.dll /y\r
585 copy /B %bin_dir%\dapl2.dll %2\DAPL2\ia64\dapl232.dll /y\r
586 copy /B %bin_dir%\dat2.dll %2\DAPL2\ia64\dat232.dll /y\r
587 \r
588 :mk_sym_bin\r
589 \r
590 rem bin\bin used to generate a web based symbol store in build-ofa-dist.bat.\r
591 \r
592 echo 'Copy bin\obj{chk,fre}_%3_{x86,amd64,ia64} to bin'\r
593 rem xcopy %1\bin %2\bin\ /eyq\r
594 rem instead of copying the entire bin\ folder, pick items of OS interest.\r
595 \r
596 xcopy %1\bin\kernel\objchk_%3_x86 %2\bin\kernel\objchk_%3_x86\ /S /Y /Q\r
597 xcopy %1\bin\kernel\objfre_%3_x86 %2\bin\kernel\objfre_%3_x86\ /S /Y /Q\r
598 if /I "%3" == "wxp" goto ucpy\r
599 xcopy %1\bin\kernel\objchk_%3_ia64 %2\bin\kernel\objchk_%3_ia64\ /S /Y /Q\r
600 xcopy %1\bin\kernel\objfre_%3_ia64 %2\bin\kernel\objfre_%3_ia64\ /S /Y /Q\r
601 xcopy %1\bin\kernel\objchk_%3_amd64 %2\bin\kernel\objchk_%3_amd64\ /S /Y /Q\r
602 xcopy %1\bin\kernel\objfre_%3_amd64 %2\bin\kernel\objfre_%3_amd64\ /S /Y /Q\r
603 \r
604 :ucpy\r
605 \r
606 xcopy %1\bin\user\objchk_%3_x86 %2\bin\user\objchk_%3_x86\ /S /Y /Q\r
607 xcopy %1\bin\user\objfre_%3_x86 %2\bin\user\objfre_%3_x86\ /S /Y /Q\r
608 if /I "%3" == "wxp" goto ucpyx\r
609 xcopy %1\bin\user\objchk_%3_ia64 %2\bin\user\objchk_%3_ia64\ /S /Y /Q\r
610 xcopy %1\bin\user\objfre_%3_ia64 %2\bin\user\objfre_%3_ia64\ /S /Y /Q\r
611 xcopy %1\bin\user\objchk_%3_amd64 %2\bin\user\objchk_%3_amd64\ /S /Y /Q\r
612 xcopy %1\bin\user\objfre_%3_amd64 %2\bin\user\objfre_%3_amd64\ /S /Y /Q\r
613 \r
614 :ucpyx\r
615 \r
616 rem echo Copy symbol files: bin\*.pdb to %2\symbols\r
617 rem xcopy %1\bin\*.pdb %2\symbols\ /eyq\r
618 \r
619 rem if "%DBG%" == "TRUE" echo DBG: bin\ file cleanup, file-not-found is OK.\r
620 rem pushd %2\r
621 rem del /s bin\*.pdb > nul\r
622 rem del /s ibtest*   > nul\r
623 rem del /s pingpong* > nul\r
624 rem del /s *Sdp*     > nul\r
625 rem del /s Select*   > nul\r
626 rem del /s usrp*     > nul\r
627 rem del /s bin\*.lib > nul\r
628 rem del /s bin\*.exp > nul\r
629 rem popd\r
630 \r
631 rem Copy DAT v2.0 header files\r
632 if "%DBG%" == "TRUE" echo DBG: [%OSE%] DAT v2.0 header files\r
633 \r
634 if exist %1\ulp\dapl2\dat\include\dat (set DATINC=dat) else (set DATINC=dat2)\r
635 pushd %1\ulp\dapl2\dat\include\%DATINC%\r
636 if ERRORLEVEL 1 (\r
637     echo %0: ERR - missing DAT files @ %1\ulp\dapl2\dat\include\%DATINC%\r
638     exit /B 1\r
639 )\r
640 xcopy dat.h %2\DAPL2 /Y/Q  \r
641 xcopy dat_error.h %2\DAPL2 /Y/Q\r
642 xcopy dat_platform_specific.h %2\DAPL2 /Y/Q\r
643 xcopy dat_redirection.h %2\DAPL2 /Y/Q\r
644 xcopy dat_registry.h %2\DAPL2 /Y/Q\r
645 xcopy dat_vendor_specific.h %2\DAPL2 /Y/Q\r
646 xcopy udat.h %2\DAPL2 /Y/Q\r
647 xcopy udat_config.h %2\DAPL2 /Y/Q\r
648 xcopy udat_redirection.h %2\DAPL2 /Y/Q\r
649 xcopy udat_vendor_specific.h %2\DAPL2 /Y/Q\r
650 popd\r
651 \r
652 pushd %1\ulp\dapl2\test\dapltest\scripts\r
653 xcopy dt-svr.bat %2\DAPL2 /Y/Q\r
654 xcopy dt-cli.bat %2\DAPL2 /Y/Q\r
655 popd\r
656 \r
657 rem Copy IBAL header files\r
658 if "%DBG%" == "TRUE" echo DBG: IBAL header files\r
659 if exist %1\inc (\r
660     if exist %2\inc rmdir /S/Q %2\inc\r
661     mkdir %2\Inc\r
662     pushd %1\inc\r
663     xcopy oib_ver.h %2\Inc /Y/Q\r
664     xcopy openib.def %2\Inc /Y/Q\r
665     xcopy Complib %2\Inc\Complib /I/S/Y/Q\r
666     xcopy Iba %2\Inc\Iba /I/S/Y/Q\r
667     xcopy User\Complib %2\Inc\Complib /I/S/Y/Q\r
668     xcopy User\Iba %2\Inc\Iba /I/S/Y/Q\r
669     popd\r
670 )\r
671 \r
672 rem WDK/WIX, Docs & IB SDK items\r
673 if "%DBG%" == "TRUE" echo DBG: WDK, WIx, Docs and SDK files\r
674 \r
675 if exist %2\Misc  rmdir /Q/S %2\Misc\r
676 mkdir %2\Misc\r
677 \r
678 copy /Y/A %1\Docs\Manual.htm %2\Misc\Manual.htm\r
679 copy /Y/A %1\tests\cmtest\user\cmtest_main.c %2\Misc\cmtest.c\r
680 \r
681 rem copy 'Driver Install Frameworks for Applications' files so WIX makefiles\r
682 rem are not required to know the current WDK version/path.\r
683 \r
684 for %%i in ( amd64 ia64 x86 ) do (\r
685         mkdir %2\Misc\%%i\r
686         if ERRORLEVEL 1 (\r
687                 echo ERR on mkdir %2\Misc\DIFxAPP\%%i\r
688                 exit /B 1\r
689         )\r
690         for %%j in ( DIFxApp.dll DIFxAppA.dll DIFxApp.wixlib ) do (\r
691                 copy /B/Y %DIFXP%\%%i\%%j  %2\Misc\%%i\%%j\r
692                 if ERRORLEVEL 1 (\r
693                         echo ERR on copy /B/Y %DIFXP%\%%i\%%j  %2\Misc\%%i\%%j\r
694                         exit /B 1\r
695                 )\r
696         )\r
697         copy /B/Y %DPINST%\%%i\DPInst.exe  %2\Misc\%%i\DPInst.exe\r
698         if ERRORLEVEL 1 (\r
699                 echo ERR on copy /B/Y %DPINST%\%%i\DPInst.exe  %2\Misc\%%i\DPInst.exe\r
700                 exit /B 1\r
701         )\r
702 )\r
703 \r
704 rem setup Checked Drivers & Symbols for signing and installation.\r
705 if "%DBG%" == "TRUE" echo %3 Checked Drivers+symbols\r
706 \r
707 if NOT exist %2\Chk (\r
708     mkdir %2\Chk\r
709     if ERRORLEVEL 1 (\r
710         echo "failed[%ERRORLEVEL%] mkdir %2\Chk ?"\r
711         exit /B 1\r
712     )\r
713 )\r
714 \r
715 echo "Copy Checked drivers {HCA,net,storage} to %2\Chk"\r
716 \r
717 rem copy free drivers to get directory structure plus signing files.\r
718 rem Overwrite .sys & .pdb files with checked versions.\r
719 \r
720 for %%i in ( HCA net storage ) do (\r
721     xcopy %2\%%i %2\Chk\%%i\ /S /Y /Q\r
722     if ERRORLEVEL 1 (\r
723         echo ERR on xcopy %2\%%i %2\Chk /syq\r
724         exit /B 1\r
725     )\r
726 )\r
727 \r
728 echo "Copy Checked drivers {ibbus,mthca,mlx} to %2\Chk\HCA\{amd64,ia64,x86}"\r
729 set B=%2\bin\kernel\objchk_%3\r
730 \r
731 for %%i in ( ibbus mthca ibiou mlx4_hca mlx4_bus ) do (\r
732     if exist %B%_amd64\amd64\%%i.sys (\r
733         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\HCA\amd64\%%i.sys\r
734         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\HCA\amd64\%%i.pdb\r
735     )\r
736 \r
737     if exist %B%_ia64\ia64\%%i.sys (\r
738         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\HCA\ia64\%%i.sys\r
739         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\HCA\ia64\%%i.pdb\r
740     )\r
741     if exist %B%_x86\i386\%%i.sys (\r
742         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\HCA\x86\%%i.sys\r
743         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\HCA\x86\%%i.pdb\r
744     )\r
745 )\r
746 \r
747 echo "Copy Checked drivers {ipoib,qlgcvnic} to %2\Chk\net\{amd64,ia64,x86}"\r
748 for %%i in ( ipoib qlgcvnic ) do (\r
749     if exist %B%_amd64\amd64\%%i.sys (\r
750         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\net\amd64\%%i.sys\r
751         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\net\amd64\%%i.pdb\r
752     )\r
753     if exist %B%_ia64\ia64\%%i.sys (\r
754         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\net\ia64\%%i.sys\r
755         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\net\ia64\%%i.pdb\r
756     )\r
757     if exist %B%_x86\i386\%%i.sys (\r
758         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\net\x86\%%i.sys\r
759         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\net\x86\%%i.pdb\r
760     )\r
761 )\r
762 \r
763 echo "Copy Checked drivers {ibsrp} to %2\Chk\storage\{amd64,ia64,x86}"\r
764 for %%i in ( ibsrp ) do (\r
765     if exist %B%_amd64\amd64\%%i.sys (\r
766         copy /B/Y %B%_amd64\amd64\%%i.sys %2\Chk\storage\amd64\%%i.sys\r
767         copy /B/Y %B%_amd64\amd64\%%i.pdb %2\Chk\storage\amd64\%%i.pdb\r
768     )\r
769     if exist %B%_ia64\ia64\%%i.sys (\r
770         copy /B/Y %B%_ia64\ia64\%%i.sys %2\Chk\storage\ia64\%%i.sys\r
771         copy /B/Y %B%_ia64\ia64\%%i.pdb %2\Chk\storage\ia64\%%i.pdb\r
772     )\r
773     if exist %B%_x86\i386\%%i.sys (\r
774         copy /B/Y %B%_x86\i386\%%i.sys %2\Chk\storage\x86\%%i.sys\r
775         copy /B/Y %B%_x86\i386\%%i.pdb %2\Chk\storage\x86\%%i.pdb\r
776     )\r
777 )\r
778 \r
779 goto end\r
780 \r
781 :usage\r
782 echo makebin src dest os\r
783 echo   src      base directory.\r
784 echo   dest     directory in which to build the installable binary tree.\r
785 echo   os   Windows version [wlh, wnet, wxp]\r
786 goto end\r
787 \r
788 :error1\r
789 echo %1\bin\kernel\objfre_%OSE%_amd64\amd64 missing \r
790 goto end\r
791 :error2\r
792 echo %1\bin\kernel\objfre_%OSE%_ia64\ia64 missing \r
793 goto end\r
794 :error3\r
795 echo %1\bin\kernel\objfre_%OSE%_x86\i386 missing \r
796 goto end\r
797 :error4\r
798 echo %1\bin\user\objfre_%OSE%_amd64\amd64 missing \r
799 goto end\r
800 :error5\r
801 echo %6\bin\user\objfre_%OSE%_ia64\ia64 missing \r
802 goto end\r
803 :error6\r
804 echo %1\bin\user\objfre_%OSE%_x86\i386 missing \r
805 goto end\r
806 :error7\r
807 echo %1\bin\user\objchk_%OSE%_amd64\amd64 missing \r
808 goto end\r
809 :error8\r
810 echo %1\bin\user\objchk_%OSE%_ia64\ia64 missing \r
811 goto end\r
812 :error9\r
813 echo %1\bin\user\objchk_%OSE%_x86\i386 missing \r
814 \r
815 :end\r
816 echo.\r
817 echo Finished OS %3\r
818 echo.\r
819 \r
820 endlocal\r