[WinOF] Windows 7 support
[mirror/winof/.git] / WinOF / WIX / build-OFA-dist.bat
1 @echo off\r
2 setlocal\r
3 \r
4 rem TabStop=4\r
5 \r
6 rem Mfg. a ZIP file of a WinOF distribution, such that the zip file can be\r
7 rem pushed to the OFA WinOF download site and unzipped for distribution.\r
8 \r
9 rem populate arch specific distribution folders, zip'em, populate symbols \r
10 rem folder and zip the entire package for transmission to OFA download website.\r
11 rem calls .\zip-OFA-dist.bat script.\r
12 \r
13 rem Operating assumptions:\r
14 rem 1) current arch specific installers are in %systemroot%\temp\*.msi\r
15 rem    resultant from trunk\buildrelease.bat execution.\r
16 rem\r
17 rem  ASSUMES %CD% ==  gen1\branches\WinOF\Wix\r
18 rem\r
19 rem build-OFA-dist release_ID {target_path}\r
20 rem\r
21 rem  example build-OFA-dist 1-1 %windir%\temp\r
22 rem     # if target_path is null then default %SystemRoot%\temp\v%1\r
23 rem     # otherwise %2\v%1\r
24 \r
25 rem cmd.exe /V:on (delayed environment variable expansion) is required!\r
26 set F=on\r
27 set F=off\r
28 if not "!F!" == "off" (\r
29    echo Err: cmd.exe /V:on [delayed environment variable expansion] Required!\r
30    exit /B 1\r
31 )\r
32 \r
33 if "%1" == "" (\r
34   echo "Missing release ID, example %0 1-1"\r
35   echo "usage: %0 release_ID {target_path, default: %SystemRoot%\temp}\r
36   exit /B 1\r
37 )\r
38 \r
39 set ID=%1\r
40 \r
41 rem Final zip archive name\r
42 set ZIP=WinOF_dist_v%ID%.zip\r
43 \r
44 rem where gen1\trunk\buildRelease.bat created the .msi installer files.\r
45 set MSI=%SystemRoot%\temp\r
46 set MSI_DST=%MSI%\v%ID%\r
47 \r
48 rem start fresh\r
49 if exist %MSI_DST%  rmdir /S /Q %MSI_DST%\r
50 mkdir %MSI_DST%\r
51 if ERRORLEVEL 1 (\r
52     echo Err - unable to create %MSI_DST% ?\r
53     exit /B 1\r
54 )\r
55 \r
56 set WZ="C:\Program Files (x86)\WinZip\WZZIP.EXE"\r
57 if not exist %WZ% (\r
58     echo "Missing WinZip pro [cmd-line interface]"\r
59     echo "Please manually create the archives."\r
60     exit /B 1 \r
61 )\r
62 set SYMST="C:\Program Files\Debugging Tools for Windows (x64)"\symstore.exe\r
63 if not exist %SYMST% (\r
64     echo %0 - Missing installation of MS Debug tools @\r
65     echo      %SYMST%\r
66     echo      www.microsoft.com/whdc/devtools/debugging/install64bit.mspx\r
67     exit /B 1 \r
68 )\r
69 \r
70 FOR %%s IN ( win7 wxp wlh wnet ) DO (\r
71     if exist %CD%\%%s\bin\Misc\Manual.htm (\r
72                 set OSF=%%s !OSF!\r
73         )\r
74 )\r
75 echo Packaging installers for !OSF!\r
76 \r
77 if "!OSF!" == "" (\r
78     echo "Missing components?"\r
79     echo "Must execute from gen1\branches\WinOF\WIX -- and --"\r
80     echo "  .\win7,wnet,wxp,wlh\bin\ must be populated."\r
81     echo "  run gen1\trunk\buildRelease.bat -or- gen1\trunk\etc\makebin"\r
82     exit /B 1\r
83 )\r
84 \r
85 FOR %%s IN ( !OSF! ) DO (\r
86         echo Building %%s installers.\r
87 \r
88     rem create target structure\r
89         mkdir %MSI_DST%\%%s\r
90         mkdir %MSI_DST%\%%s\Installers\r
91         mkdir %MSI_DST%\%%s\SymStor\r
92     if ERRORLEVEL 1 (\r
93         echo Err - unable to create %MSI_DST%\%%s\... ?\r
94         exit /B 1\r
95     )\r
96 \r
97     set DSTx86=WinOF_%ID%_%%s_x86\r
98     set DSTx64=WinOF_%ID%_%%s_x64\r
99     set DSTia64=WinOF_%ID%_%%s_ia64\r
100 \r
101     echo Building target !DSTx86!\r
102 \r
103     if exist !DSTx86!  rmdir /S /Q !DSTx86! \r
104     mkdir !DSTx86!\r
105 \r
106     IF NOT EXIST !DSTx86! (\r
107         echo Unable to create !DSTx86! ?\r
108         exit /B 1\r
109     )\r
110 \r
111     copy README_release.txt !DSTX86!\README.txt\r
112     if ERRORLEVEL 1 (\r
113         echo Err - missing file README_release.txt ?\r
114         exit /B 1\r
115     )\r
116 \r
117     copy /B openfabrics.gif !DSTX86!\openfabrics.gif\r
118     copy release_notes.htm !DSTX86!\release_notes.htm\r
119 \r
120     rem would like to use a goto although the target label destroys the\r
121     rem scope for %%s ... sigh.\r
122     rem Scope is preserved by if not\r
123 \r
124     if not "%%s" == "wxp" (\r
125 \r
126         echo Building target !DSTx64!\r
127         if exist !DSTx64!\.   rmdir /S /Q !DSTx64! \r
128         mkdir !DSTx64!\r
129 \r
130         if NOT EXIST !DSTx64! (\r
131             echo Unable to create !DSTx64! ?\r
132             exit /B 1\r
133         )\r
134 \r
135         copy README_release.txt !DSTX64!\README.txt\r
136         copy /B openfabrics.gif !DSTX64!\openfabrics.gif\r
137         copy release_notes.htm !DSTX64!\release_notes.htm\r
138 \r
139         echo Building target !DSTia64!\r
140         if exist !DSTia64!\.   rmdir /S /Q !DSTia64! \r
141         mkdir !DSTia64!\r
142         if NOT EXIST !DSTia64! (\r
143             echo Unable to create !DSTia64! ?\r
144             exit /B 1\r
145         )\r
146 \r
147         copy README_release.txt !DSTia64!\README.txt\r
148         copy /B openfabrics.gif !DSTia64!\openfabrics.gif\r
149         copy release_notes.htm !DSTia64!\release_notes.htm\r
150     )\r
151 \r
152     echo Copying installers for %%s\r
153 \r
154     copy /B /Y %MSI%\WOF_%%s_x86.msi !DSTx86!\WinOF_%ID%_%%s_x86.msi\r
155     if ERRORLEVEL 1 (\r
156         echo Err - unable to copy %MSI%\WOF_%%s_x86.msi\r
157         exit /B 1\r
158     )\r
159 \r
160     if not "%%s" == "wxp" (\r
161 \r
162         copy /B /Y %MSI%\WOF_%%s_x64.msi !DSTx64!\WinOF_%ID%_%%s_x64.msi\r
163         if ERRORLEVEL 1 (\r
164             echo Err - unable to copy %MSI%\WOF_%%s_x64.msi\r
165             exit /B 1\r
166         )\r
167 \r
168         copy /B /Y %MSI%\WOF_%%s_ia64.msi !DSTia64!\WinOF_%ID%_%%s_ia64.msi\r
169         if ERRORLEVEL 1 (\r
170             echo Err - unable to copy %MSI%\WOF_%%s_ia64.msi\r
171             exit /B 1\r
172         )\r
173     )\r
174 \r
175     echo Building ZIP archives of the architecture specific folders\r
176 \r
177     if EXIST !DSTx86!.zip   del /F /Q !DSTx86!.zip\r
178     if EXIST !DSTx64!.zip   del /F /Q !DSTx64!.zip\r
179     if EXIST !DSTia64!.zip  del /F /Q !DSTia64!.zip\r
180 \r
181     %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTx86!.zip !DSTx86!\r
182     if ERRORLEVEL 1 (\r
183         echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTx86!.zip\r
184         exit /B 1\r
185     )\r
186 \r
187     if not "%%s" == "wxp" (\r
188 \r
189         %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTx64!.zip !DSTx64!\r
190         if ERRORLEVEL 1 (\r
191             echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTx64!.zip\r
192             exit /B 1\r
193         )\r
194 \r
195         %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTia64!.zip !DSTia64!\r
196         if ERRORLEVEL 1 (\r
197             echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTia64!.zip\r
198             exit /B 1\r
199         )\r
200     )\r
201 \r
202     rem create the symbol store for the OS flavor\r
203     echo Generating %MSI_DST%\%%s\SymStor Symbol store\r
204 \r
205     %SYMST% add /r /f %CD%\%%s\bin\bin /s %MSI_DST%\%%s\SymStor  /t "WinOF" /v "version %ID%"\r
206     if ERRORLEVEL 1 (\r
207         echo %%s symstore.exe failure rc %ERRORLEVEL%\r
208         exit /B 1\r
209     )\r
210     rem OS flavor cleanup\r
211 \r
212     if exist !DSTx86!\.    rmdir /S /Q !DSTx86!\r
213     if exist !DSTx64!\.    rmdir /S /Q !DSTx64!\r
214     if exist !DSTia64!\.   rmdir /S /Q !DSTia64!\r
215 )\r
216 \r
217 rem create a ZIP file of the entire distribution\r
218 \r
219 echo WinOF v%ID% distribution @ %ZIP%\r
220 \r
221 pushd %MSI%\r
222 \r
223 rem rename MS Operating System code-names to common Retail names\r
224 pushd v%ID%\r
225 rename wlh Server_2008-Vista-HPC\r
226 rename wnet Server_2003-XP64\r
227 rename wxp XP32\r
228 if exist win7  rename win7 Windows7\r
229 popd\r
230 \r
231 IF EXIST %ZIP%  del /F/Q %ZIP%\r
232 \r
233 %WZ% -P -r %ZIP% v%ID%\r
234 \r
235 rmdir /Q /S v%ID%\r
236 \r
237 popd\r
238 \r
239 echo -----\r
240 echo -----\r
241 echo WinOF v%ID% distribution @ %MSI%\%ZIP%\r
242 echo -----\r
243 \r
244 endlocal\r
245 \r