Files correlati : Commento : Aggiornata cUrl alla ultima versione su Github: 7.56.1 git-svn-id: svn://10.65.10.50/branches/R_10_00@24203 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			354 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			354 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| @echo off
 | |
| rem ***************************************************************************
 | |
| rem *                                  _   _ ____  _
 | |
| rem *  Project                     ___| | | |  _ \| |
 | |
| rem *                             / __| | | | |_) | |
 | |
| rem *                            | (__| |_| |  _ <| |___
 | |
| rem *                             \___|\___/|_| \_\_____|
 | |
| rem *
 | |
| rem * Copyright (C) 2012 - 2015, Steve Holme, <steve_holme@hotmail.com>.
 | |
| rem * Copyright (C) 2015, Jay Satiro, <raysatiro@yahoo.com>.
 | |
| rem *
 | |
| rem * This software is licensed as described in the file COPYING, which
 | |
| rem * you should have received as part of this distribution. The terms
 | |
| rem * are also available at https://curl.haxx.se/docs/copyright.html.
 | |
| rem *
 | |
| rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | |
| rem * copies of the Software, and permit persons to whom the Software is
 | |
| rem * furnished to do so, under the terms of the COPYING file.
 | |
| rem *
 | |
| rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
| rem * KIND, either express or implied.
 | |
| rem *
 | |
| rem ***************************************************************************
 | |
| 
 | |
| :begin
 | |
|   rem Check we are running on a Windows NT derived OS
 | |
|   if not "%OS%" == "Windows_NT" goto nodos
 | |
| 
 | |
|   rem Set our variables
 | |
|   setlocal
 | |
|   set SUCCESSFUL_BUILDS=
 | |
|   set VC_VER=
 | |
|   set BUILD_PLATFORM=
 | |
| 
 | |
|   rem Ensure we have the required arguments
 | |
|   if /i "%~1" == "" goto syntax
 | |
| 
 | |
| :parseArgs
 | |
|   if "%~1" == "" goto prerequisites
 | |
| 
 | |
|   if /i "%~1" == "vc10" (
 | |
|     set VC_VER=10.0
 | |
|     set VC_DESC=VC10
 | |
|     set VC_TOOLSET=v100
 | |
|     set "VC_PATH=Microsoft Visual Studio 10.0\VC"
 | |
|   ) else if /i "%~1" == "vc11" (
 | |
|     set VC_VER=11.0
 | |
|     set VC_DESC=VC11
 | |
|     set VC_TOOLSET=v110
 | |
|     set "VC_PATH=Microsoft Visual Studio 11.0\VC"
 | |
|   ) else if /i "%~1" == "vc12" (
 | |
|     set VC_VER=12.0
 | |
|     set VC_DESC=VC12
 | |
|     set VC_TOOLSET=v120
 | |
|     set "VC_PATH=Microsoft Visual Studio 12.0\VC"
 | |
|   ) else if /i "%~1" == "vc14" (
 | |
|     set VC_VER=14.0
 | |
|     set VC_DESC=VC14
 | |
|     set VC_TOOLSET=v140
 | |
|     set "VC_PATH=Microsoft Visual Studio 14.0\VC"
 | |
|   ) else if /i "%~1" == "x86" (
 | |
|     set BUILD_PLATFORM=x86
 | |
|   ) else if /i "%~1" == "x64" (
 | |
|     set BUILD_PLATFORM=x64
 | |
|   ) else if /i "%~1" == "debug" (
 | |
|     set BUILD_CONFIG=debug
 | |
|   ) else if /i "%~1" == "release" (
 | |
|     set BUILD_CONFIG=release
 | |
|   ) else if /i "%~1" == "-?" (
 | |
|     goto syntax
 | |
|   ) else if /i "%~1" == "-h" (
 | |
|     goto syntax
 | |
|   ) else if /i "%~1" == "-help" (
 | |
|     goto syntax
 | |
|   ) else (
 | |
|     if not defined START_DIR (
 | |
|       set START_DIR=%~1
 | |
|     ) else (
 | |
|       goto unknown
 | |
|     )
 | |
|   )
 | |
| 
 | |
|   shift & goto parseArgs
 | |
| 
 | |
| :prerequisites
 | |
|   rem Compiler and platform are required parameters.
 | |
|   if not defined VC_VER goto syntax
 | |
|   if not defined BUILD_PLATFORM goto syntax
 | |
| 
 | |
|   rem Default the start directory if one isn't specified
 | |
|   if not defined START_DIR set START_DIR=..\..\wolfssl
 | |
| 
 | |
|   rem Calculate the program files directory
 | |
|   if defined PROGRAMFILES (
 | |
|     set "PF=%PROGRAMFILES%"
 | |
|     set OS_PLATFORM=x86
 | |
|   )
 | |
|   if defined PROGRAMFILES(x86) (
 | |
|     set "PF=%PROGRAMFILES(x86)%"
 | |
|     set OS_PLATFORM=x64
 | |
|   )
 | |
| 
 | |
|   rem Check we have a program files directory
 | |
|   if not defined PF goto nopf
 | |
| 
 | |
|   rem Check we have Visual Studio installed
 | |
|   if not exist "%PF%\%VC_PATH%" goto novc
 | |
| 
 | |
|   rem Check the start directory exists
 | |
|   if not exist "%START_DIR%" goto nowolfssl
 | |
| 
 | |
| :configure
 | |
|   if "%BUILD_PLATFORM%" == "" set BUILD_PLATFORM=%OS_PLATFORM%
 | |
| 
 | |
|   if "%BUILD_PLATFORM%" == "x86" (
 | |
|     set VCVARS_PLATFORM=x86
 | |
|   ) else if "%BUILD_PLATFORM%" == "x64" (
 | |
|     if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
 | |
|     if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64
 | |
|     if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64
 | |
|     if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64
 | |
|   )
 | |
| 
 | |
| :start
 | |
|   echo.
 | |
|   call "%PF%\%VC_PATH%\vcvarsall" %VCVARS_PLATFORM%
 | |
| 
 | |
|   echo.
 | |
|   set SAVED_PATH=%CD%
 | |
|   cd %START_DIR%
 | |
|   goto %BUILD_PLATFORM%
 | |
| 
 | |
| :x64
 | |
|   rem Calculate our output directory
 | |
|   set OUTDIR=build\Win64\%VC_DESC%
 | |
|   if not exist %OUTDIR% md %OUTDIR%
 | |
| 
 | |
|   if "%BUILD_CONFIG%" == "release" goto x64release
 | |
| 
 | |
| :x64debug
 | |
|   rem Perform 64-bit Debug Build
 | |
| 
 | |
|   call :build Debug x64
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   call :build "DLL Debug" x64
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   if "%BUILD_CONFIG%" == "debug" goto success
 | |
| 
 | |
| :x64release
 | |
|   rem Perform 64-bit Release Build
 | |
| 
 | |
|   call :build Release x64
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   call :build "DLL Release" x64
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   goto success
 | |
| 
 | |
| :x86
 | |
|   rem Calculate our output directory
 | |
|   set OUTDIR=build\Win32\%VC_DESC%
 | |
|   if not exist %OUTDIR% md %OUTDIR%
 | |
| 
 | |
|   if "%BUILD_CONFIG%" == "release" goto x86release
 | |
| 
 | |
| :x86debug
 | |
|   rem Perform 32-bit Debug Build
 | |
| 
 | |
|   call :build Debug Win32
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   call :build "DLL Debug" Win32
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   if "%BUILD_CONFIG%" == "debug" goto success
 | |
| 
 | |
| :x86release
 | |
|   rem Perform 32-bit Release Build
 | |
| 
 | |
|   call :build Release Win32
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   call :build "DLL Release" Win32
 | |
|   if errorlevel 1 goto error
 | |
| 
 | |
|   goto success
 | |
| 
 | |
| :build
 | |
|   rem This function builds wolfSSL.
 | |
|   rem Usage: CALL :build <configuration> <platform>
 | |
|   rem The current directory must be the wolfSSL directory.
 | |
|   rem VS Configuration: Debug, Release, DLL Debug or DLL Release.
 | |
|   rem VS Platform: Win32 or x64.
 | |
|   rem Returns: 1 on fail, 0 on success.
 | |
|   rem An informational message should be shown before any return.
 | |
|   setlocal
 | |
|   set MSBUILD_CONFIG=%~1
 | |
|   set MSBUILD_PLATFORM=%~2
 | |
| 
 | |
|   if not exist wolfssl64.sln (
 | |
|     echo.
 | |
|     echo Error: build: wolfssl64.sln not found in "%CD%"
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   rem OUTDIR isn't a full path, only relative. MSBUILD_OUTDIR must be full and
 | |
|   rem not have trailing backslashes, which are handled later.
 | |
|   if "%MSBUILD_CONFIG%" == "Debug" (
 | |
|     set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Debug"
 | |
|   ) else if "%MSBUILD_CONFIG%" == "Release" (
 | |
|     set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Release"
 | |
|   ) else if "%MSBUILD_CONFIG%" == "DLL Debug" (
 | |
|     set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Debug"
 | |
|   ) else if "%MSBUILD_CONFIG%" == "DLL Release" (
 | |
|     set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Release"
 | |
|   ) else (
 | |
|     echo.
 | |
|     echo Error: build: Configuration not recognized.
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   if not "%MSBUILD_PLATFORM%" == "Win32" if not "%MSBUILD_PLATFORM%" == "x64" (
 | |
|     echo.
 | |
|     echo Error: build: Platform not recognized.
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   copy /v /y "%~dp0\wolfssl_options.h" .\cyassl\options.h
 | |
|   if %ERRORLEVEL% neq 0 (
 | |
|     echo.
 | |
|     echo Error: build: Couldn't replace .\cyassl\options.h
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   copy /v /y "%~dp0\wolfssl_options.h" .\wolfssl\options.h
 | |
|   if %ERRORLEVEL% neq 0 (
 | |
|     echo.
 | |
|     echo Error: build: Couldn't replace .\wolfssl\options.h
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   rem Extra trailing \ in Dirs because otherwise it thinks a quote is escaped
 | |
|   msbuild wolfssl64.sln ^
 | |
|     -p:CustomAfterMicrosoftCommonTargets="%~dp0\wolfssl_override.props" ^
 | |
|     -p:Configuration="%MSBUILD_CONFIG%" ^
 | |
|     -p:Platform="%MSBUILD_PLATFORM%" ^
 | |
|     -p:PlatformToolset="%VC_TOOLSET%" ^
 | |
|     -p:OutDir="%MSBUILD_OUTDIR%\\" ^
 | |
|     -p:IntDir="%MSBUILD_OUTDIR%\obj\\"
 | |
| 
 | |
|   if %ERRORLEVEL% neq 0 (
 | |
|     echo.
 | |
|     echo Error: Failed building wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   rem For tests to run properly the wolfSSL directory must remain the current.
 | |
|   set "PATH=%MSBUILD_OUTDIR%;%PATH%"
 | |
|   "%MSBUILD_OUTDIR%\testsuite.exe"
 | |
| 
 | |
|   if %ERRORLEVEL% neq 0 (
 | |
|     echo.
 | |
|     echo Error: Failed testing wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
 | |
|     exit /b 1
 | |
|   )
 | |
| 
 | |
|   echo.
 | |
|   echo Success: Built and tested wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
 | |
|   echo.
 | |
|   echo.
 | |
|   rem This is necessary to export our local variables back to the caller.
 | |
|   endlocal & set SUCCESSFUL_BUILDS="%MSBUILD_CONFIG%|%MSBUILD_PLATFORM%" ^
 | |
|     %SUCCESSFUL_BUILDS%
 | |
|   exit /b 0
 | |
| 
 | |
| :syntax
 | |
|   rem Display the help
 | |
|   echo.
 | |
|   echo Usage: build-wolfssl ^<compiler^> ^<platform^> [configuration] [directory]
 | |
|   echo.
 | |
|   echo Compiler:
 | |
|   echo.
 | |
|   echo vc10      - Use Visual Studio 2010
 | |
|   echo vc11      - Use Visual Studio 2012
 | |
|   echo vc12      - Use Visual Studio 2013
 | |
|   echo vc14      - Use Visual Studio 2015
 | |
|   echo.
 | |
|   echo Platform:
 | |
|   echo.
 | |
|   echo x86       - Perform a 32-bit build
 | |
|   echo x64       - Perform a 64-bit build
 | |
|   echo.
 | |
|   echo Configuration:
 | |
|   echo.
 | |
|   echo debug     - Perform a debug build
 | |
|   echo release   - Perform a release build
 | |
|   echo.
 | |
|   echo Other:
 | |
|   echo.
 | |
|   echo directory - Specifies the wolfSSL source directory
 | |
|   goto error
 | |
| 
 | |
| :unknown
 | |
|   echo.
 | |
|   echo Error: Unknown argument '%1'
 | |
|   goto error
 | |
| 
 | |
| :nodos
 | |
|   echo.
 | |
|   echo Error: Only a Windows NT based Operating System is supported
 | |
|   goto error
 | |
| 
 | |
| :nopf
 | |
|   echo.
 | |
|   echo Error: Cannot obtain the directory for Program Files
 | |
|   goto error
 | |
| 
 | |
| :novc
 | |
|   echo.
 | |
|   echo Error: %VC_DESC% is not installed
 | |
|   goto error
 | |
| 
 | |
| :nox64
 | |
|   echo.
 | |
|   echo Error: %VC_DESC% does not support 64-bit builds
 | |
|   goto error
 | |
| 
 | |
| :nowolfssl
 | |
|   echo.
 | |
|   echo Error: Cannot locate wolfSSL source directory, expected "%START_DIR%"
 | |
|   goto error
 | |
| 
 | |
| :error
 | |
|   if "%OS%" == "Windows_NT" endlocal
 | |
|   exit /B 1
 | |
| 
 | |
| :success
 | |
|   if defined SUCCESSFUL_BUILDS (
 | |
|     echo.
 | |
|     echo.
 | |
|     echo Build complete.
 | |
|     echo.
 | |
|     echo The following configurations were built and tested successfully:
 | |
|     echo.
 | |
|     echo %SUCCESSFUL_BUILDS%
 | |
|     echo.
 | |
|   )
 | |
|   cd %SAVED_PATH%
 | |
|   endlocal
 | |
|   exit /B 0
 |