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