Build/Windows: build-aegisub-wx29.cmd

File build-aegisub-wx29.cmd, 15.7 KB (added by Plorkyeran, 2 years ago)

Batch file for building an Aegisub 2.2-compatible wxWidgets

Line 
1@echo off
2rem Configure this build script here
3set sourcebase=C:\src\wxWidgets
4set vcvars=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
5set installbase=C:\src\aegisub\wxlib
6
7rem No need to edit below this
8
9title Build wxMSW 2.9 for Aegisub 2.2
10
11if not exist "%sourcebase%" goto missingfiles
12if not exist "%vcvars%" goto missingfiles
13if not exist "%sourcebase%\src\msw\basemsw.cpp" goto missingfiles
14goto sanitypass
15
16:missingfiles
17echo.
18echo  === SANITY CHECK FAILED ===
19echo.
20echo Check that this command file is configured properly. You need to edit it
21echo to match your system before running it.
22echo.
23echo Current configuration:
24echo wxWidgets 2.9 source location: %sourcebase%
25echo Visual C++ 2008 vcvarsall.bat location: %vcvars%
26echo Install wxMSW to this location: %installbase%
27echo.
28pause
29exit /b 1
30
31:sanitypass
32
33echo.
34echo Generating setup.h...
35cd /d %sourcebase%
36del aegisub-wx-setup.h
37>> aegisub-wx-setup.h echo /* setup.h generated by %0 */
38>> aegisub-wx-setup.h echo #ifndef _WX_SETUP_H_
39>> aegisub-wx-setup.h echo #define _WX_SETUP_H_
40>> aegisub-wx-setup.h echo #define wxUSE_GUI 1
41>> aegisub-wx-setup.h echo #define WXWIN_COMPATIBILITY_2_4 0
42>> aegisub-wx-setup.h echo #define WXWIN_COMPATIBILITY_2_6 0
43>> aegisub-wx-setup.h echo #define WXWIN_COMPATIBILITY_2_8 0
44>> aegisub-wx-setup.h echo #define wxDIALOG_UNIT_COMPATIBILITY 0
45>> aegisub-wx-setup.h echo #define wxUSE_ON_FATAL_EXCEPTION 1
46>> aegisub-wx-setup.h echo #define wxUSE_STACKWALKER 1
47>> aegisub-wx-setup.h echo #define wxUSE_DEBUGREPORT 1
48>> aegisub-wx-setup.h echo #define wxUSE_DEBUG_CONTEXT 0
49>> aegisub-wx-setup.h echo #define wxUSE_MEMORY_TRACING 0
50>> aegisub-wx-setup.h echo #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
51>> aegisub-wx-setup.h echo #define wxUSE_DEBUG_NEW_ALWAYS 0
52>> aegisub-wx-setup.h echo #define wxUSE_UNICODE 1
53>> aegisub-wx-setup.h echo #define wxUSE_WCHAR_T 1
54>> aegisub-wx-setup.h echo #define wxUSE_EXCEPTIONS 1
55>> aegisub-wx-setup.h echo #define wxUSE_EXTENDED_RTTI 0
56>> aegisub-wx-setup.h echo #define wxUSE_STL 0
57>> aegisub-wx-setup.h echo #define wxUSE_LOG 1
58
59>> aegisub-wx-setup.h echo #define wxUSE_LOGWINDOW 1
60>> aegisub-wx-setup.h echo #define wxUSE_LOGGUI 1
61>> aegisub-wx-setup.h echo #define wxUSE_LOG_DIALOG 1
62>> aegisub-wx-setup.h echo #define wxUSE_CMDLINE_PARSER 1
63>> aegisub-wx-setup.h echo #define wxUSE_THREADS 1
64>> aegisub-wx-setup.h echo #define wxUSE_STREAMS 1
65>> aegisub-wx-setup.h echo #define wxUSE_STD_IOSTREAM 0
66>> aegisub-wx-setup.h echo #define wxUSE_STD_STRING 1
67>> aegisub-wx-setup.h echo #define wxUSE_PRINTF_POS_PARAMS 1
68>> aegisub-wx-setup.h echo #define wxUSE_LONGLONG 1
69>> aegisub-wx-setup.h echo #define wxUSE_BASE64 1
70>> aegisub-wx-setup.h echo #define wxUSE_CONSOLE_EVENTLOOP 1
71>> aegisub-wx-setup.h echo #define wxUSE_FILE 1
72>> aegisub-wx-setup.h echo #define wxUSE_FFILE 1
73>> aegisub-wx-setup.h echo #define wxUSE_FSVOLUME 1
74>> aegisub-wx-setup.h echo #define wxUSE_STDPATHS 1
75>> aegisub-wx-setup.h echo #define wxUSE_TEXTBUFFER 1
76>> aegisub-wx-setup.h echo #define wxUSE_TEXTFILE 1
77>> aegisub-wx-setup.h echo #define wxUSE_INTL 1
78>> aegisub-wx-setup.h echo #define wxUSE_XLOCALE 1
79>> aegisub-wx-setup.h echo #define wxUSE_DATETIME 1
80>> aegisub-wx-setup.h echo #define wxUSE_TIMER 1
81>> aegisub-wx-setup.h echo #define wxUSE_STOPWATCH 1
82>> aegisub-wx-setup.h echo #define wxUSE_FSWATCHER 1
83>> aegisub-wx-setup.h echo #define wxUSE_CONFIG 1
84>> aegisub-wx-setup.h echo #define wxUSE_CONFIG_NATIVE 1
85>> aegisub-wx-setup.h echo #define wxUSE_DIALUP_MANAGER 1
86>> aegisub-wx-setup.h echo #define wxUSE_DYNLIB_CLASS 1
87>> aegisub-wx-setup.h echo #define wxUSE_DYNAMIC_LOADER 1
88>> aegisub-wx-setup.h echo #define wxUSE_SOCKETS 1
89>> aegisub-wx-setup.h echo #define wxUSE_IPV6 0
90>> aegisub-wx-setup.h echo #define wxUSE_FILESYSTEM 1
91>> aegisub-wx-setup.h echo #define wxUSE_FS_ZIP 1
92>> aegisub-wx-setup.h echo #define wxUSE_FS_ARCHIVE 1
93>> aegisub-wx-setup.h echo #define wxUSE_FS_INET 1
94>> aegisub-wx-setup.h echo #define wxUSE_ARCHIVE_STREAMS 1
95>> aegisub-wx-setup.h echo #define wxUSE_ZIPSTREAM 1
96>> aegisub-wx-setup.h echo #define wxUSE_TARSTREAM 1
97>> aegisub-wx-setup.h echo #define wxUSE_ZLIB 1
98>> aegisub-wx-setup.h echo #define wxUSE_APPLE_IEEE 1
99>> aegisub-wx-setup.h echo #define wxUSE_JOYSTICK 1
100>> aegisub-wx-setup.h echo #define wxUSE_FONTENUM 1
101>> aegisub-wx-setup.h echo #define wxUSE_FONTMAP 1
102>> aegisub-wx-setup.h echo #define wxUSE_MIMETYPE 1
103>> aegisub-wx-setup.h echo #define wxUSE_PROTOCOL 1
104>> aegisub-wx-setup.h echo #define wxUSE_PROTOCOL_FILE 1
105>> aegisub-wx-setup.h echo #define wxUSE_PROTOCOL_FTP 1
106>> aegisub-wx-setup.h echo #define wxUSE_PROTOCOL_HTTP 1
107>> aegisub-wx-setup.h echo #define wxUSE_URL 1
108>> aegisub-wx-setup.h echo #define wxUSE_URL_NATIVE 0
109>> aegisub-wx-setup.h echo #define wxUSE_VARIANT 1
110>> aegisub-wx-setup.h echo #define wxUSE_ANY 1
111>> aegisub-wx-setup.h echo #define wxUSE_REGEX 1
112>> aegisub-wx-setup.h echo #define wxUSE_SYSTEM_OPTIONS 1
113>> aegisub-wx-setup.h echo #define wxUSE_SOUND 0
114>> aegisub-wx-setup.h echo #define wxUSE_MEDIACTRL 0
115>> aegisub-wx-setup.h echo #define wxUSE_GSTREAMER 0
116>> aegisub-wx-setup.h echo #define wxUSE_XRC 0
117>> aegisub-wx-setup.h echo #define wxUSE_XML 1
118>> aegisub-wx-setup.h echo #define wxUSE_AUI 0
119>> aegisub-wx-setup.h echo #define wxUSE_RIBBON 1
120>> aegisub-wx-setup.h echo #define wxUSE_PROPGRID 1
121>> aegisub-wx-setup.h echo #define wxUSE_STC 1
122>> aegisub-wx-setup.h echo #define wxUSE_GRAPHICS_CONTEXT 1
123>> aegisub-wx-setup.h echo #define wxUSE_CONTROLS 1
124>> aegisub-wx-setup.h echo #define wxUSE_POPUPWIN 1
125>> aegisub-wx-setup.h echo #define wxUSE_TIPWINDOW 1
126>> aegisub-wx-setup.h echo #define wxUSE_ANIMATIONCTRL 1
127>> aegisub-wx-setup.h echo #define wxUSE_BUTTON        1
128>> aegisub-wx-setup.h echo #define wxUSE_BMPBUTTON     1
129>> aegisub-wx-setup.h echo #define wxUSE_CALENDARCTRL  1
130>> aegisub-wx-setup.h echo #define wxUSE_CHECKBOX      1
131>> aegisub-wx-setup.h echo #define wxUSE_CHECKLISTBOX  1
132>> aegisub-wx-setup.h echo #define wxUSE_CHOICE        1
133>> aegisub-wx-setup.h echo #define wxUSE_COLLPANE      1
134>> aegisub-wx-setup.h echo #define wxUSE_COLOURPICKERCTRL 1
135>> aegisub-wx-setup.h echo #define wxUSE_COMBOBOX      1
136>> aegisub-wx-setup.h echo #define wxUSE_DATAVIEWCTRL  1
137>> aegisub-wx-setup.h echo #define wxUSE_DATEPICKCTRL  1
138>> aegisub-wx-setup.h echo #define wxUSE_DIRPICKERCTRL 1
139>> aegisub-wx-setup.h echo #define wxUSE_EDITABLELISTBOX 1
140>> aegisub-wx-setup.h echo #define wxUSE_FILECTRL      1
141>> aegisub-wx-setup.h echo #define wxUSE_FILEPICKERCTRL 1
142>> aegisub-wx-setup.h echo #define wxUSE_FONTPICKERCTRL 1
143>> aegisub-wx-setup.h echo #define wxUSE_GAUGE         1
144>> aegisub-wx-setup.h echo #define wxUSE_HEADERCTRL    1
145>> aegisub-wx-setup.h echo #define wxUSE_HYPERLINKCTRL 1
146>> aegisub-wx-setup.h echo #define wxUSE_LISTBOX       1
147>> aegisub-wx-setup.h echo #define wxUSE_LISTCTRL      1
148>> aegisub-wx-setup.h echo #define wxUSE_RADIOBOX      1
149>> aegisub-wx-setup.h echo #define wxUSE_RADIOBTN      1
150>> aegisub-wx-setup.h echo #define wxUSE_SCROLLBAR     1
151>> aegisub-wx-setup.h echo #define wxUSE_SEARCHCTRL    1
152>> aegisub-wx-setup.h echo #define wxUSE_SLIDER        1
153>> aegisub-wx-setup.h echo #define wxUSE_SPINBTN       1
154>> aegisub-wx-setup.h echo #define wxUSE_SPINCTRL      1
155>> aegisub-wx-setup.h echo #define wxUSE_STATBOX       1
156>> aegisub-wx-setup.h echo #define wxUSE_STATLINE      1
157>> aegisub-wx-setup.h echo #define wxUSE_STATTEXT      1
158>> aegisub-wx-setup.h echo #define wxUSE_STATBMP       1
159>> aegisub-wx-setup.h echo #define wxUSE_TEXTCTRL      1
160>> aegisub-wx-setup.h echo #define wxUSE_TOGGLEBTN     1
161>> aegisub-wx-setup.h echo #define wxUSE_TREECTRL      1
162>> aegisub-wx-setup.h echo #define wxUSE_STATUSBAR 1
163>> aegisub-wx-setup.h echo #define wxUSE_NATIVE_STATUSBAR 1
164>> aegisub-wx-setup.h echo #define wxUSE_TOOLBAR 1
165>> aegisub-wx-setup.h echo #define wxUSE_TOOLBAR_NATIVE 1
166>> aegisub-wx-setup.h echo #define wxUSE_NOTEBOOK 1
167>> aegisub-wx-setup.h echo #define wxUSE_LISTBOOK 1
168>> aegisub-wx-setup.h echo #define wxUSE_CHOICEBOOK 1
169>> aegisub-wx-setup.h echo #define wxUSE_TREEBOOK 1
170>> aegisub-wx-setup.h echo #define wxUSE_TOOLBOOK 1
171>> aegisub-wx-setup.h echo #define wxUSE_TASKBARICON 0
172>> aegisub-wx-setup.h echo #define wxUSE_TAB_DIALOG 0
173>> aegisub-wx-setup.h echo #define wxUSE_GRID 1
174>> aegisub-wx-setup.h echo #define wxUSE_MINIFRAME 1
175>> aegisub-wx-setup.h echo #define wxUSE_COMBOCTRL 1
176>> aegisub-wx-setup.h echo #define wxUSE_ODCOMBOBOX 1
177>> aegisub-wx-setup.h echo #define wxUSE_BITMAPCOMBOBOX 1
178>> aegisub-wx-setup.h echo #define wxUSE_REARRANGECTRL 1
179>> aegisub-wx-setup.h echo #define wxUSE_ACCEL 1
180>> aegisub-wx-setup.h echo #define wxUSE_HOTKEY 1
181>> aegisub-wx-setup.h echo #define wxUSE_CARET 1
182>> aegisub-wx-setup.h echo #define wxUSE_DISPLAY 1
183>> aegisub-wx-setup.h echo #define wxUSE_GEOMETRY 1
184>> aegisub-wx-setup.h echo #define wxUSE_IMAGLIST 1
185>> aegisub-wx-setup.h echo #define wxUSE_INFOBAR 1
186>> aegisub-wx-setup.h echo #define wxUSE_MENUS 1
187>> aegisub-wx-setup.h echo #define wxUSE_NOTIFICATION_MESSAGE 1
188>> aegisub-wx-setup.h echo #define wxUSE_SASH 1
189>> aegisub-wx-setup.h echo #define wxUSE_SPLITTER 1
190>> aegisub-wx-setup.h echo #define wxUSE_TOOLTIPS 1
191>> aegisub-wx-setup.h echo #define wxUSE_VALIDATORS 1
192>> aegisub-wx-setup.h echo #define wxUSE_COMMON_DIALOGS 1
193>> aegisub-wx-setup.h echo #define wxUSE_BUSYINFO 1
194>> aegisub-wx-setup.h echo #define wxUSE_CHOICEDLG 1
195>> aegisub-wx-setup.h echo #define wxUSE_COLOURDLG 1
196>> aegisub-wx-setup.h echo #define wxUSE_DIRDLG 1
197>> aegisub-wx-setup.h echo #define wxUSE_FILEDLG 1
198>> aegisub-wx-setup.h echo #define wxUSE_FINDREPLDLG 1
199>> aegisub-wx-setup.h echo #define wxUSE_FONTDLG 1
200>> aegisub-wx-setup.h echo #define wxUSE_MSGDLG 1
201>> aegisub-wx-setup.h echo #define wxUSE_PROGRESSDLG 1
202>> aegisub-wx-setup.h echo #define wxUSE_STARTUP_TIPS 1
203>> aegisub-wx-setup.h echo #define wxUSE_TEXTDLG 1
204>> aegisub-wx-setup.h echo #define wxUSE_NUMBERDLG 1
205>> aegisub-wx-setup.h echo #define wxUSE_SPLASH 1
206>> aegisub-wx-setup.h echo #define wxUSE_WIZARDDLG 1
207>> aegisub-wx-setup.h echo #define wxUSE_ABOUTDLG 1
208>> aegisub-wx-setup.h echo #define wxUSE_METAFILE 1
209>> aegisub-wx-setup.h echo #define wxUSE_ENH_METAFILE 1
210>> aegisub-wx-setup.h echo #define wxUSE_WIN_METAFILES_ALWAYS 0
211>> aegisub-wx-setup.h echo #define wxUSE_MDI 0
212>> aegisub-wx-setup.h echo #define wxUSE_DOC_VIEW_ARCHITECTURE 0
213>> aegisub-wx-setup.h echo #define wxUSE_MDI_ARCHITECTURE 0
214>> aegisub-wx-setup.h echo #define wxUSE_PRINTING_ARCHITECTURE 1
215>> aegisub-wx-setup.h echo #define wxUSE_HTML 1
216>> aegisub-wx-setup.h echo #define wxUSE_GLCANVAS 1
217>> aegisub-wx-setup.h echo #define wxUSE_RICHTEXT 1
218>> aegisub-wx-setup.h echo #define wxUSE_CLIPBOARD 1
219>> aegisub-wx-setup.h echo #define wxUSE_DATAOBJ 1
220>> aegisub-wx-setup.h echo #define wxUSE_DRAG_AND_DROP 1
221>> aegisub-wx-setup.h echo #define wxUSE_ACCESSIBILITY 0
222>> aegisub-wx-setup.h echo #define wxUSE_SNGLINST_CHECKER 1
223>> aegisub-wx-setup.h echo #define wxUSE_DRAGIMAGE 1
224>> aegisub-wx-setup.h echo #define wxUSE_IPC 1
225>> aegisub-wx-setup.h echo #define wxUSE_HELP 1
226>> aegisub-wx-setup.h echo #define wxUSE_MS_HTML_HELP 1
227>> aegisub-wx-setup.h echo #define wxUSE_WXHTML_HELP 1
228>> aegisub-wx-setup.h echo #define wxUSE_RESOURCES 0
229>> aegisub-wx-setup.h echo #define wxUSE_CONSTRAINTS 1
230>> aegisub-wx-setup.h echo #define wxUSE_SPLINES 1
231>> aegisub-wx-setup.h echo #define wxUSE_MOUSEWHEEL 1
232>> aegisub-wx-setup.h echo #define wxUSE_POSTSCRIPT 0
233>> aegisub-wx-setup.h echo #define wxUSE_AFM_FOR_POSTSCRIPT 1
234>> aegisub-wx-setup.h echo #define wxUSE_SVG 1
235>> aegisub-wx-setup.h echo #define wxODBC_FWD_ONLY_CURSORS       1
236>> aegisub-wx-setup.h echo #define wxODBC_BACKWARD_COMPATABILITY 0
237>> aegisub-wx-setup.h echo #define REMOVE_UNUSED_ARG 1
238>> aegisub-wx-setup.h echo #define wxUSE_IOSTREAMH 0
239>> aegisub-wx-setup.h echo #define wxUSE_IMAGE 1
240>> aegisub-wx-setup.h echo #define wxUSE_LIBPNG 1
241>> aegisub-wx-setup.h echo #define wxUSE_LIBJPEG 1
242>> aegisub-wx-setup.h echo #define wxUSE_LIBTIFF 1
243>> aegisub-wx-setup.h echo #define wxUSE_TGA 1
244>> aegisub-wx-setup.h echo #define wxUSE_GIF 1
245>> aegisub-wx-setup.h echo #define wxUSE_PNM 0
246>> aegisub-wx-setup.h echo #define wxUSE_PCX 0
247>> aegisub-wx-setup.h echo #define wxUSE_IFF 0
248>> aegisub-wx-setup.h echo #define wxUSE_XPM 1
249>> aegisub-wx-setup.h echo #define wxUSE_ICO_CUR 1
250>> aegisub-wx-setup.h echo #define wxUSE_PALETTE 1
251>> aegisub-wx-setup.h echo #define wxUSE_ALL_THEMES 1
252>> aegisub-wx-setup.h echo #define wxUSE_UNICODE_MSLU 0
253>> aegisub-wx-setup.h echo #define wxUSE_MFC 0
254>> aegisub-wx-setup.h echo #define wxUSE_OLE 1
255>> aegisub-wx-setup.h echo #define wxUSE_OLE_AUTOMATION 0
256>> aegisub-wx-setup.h echo #define wxUSE_ACTIVEX 0
257>> aegisub-wx-setup.h echo #define wxUSE_DC_CACHEING 1
258>> aegisub-wx-setup.h echo #define wxUSE_DIB_FOR_BITMAP 0
259>> aegisub-wx-setup.h echo #define wxUSE_WXDIB 1
260>> aegisub-wx-setup.h echo #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
261>> aegisub-wx-setup.h echo #define wxUSE_REGKEY 1
262>> aegisub-wx-setup.h echo #define wxUSE_RICHEDIT 1
263>> aegisub-wx-setup.h echo #define wxUSE_RICHEDIT2 1
264>> aegisub-wx-setup.h echo #define wxUSE_OWNER_DRAWN 1
265>> aegisub-wx-setup.h echo #define wxUSE_TASKBARICON_BALLOONS 1
266>> aegisub-wx-setup.h echo #define wxUSE_UXTHEME 1
267>> aegisub-wx-setup.h echo #define wxUSE_UXTHEME_AUTO 1
268>> aegisub-wx-setup.h echo #define wxUSE_INKEDIT 0
269>> aegisub-wx-setup.h echo #define wxUSE_INICONF 0
270>> aegisub-wx-setup.h echo #define wxUSE_DATEPICKCTRL_GENERIC 0
271>> aegisub-wx-setup.h echo #define wxUSE_CRASHREPORT 1
272>> aegisub-wx-setup.h echo #define wxUSE_AUTOID_MANAGEMENT 1
273>> aegisub-wx-setup.h echo #endif
274
275echo Install new setup.h
276del "%sourcebase%\include\wx\msw\setup.h.bak"
277del "%sourcebase%\lib\vc_lib\mswud\wx\setup.h"
278del "%sourcebase%\lib\vc_lib\mswu\wx\setup.h"
279move "%sourcebase%\include\wx\msw\setup.h" "%sourcebase%\include\wx\msw\setup.h.bak"
280copy "%sourcebase%\aegisub-wx-setup.h" "%sourcebase%\include\wx\msw\setup.h"
281echo Configured.
282echo.
283echo Now building...
284
285
286call "%vcvars%" x86
287cd /d "%sourcebase%\build\msw"
288call :dobuild SHARED=0 UNICODE=1 USE_OPENGL=1 VENDOR=aegisub
289if errorlevel 1 goto buildfail
290
291call "%vcvars%" amd64
292cd /d %sourcebase%\build\msw
293call :dobuild SHARED=0 UNICODE=1 USE_OPENGL=1 VENDOR=aegisub TARGET_CPU=AMD64
294if errorlevel 1 goto buildfail
295
296
297mkdir %installbase%
298cd /d %installbase%
299
300rd /s/q include
301rd /s/q lib32
302rd /s/q lib64
303
304mkdir include\wx
305mkdir lib32
306mkdir lib64
307
308robocopy %sourcebase%\include\wx %installbase%\include\wx /S /NJH /NJS /XD .svn
309if errorlevel 2 goto installfail
310robocopy %sourcebase%\src\zlib %installbase%\include zlib.h zconf.h /NJH /NJS
311if errorlevel 2 goto installfail
312robocopy %sourcebase%\src\png %installbase%\include png.h pngconf.h /NJH /NJS
313if errorlevel 2 goto installfail
314copy /Y %sourcebase%\include\msvc\wx\setup.h %installbase%\include\wx\setup.h
315if errorlevel 1 goto installfail
316robocopy %sourcebase%\lib\vc_lib %installbase%\lib32 /S /NJH /NJS /XD .svn
317if errorlevel 2 goto installfail
318robocopy %sourcebase%\lib\vc_amd64_lib %installbase%\lib64 /S /NJH /NJS /XD .svn
319if errorlevel 2 goto installfail
320
321goto success
322
323
324:dobuild
325rem Arguments are extra build flags
326nmake -f makefile.vc clean %* BUILD=debug
327if errorlevel 1 exit /b 1
328nmake -f makefile.vc clean %* BUILD=release
329if errorlevel 1 exit /b 1
330nmake -f makefile.vc %* BUILD=debug
331if errorlevel 1 exit /b 1
332nmake -f makefile.vc %* BUILD=release
333if errorlevel 1 exit /b 1
334goto :eof
335
336
337:buildfail
338echo.
339echo Oops, build failed.
340echo.
341pause
342exit /b 2
343goto end
344
345:installfail
346echo.
347echo Oops, install failed.
348echo.
349pause
350exit /b 3
351
352:success
353echo.
354echo SUCCESS!
355echo wxMSW 2.9 installed to %installbase%
356echo.
357pause
358exit /b 0