Annotation of embedaddon/curl/projects/build-openssl.bat, revision 1.1.1.1
1.1 misho 1: @echo off
2: rem ***************************************************************************
3: rem * _ _ ____ _
4: rem * Project ___| | | | _ \| |
5: rem * / __| | | | |_) | |
6: rem * | (__| |_| | _ <| |___
7: rem * \___|\___/|_| \_\_____|
8: rem *
9: rem * Copyright (C) 2012 - 2019, Steve Holme, <steve_holme@hotmail.com>.
10: rem *
11: rem * This software is licensed as described in the file COPYING, which
12: rem * you should have received as part of this distribution. The terms
13: rem * are also available at https://curl.haxx.se/docs/copyright.html.
14: rem *
15: rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
16: rem * copies of the Software, and permit persons to whom the Software is
17: rem * furnished to do so, under the terms of the COPYING file.
18: rem *
19: rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20: rem * KIND, either express or implied.
21: rem *
22: rem ***************************************************************************
23:
24: :begin
25: rem Check we are running on a Windows NT derived OS
26: if not "%OS%" == "Windows_NT" goto nodos
27:
28: rem Set our variables
29: setlocal ENABLEDELAYEDEXPANSION
30: set VC_VER=
31: set BUILD_PLATFORM=
32: set BUILD_CONFIG=
33:
34: rem Ensure we have the required arguments
35: if /i "%~1" == "" goto syntax
36:
37: rem Calculate the program files directory
38: if defined PROGRAMFILES (
39: set "PF=%PROGRAMFILES%"
40: set OS_PLATFORM=x86
41: )
42: if defined PROGRAMFILES(x86) (
43: set "PF=%PROGRAMFILES(x86)%"
44: set OS_PLATFORM=x64
45: )
46:
47: :parseArgs
48: if not "%~1" == "" (
49: if /i "%~1" == "vc6" (
50: set VC_VER=6.0
51: set VC_DESC=VC6
52: set "VC_PATH=Microsoft Visual Studio\VC98"
53: ) else if /i "%~1" == "vc7" (
54: set VC_VER=7.0
55: set VC_DESC=VC7
56: set "VC_PATH=Microsoft Visual Studio .NET\Vc7"
57: ) else if /i "%~1" == "vc7.1" (
58: set VC_VER=7.1
59: set VC_DESC=VC7.1
60: set "VC_PATH=Microsoft Visual Studio .NET 2003\Vc7"
61: ) else if /i "%~1" == "vc8" (
62: set VC_VER=8.0
63: set VC_DESC=VC8
64: set "VC_PATH=Microsoft Visual Studio 8\VC"
65: ) else if /i "%~1" == "vc9" (
66: set VC_VER=9.0
67: set VC_DESC=VC9
68: set "VC_PATH=Microsoft Visual Studio 9.0\VC"
69: ) else if /i "%~1" == "vc10" (
70: set VC_VER=10.0
71: set VC_DESC=VC10
72: set "VC_PATH=Microsoft Visual Studio 10.0\VC"
73: ) else if /i "%~1" == "vc11" (
74: set VC_VER=11.0
75: set VC_DESC=VC11
76: set "VC_PATH=Microsoft Visual Studio 11.0\VC"
77: ) else if /i "%~1" == "vc12" (
78: set VC_VER=12.0
79: set VC_DESC=VC12
80: set "VC_PATH=Microsoft Visual Studio 12.0\VC"
81: ) else if /i "%~1" == "vc14" (
82: set VC_VER=14.0
83: set VC_DESC=VC14
84: set "VC_PATH=Microsoft Visual Studio 14.0\VC"
85: ) else if /i "%~1" == "vc14.1" (
86: set VC_VER=14.1
87: set VC_DESC=VC14.1
88:
89: rem Determine the VC14.1 path based on the installed edition in descending
90: rem order (Enterprise, then Professional and finally Community)
91: if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
92: set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
93: ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
94: set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
95: ) else (
96: set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
97: )
98: ) else if /i "%~1" == "vc14.2" (
99: set VC_VER=14.2
100: set VC_DESC=VC14.2
101:
102: rem Determine the VC14.2 path based on the installed edition in descending
103: rem order (Enterprise, then Professional and finally Community)
104: if exist "%PF%\Microsoft Visual Studio\2019\Enterprise\VC" (
105: set "VC_PATH=Microsoft Visual Studio\2019\Enterprise\VC"
106: ) else if exist "%PF%\Microsoft Visual Studio\2019\Professional\VC" (
107: set "VC_PATH=Microsoft Visual Studio\2019\Professional\VC"
108: ) else (
109: set "VC_PATH=Microsoft Visual Studio\2019\Community\VC"
110: )
111: ) else if /i "%~1%" == "x86" (
112: set BUILD_PLATFORM=x86
113: ) else if /i "%~1%" == "x64" (
114: set BUILD_PLATFORM=x64
115: ) else if /i "%~1%" == "debug" (
116: set BUILD_CONFIG=debug
117: ) else if /i "%~1%" == "release" (
118: set BUILD_CONFIG=release
119: ) else if /i "%~1" == "-?" (
120: goto syntax
121: ) else if /i "%~1" == "-h" (
122: goto syntax
123: ) else if /i "%~1" == "-help" (
124: goto syntax
125: ) else if /i "%~1" == "-VSpath" (
126: if "%~2" == "" (
127: echo.
128: echo Error. Please provide VS Path.
129: goto error
130: ) else (
131: set "ABS_VC_PATH=%~2\VC"
132: shift
133: )
134: ) else if /i "%~1" == "-perlpath" (
135: if "%~2" == "" (
136: echo.
137: echo Error. Please provide Perl root Path.
138: goto error
139: ) else (
140: set "PERL_PATH=%~2"
141: shift
142: )
143: ) else (
144: if not defined START_DIR (
145: set START_DIR=%~1%
146: ) else (
147: goto unknown
148: )
149: )
150:
151: shift & goto parseArgs
152: )
153:
154: :prerequisites
155: rem Compiler is a required parameter
156: if not defined VC_VER goto syntax
157:
158: rem Default the start directory if one isn't specified
159: if not defined START_DIR set START_DIR=..\..\openssl
160:
161: if not defined ABS_VC_PATH (
162: rem Check we have a program files directory
163: if not defined PF goto nopf
164: set "ABS_VC_PATH=%PF%\%VC_PATH%"
165: )
166:
167: rem Check we have Visual Studio installed
168: if not exist "%ABS_VC_PATH%" goto novc
169:
170: if not defined PERL_PATH (
171: rem Check we have Perl in our path
172: perl --version <NUL 1>NUL 2>&1
173: if errorlevel 1 (
174: rem It isn't so check we have it installed and set the path if it is
175: if exist "%SystemDrive%\Perl" (
176: set "PATH=%SystemDrive%\Perl\bin;%PATH%"
177: ) else (
178: if exist "%SystemDrive%\Perl64" (
179: set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
180: ) else (
181: goto noperl
182: )
183: )
184: )
185: ) else (
186: set "PATH=%PERL_PATH%\Perl\bin;%PATH%"
187: )
188:
189: rem Check the start directory exists
190: if not exist "%START_DIR%" goto noopenssl
191:
192: :setup
193: if "%BUILD_PLATFORM%" == "" (
194: if "%VC_VER%" == "6.0" (
195: set BUILD_PLATFORM=x86
196: ) else if "%VC_VER%" == "7.0" (
197: set BUILD_PLATFORM=x86
198: ) else if "%VC_VER%" == "7.1" (
199: set BUILD_PLATFORM=x86
200: ) else (
201: set BUILD_PLATFORM=%OS_PLATFORM%
202: )
203: )
204:
205: if "%BUILD_PLATFORM%" == "x86" (
206: set VCVARS_PLATFORM=x86
207: ) else if "%BUILD_PLATFORM%" == "x64" (
208: if "%VC_VER%" == "6.0" goto nox64
209: if "%VC_VER%" == "7.0" goto nox64
210: if "%VC_VER%" == "7.1" goto nox64
211: if "%VC_VER%" == "8.0" set VCVARS_PLATFORM=x86_amd64
212: if "%VC_VER%" == "9.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
213: if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
214: if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64
215: if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64
216: if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64
217: if "%VC_VER%" == "14.1" set VCVARS_PLATFORM=amd64
218: if "%VC_VER%" == "14.2" set VCVARS_PLATFORM=amd64
219: )
220:
221: if exist "%START_DIR%\ms\do_ms.bat" (
222: set LEGACY_BUILD=TRUE
223: ) else (
224: set LEGACY_BUILD=FALSE
225: )
226:
227: :start
228: echo.
229: set SAVED_PATH=%CD%
230:
231: if "%VC_VER%" == "6.0" (
232: call "%ABS_VC_PATH%\bin\vcvars32"
233: ) else if "%VC_VER%" == "7.0" (
234: call "%ABS_VC_PATH%\bin\vcvars32"
235: ) else if "%VC_VER%" == "7.1" (
236: call "%ABS_VC_PATH%\bin\vcvars32"
237: ) else if "%VC_VER%" == "14.1" (
238: call "%ABS_VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
239: ) else if "%VC_VER%" == "14.2" (
240: call "%ABS_VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
241: ) else (
242: call "%ABS_VC_PATH%\vcvarsall" %VCVARS_PLATFORM%
243: )
244:
245: echo.
246: cd /d %SAVED_PATH%
247: if defined START_DIR cd /d %START_DIR%
248: goto %BUILD_PLATFORM%
249:
250: :x64
251: rem Calculate our output directory
252: set OUTDIR=build\Win64\%VC_DESC%
253: if not exist %OUTDIR% md %OUTDIR%
254:
255: if not "%BUILD_CONFIG%" == "release" (
256: rem Configuring 64-bit Static Library Debug Build
257: call :configure x64 debug static %LEGACY_BUILD%
258:
259: rem Perform the build
260: call :build x64 static %LEGACY_BUILD%
261:
262: rem Perform the install
263: call :install debug static %LEGACY_BUILD%
264:
265: rem Configuring 64-bit Shared Library Debug Build
266: call :configure x64 debug shared %LEGACY_BUILD%
267:
268: rem Perform the build
269: call :build x64 shared %LEGACY_BUILD%
270:
271: rem Perform the install
272: call :install debug shared %LEGACY_BUILD%
273: )
274:
275: if not "%BUILD_CONFIG%" == "debug" (
276: rem Configuring 64-bit Static Library Release Build
277: call :configure x64 release static %LEGACY_BUILD%
278:
279: rem Perform the build
280: call :build x64 static %LEGACY_BUILD%
281:
282: rem Perform the install
283: call :install release static %LEGACY_BUILD%
284:
285: rem Configuring 64-bit Shared Library Release Build
286: call :configure x64 release shared %LEGACY_BUILD%
287:
288: rem Perform the build
289: call :build x64 shared %LEGACY_BUILD%
290:
291: rem Perform the install
292: call :install release shared %LEGACY_BUILD%
293: )
294:
295: goto success
296:
297: :x86
298: rem Calculate our output directory
299: set OUTDIR=build\Win32\%VC_DESC%
300: if not exist %OUTDIR% md %OUTDIR%
301:
302: if not "%BUILD_CONFIG%" == "release" (
303: rem Configuring 32-bit Static Library Debug Build
304: call :configure x86 debug static %LEGACY_BUILD%
305:
306: rem Perform the build
307: call :build x86 static %LEGACY_BUILD%
308:
309: rem Perform the install
310: call :install debug static %LEGACY_BUILD%
311:
312: rem Configuring 32-bit Shared Library Debug Build
313: call :configure x86 debug shared %LEGACY_BUILD%
314:
315: rem Perform the build
316: call :build x86 shared %LEGACY_BUILD%
317:
318: rem Perform the install
319: call :install debug shared %LEGACY_BUILD%
320: )
321:
322: if not "%BUILD_CONFIG%" == "debug" (
323: rem Configuring 32-bit Static Library Release Build
324: call :configure x86 release static %LEGACY_BUILD%
325:
326: rem Perform the build
327: call :build x86 static %LEGACY_BUILD%
328:
329: rem Perform the install
330: call :install release static %LEGACY_BUILD%
331:
332: rem Configuring 32-bit Shared Library Release Build
333: call :configure x86 release shared %LEGACY_BUILD%
334:
335: rem Perform the build
336: call :build x86 shared %LEGACY_BUILD%
337:
338: rem Perform the install
339: call :install release shared %LEGACY_BUILD%
340: )
341:
342: goto success
343:
344: rem Function to configure the build.
345: rem
346: rem %1 - Platform (x86 or x64)
347: rem %2 - Configuration (release or debug)
348: rem %3 - Build Type (static or shared)
349: rem %4 - Build type (TRUE for legacy aka pre v1.1.0; otherwise FALSE)
350: rem
351: :configure
352: setlocal
353:
354: if "%1" == "" exit /B 1
355: if "%2" == "" exit /B 1
356: if "%3" == "" exit /B 1
357: if "%4" == "" exit /B 1
358:
359: if "%4" == "TRUE" (
360: rem Calculate the build directory
361: set build_dir=%cd%
362:
363: rem Calculate the configure options
364: if "%1" == "x86" (
365: if "%2" == "debug" (
366: set options=debug-VC-WIN32
367: ) else if "%2" == "release" (
368: set options=VC-WIN32
369: ) else (
370: exit /B 1
371: )
372:
373: set options=!options! no-asm
374: ) else if "%1" == "x64" (
375: if "%2" == "debug" (
376: set options=debug-VC-WIN64A
377: ) else if "%2" == "release" (
378: set options=VC-WIN64A
379: ) else (
380: exit /B 1
381: )
382: ) else (
383: exit /B 1
384: )
385: ) else if "%4" == "FALSE" (
386: rem Has configure already been ran?
387: if exist makefile (
388: rem Clean up the previous build
389: nmake clean
390:
391: rem Remove the old makefile
392: del makefile 1>nul
393: )
394:
395: rem Calculate the build directory
396: set build_dir=%cd%\build\tmp
397:
398: rem Calculate the configure options
399: if "%1" == "x86" (
400: set options=VC-WIN32
401: ) else if "%1" == "x64" (
402: set options=VC-WIN64A
403: ) else (
404: exit /B 1
405: )
406:
407: if "%2" == "debug" (
408: set options=!options! --debug
409: ) else if "%2" == "release" (
410: set options=!options! --release
411: ) else (
412: exit /B 1
413: )
414:
415: if "%3" == "static" (
416: set options=!options! no-shared
417: ) else if not "%3" == "shared" (
418: exit /B 1
419: )
420:
421: set options=!options! no-asm
422: ) else (
423: exit /B 1
424: )
425:
426: set options=%options% --prefix=%build_dir%
427:
428: rem Run the configure
429: perl Configure %options%
430:
431: exit /B %ERRORLEVEL
432:
433: rem Main build function.
434: rem
435: rem %1 - Platform (x86 or x64)
436: rem %2 - Build Type (static or shared)
437: rem %3 - Build type (TRUE for legacy aka pre v1.1.0; otherwise FALSE)
438: rem
439: :build
440: setlocal
441:
442: if "%1" == "" exit /B 1
443: if "%2" == "" exit /B 1
444: if "%3" == "" exit /B 1
445:
446: if "%3" == "TRUE" (
447: if "%1" == "x86" (
448: call ms\do_ms.bat
449: ) else if "%1" == "x64" (
450: call ms\do_win64a.bat
451: ) else (
452: exit /B 1
453: )
454:
455: if "%2" == "static" (
456: nmake -f ms\nt.mak
457: ) else if "%2" == "shared" (
458: nmake -f ms\ntdll.mak
459: ) else (
460: exit /B 1
461: )
462: ) else if "%2" == "FALSE" (
463: nmake
464: ) else (
465: exit /B 1
466: )
467:
468: exit /B 0
469:
470: rem Main installation function.
471: rem
472: rem %1 - Configuration (release or debug)
473: rem %2 - Build Type (static or shared)
474: rem %3 - Build type (TRUE for legacy aka pre v1.1.0; otherwise FALSE)
475: rem
476: :install
477: setlocal
478:
479: if "%1" == "" exit /B 1
480: if "%2" == "" exit /B 1
481: if "%3" == "" exit /B 1
482:
483: rem Copy the generated files to our directory structure
484: if "%3" == "TRUE" (
485: if "%1" == "debug" (
486: if "%2" == "static" (
487: rem Move the output directories
488: if exist "%OUTDIR%\LIB Debug" (
489: copy /y out32.dbg\* "%OUTDIR%\LIB Debug" 1>nul
490: rd out32.dbg /s /q
491: ) else (
492: move out32.dbg "%OUTDIR%\LIB Debug" 1>nul
493: )
494:
495: rem Move the PDB files
496: move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug" 1>nul
497:
498: rem Remove the intermediate directories
499: rd tmp32.dbg /s /q
500: ) else if "%2" == "shared" (
501: if exist "%OUTDIR%\DLL Debug" (
502: copy /y out32dll.dbg\* "%OUTDIR%\DLL Debug" 1>nul
503: rd out32dll.dbg /s /q
504: ) else (
505: move out32dll.dbg "%OUTDIR%\DLL Debug" 1>nul
506: )
507:
508: rem Move the PDB files
509: move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug" 1>nul
510:
511: rem Remove the intermediate directories
512: rd tmp32dll.dbg /s /q
513: ) else (
514: exit /B 1
515: )
516: ) else if "%1" == "release" (
517: if "%2" == "static" (
518: rem Move the output directories
519: if exist "%OUTDIR%\LIB Release" (
520: copy /y out32\* "%OUTDIR%\LIB Release" 1>nul
521: rd out32 /s /q
522: ) else (
523: move out32 "%OUTDIR%\LIB Release" 1>nul
524: )
525:
526: rem Move the PDB files
527: move tmp32\lib.pdb "%OUTDIR%\LIB Release" 1>nul
528:
529: rem Remove the intermediate directories
530: rd tmp32 /s /q
531: ) else if "%2" == "shared" (
532: if exist "%OUTDIR%\DLL Release" (
533: copy /y out32dll\* "%OUTDIR%\DLL Release" 1>nul
534: rd out32dll /s /q
535: ) else (
536: move out32dll "%OUTDIR%\DLL Release" 1>nul
537: )
538:
539: rem Move the PDB files
540: move tmp32dll\lib.pdb "%OUTDIR%\DLL Release" 1>nul
541:
542: rem Remove the intermediate directories
543: rd tmp32dll /s /q
544: ) else (
545: exit /B 1
546: )
547: )
548: ) else if "%3" == "FALSE" (
549: rem Calculate the build directory
550: set build_dir=%cd%\build\tmp
551:
552: rem Perform the installation
553: nmake install_sw
554:
555: rem Move the output directories
556: if "%1" == "debug" (
557: if "%2" == "static" (
558: if not exist "%OUTDIR%\LIB Debug" (
559: mkdir "%OUTDIR%\LIB Debug" 1>nul
560: )
561:
562: move !build_dir!\lib\*.lib "%OUTDIR%\LIB Debug" 1>nul
563: move !build_dir!\bin\*.exe "%OUTDIR%\LIB Debug" 1>nul
564: ) else if "%2" == "shared" (
565: if not exist "%OUTDIR%\DLL Debug" (
566: mkdir "%OUTDIR%\DLL Debug" 1>nul
567: )
568:
569: move !build_dir!\lib\*.lib "%OUTDIR%\DLL Debug" 1>nul
570: move !build_dir!\bin\*.dll "%OUTDIR%\DLL Debug" 1>nul
571: move !build_dir!\bin\*.exe "%OUTDIR%\DLL Debug" 1>nul
572: move !build_dir!\bin\*.pdb "%OUTDIR%\DLL Debug" 1>nul
573: ) else (
574: exit /B 1
575: )
576: ) else if "%1" == "release" (
577: if "%2" == "static" (
578: if not exist "%OUTDIR%\LIB Release" (
579: mkdir "%OUTDIR%\LIB Release" 1>nul
580: )
581:
582: move !build_dir!\lib\*.lib "%OUTDIR%\LIB Release" 1>nul
583: move !build_dir!\bin\*.exe "%OUTDIR%\LIB Release" 1>nul
584: ) else if "%2" == "shared" (
585: if not exist "%OUTDIR%\DLL Release" (
586: mkdir "%OUTDIR%\DLL Release" 1>nul
587: )
588:
589: move !build_dir!\lib\*.lib "%OUTDIR%\DLL Release" 1>nul
590: move !build_dir!\bin\*.dll "%OUTDIR%\DLL Release" 1>nul
591: move !build_dir!\bin\*.exe "%OUTDIR%\DLL Release" 1>nul
592: ) else (
593: exit /B 1
594: )
595: ) else (
596: exit /B 1
597: )
598:
599: rem Remove the output directories
600: rd !build_dir! /s /q
601: ) else (
602: exit /B 1
603: )
604:
605: exit /B 0
606:
607: :syntax
608: rem Display the help
609: echo.
610: echo Usage: build-openssl ^<compiler^> [platform] [configuration] [directory] [-VSpath] ["VSpath"] [-perlpath] ["perlpath"]
611: echo.
612: echo Compiler:
613: echo.
614: echo vc6 - Use Visual Studio 6
615: echo vc7 - Use Visual Studio .NET
616: echo vc7.1 - Use Visual Studio .NET 2003
617: echo vc8 - Use Visual Studio 2005
618: echo vc9 - Use Visual Studio 2008
619: echo vc10 - Use Visual Studio 2010
620: echo vc11 - Use Visual Studio 2012
621: echo vc12 - Use Visual Studio 2013
622: echo vc14 - Use Visual Studio 2015
623: echo vc14.1 - Use Visual Studio 2017
624: echo vc14.2 - Use Visual Studio 2019
625: echo.
626: echo Platform:
627: echo.
628: echo x86 - Perform a 32-bit build
629: echo x64 - Perform a 64-bit build
630: echo.
631: echo Configuration:
632: echo.
633: echo debug - Perform a debug build
634: echo release - Perform a release build
635: echo.
636: echo Other:
637: echo.
638: echo directory - Specifies the OpenSSL source directory
639: echo.
640: echo -VSpath - Specify the custom VS path if Visual Studio is installed at other location
641: echo then "C:/<ProgramFiles>/Microsoft Visual Studio[version]
642: echo For e.g. -VSpath "C:\apps\MVS14"
643: echo.
644: echo -perlpath - Specify the custom perl root path if perl is not located at "C:\Perl" and it is a
645: echo portable copy of perl and not installed on the win system
646: echo For e.g. -perlpath "D:\strawberry-perl-5.24.3.1-64bit-portable"
647: goto error
648:
649: :unknown
650: echo.
651: echo Error: Unknown argument '%1'
652: goto error
653:
654: :nodos
655: echo.
656: echo Error: Only a Windows NT based Operating System is supported
657: goto error
658:
659: :nopf
660: echo.
661: echo Error: Cannot obtain the directory for Program Files
662: goto error
663:
664: :novc
665: echo.
666: echo Error: %VC_DESC% is not installed
667: echo Error: Please check whether Visual compiler is installed at the path "%ABS_VC_PATH%"
668: echo Error: Please provide proper VS Path by using -VSpath
669: goto error
670:
671: :noperl
672: echo.
673: echo Error: Perl is not installed
674: echo Error: Please check whether Perl is installed or it is at location "C:\Perl"
675: echo Error: If Perl is portable please provide perl root path by using -perlpath
676: goto error
677:
678: :nox64
679: echo.
680: echo Error: %VC_DESC% does not support 64-bit builds
681: goto error
682:
683: :noopenssl
684: echo.
685: echo Error: Cannot locate OpenSSL source directory
686: goto error
687:
688: :error
689: if "%OS%" == "Windows_NT" endlocal
690: exit /B 1
691:
692: :success
693: cd /d %SAVED_PATH%
694: endlocal
695: exit /B 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>