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