File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / projects / build-openssl.bat
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:14 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>