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 * Copyright (C) Jay Satiro, <[email protected]>. 11*6236dae4SAndroid Build Coastguard Workerrem * 12*6236dae4SAndroid Build Coastguard Workerrem * This software is licensed as described in the file COPYING, which 13*6236dae4SAndroid Build Coastguard Workerrem * you should have received as part of this distribution. The terms 14*6236dae4SAndroid Build Coastguard Workerrem * are also available at https://curl.se/docs/copyright.html. 15*6236dae4SAndroid Build Coastguard Workerrem * 16*6236dae4SAndroid Build Coastguard Workerrem * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17*6236dae4SAndroid Build Coastguard Workerrem * copies of the Software, and permit persons to whom the Software is 18*6236dae4SAndroid Build Coastguard Workerrem * furnished to do so, under the terms of the COPYING file. 19*6236dae4SAndroid Build Coastguard Workerrem * 20*6236dae4SAndroid Build Coastguard Workerrem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21*6236dae4SAndroid Build Coastguard Workerrem * KIND, either express or implied. 22*6236dae4SAndroid Build Coastguard Workerrem * 23*6236dae4SAndroid Build Coastguard Workerrem * SPDX-License-Identifier: curl 24*6236dae4SAndroid Build Coastguard Workerrem * 25*6236dae4SAndroid Build Coastguard Workerrem *************************************************************************** 26*6236dae4SAndroid Build Coastguard Worker 27*6236dae4SAndroid Build Coastguard Worker:begin 28*6236dae4SAndroid Build Coastguard Worker rem Check we are running on a Windows NT derived OS 29*6236dae4SAndroid Build Coastguard Worker if not "%OS%" == "Windows_NT" goto nodos 30*6236dae4SAndroid Build Coastguard Worker 31*6236dae4SAndroid Build Coastguard Worker rem Set our variables 32*6236dae4SAndroid Build Coastguard Worker setlocal 33*6236dae4SAndroid Build Coastguard Worker set SUCCESSFUL_BUILDS= 34*6236dae4SAndroid Build Coastguard Worker set VC_VER= 35*6236dae4SAndroid Build Coastguard Worker set BUILD_PLATFORM= 36*6236dae4SAndroid Build Coastguard Worker set DEFAULT_START_DIR=..\..\wolfssl 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Worker rem Calculate the program files directory 39*6236dae4SAndroid Build Coastguard Worker if defined PROGRAMFILES ( 40*6236dae4SAndroid Build Coastguard Worker set "PF=%PROGRAMFILES%" 41*6236dae4SAndroid Build Coastguard Worker set OS_PLATFORM=x86 42*6236dae4SAndroid Build Coastguard Worker ) 43*6236dae4SAndroid Build Coastguard Worker if defined PROGRAMFILES(x86) ( 44*6236dae4SAndroid Build Coastguard Worker rem Visual Studio was x86-only prior to 14.3 45*6236dae4SAndroid Build Coastguard Worker if /i "%~1" == "vc14.3" ( 46*6236dae4SAndroid Build Coastguard Worker set "PF=%PROGRAMFILES%" 47*6236dae4SAndroid Build Coastguard Worker ) else ( 48*6236dae4SAndroid Build Coastguard Worker set "PF=%PROGRAMFILES(x86)%" 49*6236dae4SAndroid Build Coastguard Worker ) 50*6236dae4SAndroid Build Coastguard Worker set OS_PLATFORM=x64 51*6236dae4SAndroid Build Coastguard Worker ) 52*6236dae4SAndroid Build Coastguard Worker 53*6236dae4SAndroid Build Coastguard Worker rem Ensure we have the required arguments 54*6236dae4SAndroid Build Coastguard Worker if /i "%~1" == "" goto syntax 55*6236dae4SAndroid Build Coastguard Worker 56*6236dae4SAndroid Build Coastguard Worker:parseArgs 57*6236dae4SAndroid Build Coastguard Worker if "%~1" == "" goto prerequisites 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard Worker if /i "%~1" == "vc10" ( 60*6236dae4SAndroid Build Coastguard Worker set VC_VER=10.0 61*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC10 62*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v100 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_TOOLSET=v110 68*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio 11.0\VC" 69*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc12" ( 70*6236dae4SAndroid Build Coastguard Worker set VC_VER=12.0 71*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC12 72*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v120 73*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio 12.0\VC" 74*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc14" ( 75*6236dae4SAndroid Build Coastguard Worker set VC_VER=14.0 76*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC14 77*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v140 78*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio 14.0\VC" 79*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc14.1" ( 80*6236dae4SAndroid Build Coastguard Worker set VC_VER=14.1 81*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC14.10 82*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v141 83*6236dae4SAndroid Build Coastguard Worker 84*6236dae4SAndroid Build Coastguard Worker rem Determine the VC14.1 path based on the installed edition in descending 85*6236dae4SAndroid Build Coastguard Worker rem order (Enterprise, then Professional and finally Community) 86*6236dae4SAndroid Build Coastguard Worker if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" ( 87*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC" 88*6236dae4SAndroid Build Coastguard Worker ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" ( 89*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC" 90*6236dae4SAndroid Build Coastguard Worker ) else ( 91*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2017\Community\VC" 92*6236dae4SAndroid Build Coastguard Worker ) 93*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc14.2" ( 94*6236dae4SAndroid Build Coastguard Worker set VC_VER=14.2 95*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC14.20 96*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v142 97*6236dae4SAndroid Build Coastguard Worker 98*6236dae4SAndroid Build Coastguard Worker rem Determine the VC14.2 path based on the installed edition in descending 99*6236dae4SAndroid Build Coastguard Worker rem order (Enterprise, then Professional and finally Community) 100*6236dae4SAndroid Build Coastguard Worker if exist "%PF%\Microsoft Visual Studio\2019\Enterprise\VC" ( 101*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2019\Enterprise\VC" 102*6236dae4SAndroid Build Coastguard Worker ) else if exist "%PF%\Microsoft Visual Studio\2019\Professional\VC" ( 103*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2019\Professional\VC" 104*6236dae4SAndroid Build Coastguard Worker ) else ( 105*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2019\Community\VC" 106*6236dae4SAndroid Build Coastguard Worker ) 107*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc14.3" ( 108*6236dae4SAndroid Build Coastguard Worker set VC_VER=14.3 109*6236dae4SAndroid Build Coastguard Worker set VC_DESC=VC14.30 110*6236dae4SAndroid Build Coastguard Worker set VC_TOOLSET=v143 111*6236dae4SAndroid Build Coastguard Worker 112*6236dae4SAndroid Build Coastguard Worker rem Determine the VC14.3 path based on the installed edition in descending 113*6236dae4SAndroid Build Coastguard Worker rem order (Enterprise, then Professional and finally Community) 114*6236dae4SAndroid Build Coastguard Worker if exist "%PF%\Microsoft Visual Studio\2022\Enterprise\VC" ( 115*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2022\Enterprise\VC" 116*6236dae4SAndroid Build Coastguard Worker ) else if exist "%PF%\Microsoft Visual Studio\2022\Professional\VC" ( 117*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2022\Professional\VC" 118*6236dae4SAndroid Build Coastguard Worker ) else ( 119*6236dae4SAndroid Build Coastguard Worker set "VC_PATH=Microsoft Visual Studio\2022\Community\VC" 120*6236dae4SAndroid Build Coastguard Worker ) 121*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "x86" ( 122*6236dae4SAndroid Build Coastguard Worker set BUILD_PLATFORM=x86 123*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "x64" ( 124*6236dae4SAndroid Build Coastguard Worker set BUILD_PLATFORM=x64 125*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "debug" ( 126*6236dae4SAndroid Build Coastguard Worker set BUILD_CONFIG=debug 127*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "release" ( 128*6236dae4SAndroid Build Coastguard Worker set BUILD_CONFIG=release 129*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-?" ( 130*6236dae4SAndroid Build Coastguard Worker goto syntax 131*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-h" ( 132*6236dae4SAndroid Build Coastguard Worker goto syntax 133*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-help" ( 134*6236dae4SAndroid Build Coastguard Worker goto syntax 135*6236dae4SAndroid Build Coastguard Worker ) else ( 136*6236dae4SAndroid Build Coastguard Worker if not defined START_DIR ( 137*6236dae4SAndroid Build Coastguard Worker set START_DIR=%~1 138*6236dae4SAndroid Build Coastguard Worker ) else ( 139*6236dae4SAndroid Build Coastguard Worker goto unknown 140*6236dae4SAndroid Build Coastguard Worker ) 141*6236dae4SAndroid Build Coastguard Worker ) 142*6236dae4SAndroid Build Coastguard Worker 143*6236dae4SAndroid Build Coastguard Worker shift & goto parseArgs 144*6236dae4SAndroid Build Coastguard Worker 145*6236dae4SAndroid Build Coastguard Worker:prerequisites 146*6236dae4SAndroid Build Coastguard Worker rem Compiler is a required parameter 147*6236dae4SAndroid Build Coastguard Worker if not defined VC_VER goto syntax 148*6236dae4SAndroid Build Coastguard Worker 149*6236dae4SAndroid Build Coastguard Worker rem Default the start directory if one isn't specified 150*6236dae4SAndroid Build Coastguard Worker if not defined START_DIR set "START_DIR=%DEFAULT_START_DIR%" 151*6236dae4SAndroid Build Coastguard Worker 152*6236dae4SAndroid Build Coastguard Worker rem Check we have a program files directory 153*6236dae4SAndroid Build Coastguard Worker if not defined PF goto nopf 154*6236dae4SAndroid Build Coastguard Worker 155*6236dae4SAndroid Build Coastguard Worker rem Check we have Visual Studio installed 156*6236dae4SAndroid Build Coastguard Worker if not exist "%PF%\%VC_PATH%" goto novc 157*6236dae4SAndroid Build Coastguard Worker 158*6236dae4SAndroid Build Coastguard Worker rem Check the start directory exists 159*6236dae4SAndroid Build Coastguard Worker if not exist "%START_DIR%" goto nowolfssl 160*6236dae4SAndroid Build Coastguard Worker 161*6236dae4SAndroid Build Coastguard Worker:configure 162*6236dae4SAndroid Build Coastguard Worker if "%BUILD_PLATFORM%" == "" set BUILD_PLATFORM=%OS_PLATFORM% 163*6236dae4SAndroid Build Coastguard Worker 164*6236dae4SAndroid Build Coastguard Worker if "%BUILD_PLATFORM%" == "x86" ( 165*6236dae4SAndroid Build Coastguard Worker set VCVARS_PLATFORM=x86 166*6236dae4SAndroid Build Coastguard Worker ) else if "%BUILD_PLATFORM%" == "x64" ( 167*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM% 168*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64 169*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64 170*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64 171*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "14.1" set VCVARS_PLATFORM=amd64 172*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "14.2" set VCVARS_PLATFORM=amd64 173*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "14.3" set VCVARS_PLATFORM=amd64 174*6236dae4SAndroid Build Coastguard Worker ) 175*6236dae4SAndroid Build Coastguard Worker 176*6236dae4SAndroid Build Coastguard Worker:start 177*6236dae4SAndroid Build Coastguard Worker echo. 178*6236dae4SAndroid Build Coastguard Worker set SAVED_PATH=%CD% 179*6236dae4SAndroid Build Coastguard Worker 180*6236dae4SAndroid Build Coastguard Worker if "%VC_VER%" == "14.1" ( 181*6236dae4SAndroid Build Coastguard Worker call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM% 182*6236dae4SAndroid Build Coastguard Worker ) else if "%VC_VER%" == "14.2" ( 183*6236dae4SAndroid Build Coastguard Worker call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM% 184*6236dae4SAndroid Build Coastguard Worker ) else if "%VC_VER%" == "14.3" ( 185*6236dae4SAndroid Build Coastguard Worker call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM% 186*6236dae4SAndroid Build Coastguard Worker ) else ( 187*6236dae4SAndroid Build Coastguard Worker call "%PF%\%VC_PATH%\vcvarsall" %VCVARS_PLATFORM% 188*6236dae4SAndroid Build Coastguard Worker ) 189*6236dae4SAndroid Build Coastguard Worker 190*6236dae4SAndroid Build Coastguard Worker echo. 191*6236dae4SAndroid Build Coastguard Worker cd /d %SAVED_PATH% 192*6236dae4SAndroid Build Coastguard Worker if defined START_DIR cd /d %START_DIR% 193*6236dae4SAndroid Build Coastguard Worker goto %BUILD_PLATFORM% 194*6236dae4SAndroid Build Coastguard Worker 195*6236dae4SAndroid Build Coastguard Worker:x64 196*6236dae4SAndroid Build Coastguard Worker rem Calculate our output directory 197*6236dae4SAndroid Build Coastguard Worker set OUTDIR=build\Win64\%VC_DESC% 198*6236dae4SAndroid Build Coastguard Worker if not exist %OUTDIR% md %OUTDIR% 199*6236dae4SAndroid Build Coastguard Worker 200*6236dae4SAndroid Build Coastguard Worker if "%BUILD_CONFIG%" == "release" goto x64release 201*6236dae4SAndroid Build Coastguard Worker 202*6236dae4SAndroid Build Coastguard Worker:x64debug 203*6236dae4SAndroid Build Coastguard Worker rem Perform 64-bit Debug Build 204*6236dae4SAndroid Build Coastguard Worker 205*6236dae4SAndroid Build Coastguard Worker call :build Debug x64 206*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 207*6236dae4SAndroid Build Coastguard Worker 208*6236dae4SAndroid Build Coastguard Worker call :build "DLL Debug" x64 209*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 210*6236dae4SAndroid Build Coastguard Worker 211*6236dae4SAndroid Build Coastguard Worker if "%BUILD_CONFIG%" == "debug" goto success 212*6236dae4SAndroid Build Coastguard Worker 213*6236dae4SAndroid Build Coastguard Worker:x64release 214*6236dae4SAndroid Build Coastguard Worker rem Perform 64-bit Release Build 215*6236dae4SAndroid Build Coastguard Worker 216*6236dae4SAndroid Build Coastguard Worker call :build Release x64 217*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 218*6236dae4SAndroid Build Coastguard Worker 219*6236dae4SAndroid Build Coastguard Worker call :build "DLL Release" x64 220*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 221*6236dae4SAndroid Build Coastguard Worker 222*6236dae4SAndroid Build Coastguard Worker goto success 223*6236dae4SAndroid Build Coastguard Worker 224*6236dae4SAndroid Build Coastguard Worker:x86 225*6236dae4SAndroid Build Coastguard Worker rem Calculate our output directory 226*6236dae4SAndroid Build Coastguard Worker set OUTDIR=build\Win32\%VC_DESC% 227*6236dae4SAndroid Build Coastguard Worker if not exist %OUTDIR% md %OUTDIR% 228*6236dae4SAndroid Build Coastguard Worker 229*6236dae4SAndroid Build Coastguard Worker if "%BUILD_CONFIG%" == "release" goto x86release 230*6236dae4SAndroid Build Coastguard Worker 231*6236dae4SAndroid Build Coastguard Worker:x86debug 232*6236dae4SAndroid Build Coastguard Worker rem Perform 32-bit Debug Build 233*6236dae4SAndroid Build Coastguard Worker 234*6236dae4SAndroid Build Coastguard Worker call :build Debug Win32 235*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 236*6236dae4SAndroid Build Coastguard Worker 237*6236dae4SAndroid Build Coastguard Worker call :build "DLL Debug" Win32 238*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 239*6236dae4SAndroid Build Coastguard Worker 240*6236dae4SAndroid Build Coastguard Worker if "%BUILD_CONFIG%" == "debug" goto success 241*6236dae4SAndroid Build Coastguard Worker 242*6236dae4SAndroid Build Coastguard Worker:x86release 243*6236dae4SAndroid Build Coastguard Worker rem Perform 32-bit Release Build 244*6236dae4SAndroid Build Coastguard Worker 245*6236dae4SAndroid Build Coastguard Worker call :build Release Win32 246*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 247*6236dae4SAndroid Build Coastguard Worker 248*6236dae4SAndroid Build Coastguard Worker call :build "DLL Release" Win32 249*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto error 250*6236dae4SAndroid Build Coastguard Worker 251*6236dae4SAndroid Build Coastguard Worker goto success 252*6236dae4SAndroid Build Coastguard Worker 253*6236dae4SAndroid Build Coastguard Worker:build 254*6236dae4SAndroid Build Coastguard Worker rem This function builds wolfSSL. 255*6236dae4SAndroid Build Coastguard Worker rem Usage: CALL :build <configuration> <platform> 256*6236dae4SAndroid Build Coastguard Worker rem The current directory must be the wolfSSL directory. 257*6236dae4SAndroid Build Coastguard Worker rem VS Configuration: Debug, Release, DLL Debug or DLL Release. 258*6236dae4SAndroid Build Coastguard Worker rem VS Platform: Win32 or x64. 259*6236dae4SAndroid Build Coastguard Worker rem Returns: 1 on fail, 0 on success. 260*6236dae4SAndroid Build Coastguard Worker rem An informational message should be shown before any return. 261*6236dae4SAndroid Build Coastguard Worker setlocal 262*6236dae4SAndroid Build Coastguard Worker set MSBUILD_CONFIG=%~1 263*6236dae4SAndroid Build Coastguard Worker set MSBUILD_PLATFORM=%~2 264*6236dae4SAndroid Build Coastguard Worker 265*6236dae4SAndroid Build Coastguard Worker if not exist wolfssl64.sln ( 266*6236dae4SAndroid Build Coastguard Worker echo. 267*6236dae4SAndroid Build Coastguard Worker echo Error: build: wolfssl64.sln not found in "%CD%" 268*6236dae4SAndroid Build Coastguard Worker exit /b 1 269*6236dae4SAndroid Build Coastguard Worker ) 270*6236dae4SAndroid Build Coastguard Worker 271*6236dae4SAndroid Build Coastguard Worker rem OUTDIR isn't a full path, only relative. MSBUILD_OUTDIR must be full and 272*6236dae4SAndroid Build Coastguard Worker rem not have trailing backslashes, which are handled later. 273*6236dae4SAndroid Build Coastguard Worker if "%MSBUILD_CONFIG%" == "Debug" ( 274*6236dae4SAndroid Build Coastguard Worker set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Debug" 275*6236dae4SAndroid Build Coastguard Worker ) else if "%MSBUILD_CONFIG%" == "Release" ( 276*6236dae4SAndroid Build Coastguard Worker set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Release" 277*6236dae4SAndroid Build Coastguard Worker ) else if "%MSBUILD_CONFIG%" == "DLL Debug" ( 278*6236dae4SAndroid Build Coastguard Worker set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Debug" 279*6236dae4SAndroid Build Coastguard Worker ) else if "%MSBUILD_CONFIG%" == "DLL Release" ( 280*6236dae4SAndroid Build Coastguard Worker set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Release" 281*6236dae4SAndroid Build Coastguard Worker ) else ( 282*6236dae4SAndroid Build Coastguard Worker echo. 283*6236dae4SAndroid Build Coastguard Worker echo Error: build: Configuration not recognized. 284*6236dae4SAndroid Build Coastguard Worker exit /b 1 285*6236dae4SAndroid Build Coastguard Worker ) 286*6236dae4SAndroid Build Coastguard Worker 287*6236dae4SAndroid Build Coastguard Worker if not "%MSBUILD_PLATFORM%" == "Win32" if not "%MSBUILD_PLATFORM%" == "x64" ( 288*6236dae4SAndroid Build Coastguard Worker echo. 289*6236dae4SAndroid Build Coastguard Worker echo Error: build: Platform not recognized. 290*6236dae4SAndroid Build Coastguard Worker exit /b 1 291*6236dae4SAndroid Build Coastguard Worker ) 292*6236dae4SAndroid Build Coastguard Worker 293*6236dae4SAndroid Build Coastguard Worker copy /v /y "%~dp0\wolfssl_options.h" .\cyassl\options.h 294*6236dae4SAndroid Build Coastguard Worker if %ERRORLEVEL% neq 0 ( 295*6236dae4SAndroid Build Coastguard Worker echo. 296*6236dae4SAndroid Build Coastguard Worker echo Error: build: Couldn't replace .\cyassl\options.h 297*6236dae4SAndroid Build Coastguard Worker exit /b 1 298*6236dae4SAndroid Build Coastguard Worker ) 299*6236dae4SAndroid Build Coastguard Worker 300*6236dae4SAndroid Build Coastguard Worker copy /v /y "%~dp0\wolfssl_options.h" .\wolfssl\options.h 301*6236dae4SAndroid Build Coastguard Worker if %ERRORLEVEL% neq 0 ( 302*6236dae4SAndroid Build Coastguard Worker echo. 303*6236dae4SAndroid Build Coastguard Worker echo Error: build: Couldn't replace .\wolfssl\options.h 304*6236dae4SAndroid Build Coastguard Worker exit /b 1 305*6236dae4SAndroid Build Coastguard Worker ) 306*6236dae4SAndroid Build Coastguard Worker 307*6236dae4SAndroid Build Coastguard Worker rem Extra trailing \ in Dirs because otherwise it thinks a quote is escaped 308*6236dae4SAndroid Build Coastguard Worker msbuild wolfssl64.sln ^ 309*6236dae4SAndroid Build Coastguard Worker -p:CustomAfterMicrosoftCommonTargets="%~dp0\wolfssl_override.props" ^ 310*6236dae4SAndroid Build Coastguard Worker -p:Configuration="%MSBUILD_CONFIG%" ^ 311*6236dae4SAndroid Build Coastguard Worker -p:Platform="%MSBUILD_PLATFORM%" ^ 312*6236dae4SAndroid Build Coastguard Worker -p:PlatformToolset="%VC_TOOLSET%" ^ 313*6236dae4SAndroid Build Coastguard Worker -p:OutDir="%MSBUILD_OUTDIR%\\" ^ 314*6236dae4SAndroid Build Coastguard Worker -p:IntDir="%MSBUILD_OUTDIR%\obj\\" 315*6236dae4SAndroid Build Coastguard Worker 316*6236dae4SAndroid Build Coastguard Worker if %ERRORLEVEL% neq 0 ( 317*6236dae4SAndroid Build Coastguard Worker echo. 318*6236dae4SAndroid Build Coastguard Worker echo Error: Failed building wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%. 319*6236dae4SAndroid Build Coastguard Worker exit /b 1 320*6236dae4SAndroid Build Coastguard Worker ) 321*6236dae4SAndroid Build Coastguard Worker 322*6236dae4SAndroid Build Coastguard Worker rem For tests to run properly the wolfSSL directory must remain the current. 323*6236dae4SAndroid Build Coastguard Worker set "PATH=%MSBUILD_OUTDIR%;%PATH%" 324*6236dae4SAndroid Build Coastguard Worker "%MSBUILD_OUTDIR%\testsuite.exe" 325*6236dae4SAndroid Build Coastguard Worker 326*6236dae4SAndroid Build Coastguard Worker if %ERRORLEVEL% neq 0 ( 327*6236dae4SAndroid Build Coastguard Worker echo. 328*6236dae4SAndroid Build Coastguard Worker echo Error: Failed testing wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%. 329*6236dae4SAndroid Build Coastguard Worker exit /b 1 330*6236dae4SAndroid Build Coastguard Worker ) 331*6236dae4SAndroid Build Coastguard Worker 332*6236dae4SAndroid Build Coastguard Worker echo. 333*6236dae4SAndroid Build Coastguard Worker echo Success: Built and tested wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%. 334*6236dae4SAndroid Build Coastguard Worker echo. 335*6236dae4SAndroid Build Coastguard Worker echo. 336*6236dae4SAndroid Build Coastguard Worker rem This is necessary to export our local variables back to the caller. 337*6236dae4SAndroid Build Coastguard Worker endlocal & set SUCCESSFUL_BUILDS="%MSBUILD_CONFIG%|%MSBUILD_PLATFORM%" ^ 338*6236dae4SAndroid Build Coastguard Worker %SUCCESSFUL_BUILDS% 339*6236dae4SAndroid Build Coastguard Worker exit /b 0 340*6236dae4SAndroid Build Coastguard Worker 341*6236dae4SAndroid Build Coastguard Worker:syntax 342*6236dae4SAndroid Build Coastguard Worker rem Display the help 343*6236dae4SAndroid Build Coastguard Worker echo. 344*6236dae4SAndroid Build Coastguard Worker echo Usage: build-wolfssl ^<compiler^> [platform] [configuration] [directory] 345*6236dae4SAndroid Build Coastguard Worker echo. 346*6236dae4SAndroid Build Coastguard Worker echo. 347*6236dae4SAndroid Build Coastguard Worker echo Compiler: 348*6236dae4SAndroid Build Coastguard Worker echo. 349*6236dae4SAndroid Build Coastguard Worker echo vc10 - Use Visual Studio 2010 350*6236dae4SAndroid Build Coastguard Worker echo vc11 - Use Visual Studio 2012 351*6236dae4SAndroid Build Coastguard Worker echo vc12 - Use Visual Studio 2013 352*6236dae4SAndroid Build Coastguard Worker echo vc14 - Use Visual Studio 2015 353*6236dae4SAndroid Build Coastguard Worker echo vc14.1 - Use Visual Studio 2017 354*6236dae4SAndroid Build Coastguard Worker echo vc14.2 - Use Visual Studio 2019 355*6236dae4SAndroid Build Coastguard Worker echo vc14.3 - Use Visual Studio 2022 356*6236dae4SAndroid Build Coastguard Worker echo. 357*6236dae4SAndroid Build Coastguard Worker echo. 358*6236dae4SAndroid Build Coastguard Worker echo Platform: 359*6236dae4SAndroid Build Coastguard Worker echo. 360*6236dae4SAndroid Build Coastguard Worker echo x86 - Perform a 32-bit build 361*6236dae4SAndroid Build Coastguard Worker echo x64 - Perform a 64-bit build 362*6236dae4SAndroid Build Coastguard Worker echo. 363*6236dae4SAndroid Build Coastguard Worker echo If this parameter is unset the OS platform is used ^(%OS_PLATFORM%^). 364*6236dae4SAndroid Build Coastguard Worker echo. 365*6236dae4SAndroid Build Coastguard Worker echo. 366*6236dae4SAndroid Build Coastguard Worker echo Configuration: 367*6236dae4SAndroid Build Coastguard Worker echo. 368*6236dae4SAndroid Build Coastguard Worker echo debug - Perform a debug build 369*6236dae4SAndroid Build Coastguard Worker echo release - Perform a release build 370*6236dae4SAndroid Build Coastguard Worker echo. 371*6236dae4SAndroid Build Coastguard Worker echo If this parameter is unset both configurations are built. 372*6236dae4SAndroid Build Coastguard Worker echo. 373*6236dae4SAndroid Build Coastguard Worker echo. 374*6236dae4SAndroid Build Coastguard Worker echo Other: 375*6236dae4SAndroid Build Coastguard Worker echo. 376*6236dae4SAndroid Build Coastguard Worker echo directory - Specifies the wolfSSL source directory 377*6236dae4SAndroid Build Coastguard Worker echo. 378*6236dae4SAndroid Build Coastguard Worker echo If this parameter is unset the directory used is "%DEFAULT_START_DIR%". 379*6236dae4SAndroid Build Coastguard Worker echo. 380*6236dae4SAndroid Build Coastguard Worker goto error 381*6236dae4SAndroid Build Coastguard Worker 382*6236dae4SAndroid Build Coastguard Worker:unknown 383*6236dae4SAndroid Build Coastguard Worker echo. 384*6236dae4SAndroid Build Coastguard Worker echo Error: Unknown argument '%1' 385*6236dae4SAndroid Build Coastguard Worker goto error 386*6236dae4SAndroid Build Coastguard Worker 387*6236dae4SAndroid Build Coastguard Worker:nodos 388*6236dae4SAndroid Build Coastguard Worker echo. 389*6236dae4SAndroid Build Coastguard Worker echo Error: Only a Windows NT based Operating System is supported 390*6236dae4SAndroid Build Coastguard Worker goto error 391*6236dae4SAndroid Build Coastguard Worker 392*6236dae4SAndroid Build Coastguard Worker:nopf 393*6236dae4SAndroid Build Coastguard Worker echo. 394*6236dae4SAndroid Build Coastguard Worker echo Error: Cannot obtain the directory for Program Files 395*6236dae4SAndroid Build Coastguard Worker goto error 396*6236dae4SAndroid Build Coastguard Worker 397*6236dae4SAndroid Build Coastguard Worker:novc 398*6236dae4SAndroid Build Coastguard Worker echo. 399*6236dae4SAndroid Build Coastguard Worker echo Error: %VC_DESC% is not installed 400*6236dae4SAndroid Build Coastguard Worker goto error 401*6236dae4SAndroid Build Coastguard Worker 402*6236dae4SAndroid Build Coastguard Worker:nox64 403*6236dae4SAndroid Build Coastguard Worker echo. 404*6236dae4SAndroid Build Coastguard Worker echo Error: %VC_DESC% does not support 64-bit builds 405*6236dae4SAndroid Build Coastguard Worker goto error 406*6236dae4SAndroid Build Coastguard Worker 407*6236dae4SAndroid Build Coastguard Worker:nowolfssl 408*6236dae4SAndroid Build Coastguard Worker echo. 409*6236dae4SAndroid Build Coastguard Worker echo Error: Cannot locate wolfSSL source directory, expected "%START_DIR%" 410*6236dae4SAndroid Build Coastguard Worker goto error 411*6236dae4SAndroid Build Coastguard Worker 412*6236dae4SAndroid Build Coastguard Worker:error 413*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 414*6236dae4SAndroid Build Coastguard Worker exit /B 1 415*6236dae4SAndroid Build Coastguard Worker 416*6236dae4SAndroid Build Coastguard Worker:success 417*6236dae4SAndroid Build Coastguard Worker if defined SUCCESSFUL_BUILDS ( 418*6236dae4SAndroid Build Coastguard Worker echo. 419*6236dae4SAndroid Build Coastguard Worker echo. 420*6236dae4SAndroid Build Coastguard Worker echo Build complete. 421*6236dae4SAndroid Build Coastguard Worker echo. 422*6236dae4SAndroid Build Coastguard Worker echo The following configurations were built and tested successfully: 423*6236dae4SAndroid Build Coastguard Worker echo. 424*6236dae4SAndroid Build Coastguard Worker echo %SUCCESSFUL_BUILDS% 425*6236dae4SAndroid Build Coastguard Worker echo. 426*6236dae4SAndroid Build Coastguard Worker ) 427*6236dae4SAndroid Build Coastguard Worker cd /d %SAVED_PATH% 428*6236dae4SAndroid Build Coastguard Worker endlocal 429*6236dae4SAndroid Build Coastguard Worker exit /B 0 430