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