Annotation of embedaddon/curl/winbuild/BUILD.WINDOWS.txt, revision 1.1
1.1 ! misho 1: Building with Visual C++, prerequisites
! 2: =======================================
! 3:
! 4: This document describes how to compile, build and install curl and libcurl
! 5: from sources using the Visual C++ build tool. To build with VC++, you will
! 6: of course have to first install VC++. The minimum required version of
! 7: VC is 6 (part of Visual Studio 6). However using a more recent version is
! 8: strongly recommended.
! 9:
! 10: VC++ is also part of the Windows Platform SDK. You do not have to install
! 11: the full Visual Studio or Visual C++ if all you want is to build curl.
! 12:
! 13: The latest Platform SDK can be downloaded freely from:
! 14:
! 15: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
! 16:
! 17: If you are building with VC6 then you will also need the February 2003
! 18: Edition of the Platform SDK which can be downloaded from:
! 19:
! 20: https://www.microsoft.com/en-us/download/details.aspx?id=12261
! 21:
! 22: If you wish to support zlib, openssl, c-ares, ssh2, you will have to download
! 23: them separately and copy them to the deps directory as shown below:
! 24:
! 25: somedirectory\
! 26: |_curl-src
! 27: | |_winbuild
! 28: |
! 29: |_deps
! 30: |_ lib
! 31: |_ include
! 32: |_ bin
! 33:
! 34: It is also possible to create the deps directory in some other random
! 35: places and tell the Makefile its location using the WITH_DEVEL option.
! 36:
! 37: Building straight from git
! 38: ==========================
! 39:
! 40: When you check out code git and build it, as opposed from a released source
! 41: code archive, you need to first run the "buildconf.bat" batch file (present
! 42: in the source code root directory) to set things up.
! 43:
! 44: Building with Visual C++
! 45: ========================
! 46:
! 47: Open a Visual Studio Command prompt:
! 48:
! 49: Using the 'Developer Command Prompt for VS <version>' menu entry:
! 50: where version is the Visual Studio version. The developer prompt at default
! 51: uses the x86 mode. It is required to call Vcvarsall.bat to setup the prompt
! 52: for the machine type you want, using Vcvarsall.bat.
! 53: This type of command prompt may not exist in all Visual Studio versions.
! 54:
! 55: For more information, check:
! 56: https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs
! 57: https://docs.microsoft.com/en-us/cpp/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line
! 58:
! 59: Using the 'VS <version> <platform> <type> Command Prompt' menu entry:
! 60: where version is the Visual Studio version, platform is e.g. x64
! 61: and type Native of Cross platform build. This type of command prompt
! 62: may not exist in all Visual Studio versions.
! 63:
! 64: See also:
! 65: https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx
! 66:
! 67: Once you are in the console, go to the winbuild directory in the Curl
! 68: sources:
! 69: cd curl-src\winbuild
! 70:
! 71: Then you can call nmake /f Makefile.vc with the desired options (see below).
! 72: The builds will be in the top src directory, builds\ directory, in
! 73: a directory named using the options given to the nmake call.
! 74:
! 75: nmake /f Makefile.vc mode=<static or dll> <options>
! 76:
! 77: where <options> is one or many of:
! 78: VC=<6,7,8,9,10,11,12,14,15> - VC versions
! 79: WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
! 80: Defaults to sibbling directory deps: ../deps
! 81: Libraries can be fetched at https://windows.php.net/downloads/php-sdk/deps/
! 82: Uncompress them into the deps folder.
! 83: WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
! 84: WITH_NGHTTP2=<dll or static> - Enable HTTP/2 support, DLL or static
! 85: WITH_MBEDTLS=<dll or static> - Enable mbedTLS support, DLL or static
! 86: WITH_CARES=<dll or static> - Enable c-ares support, DLL or static
! 87: WITH_ZLIB=<dll or static> - Enable zlib support, DLL or static
! 88: WITH_SSH2=<dll or static> - Enable libSSH2 support, DLL or static
! 89: WITH_PREFIX=<dir> - Where to install the build
! 90: ENABLE_SSPI=<yes or no> - Enable SSPI support, defaults to yes
! 91: ENABLE_IPV6=<yes or no> - Enable IPv6, defaults to yes
! 92: ENABLE_IDN=<yes or no> - Enable use of Windows IDN APIs, defaults to yes
! 93: Requires Windows Vista or later
! 94: ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, defaults to yes
! 95: GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
! 96: DEBUG=<yes or no> - Debug builds
! 97: MACHINE=<x86 or x64> - Target architecture (default is x86)
! 98: CARES_PATH=<path to cares> - Custom path for c-ares
! 99: MBEDTLS_PATH=<path to mbedTLS> - Custom path for mbedTLS
! 100: NGHTTP2_PATH=<path to HTTP/2> - Custom path for nghttp2
! 101: SSH2_PATH=<path to libSSH2> - Custom path for libSSH2
! 102: SSL_PATH=<path to OpenSSL> - Custom path for OpenSSL
! 103: ZLIB_PATH=<path to zlib> - Custom path for zlib
! 104:
! 105:
! 106: Static linking of Microsoft's C RunTime (CRT):
! 107: ==============================================
! 108: If you are using mode=static nmake will create and link to the static build of
! 109: libcurl but *not* the static CRT. If you must you can force nmake to link in
! 110: the static CRT by passing RTLIBCFG=static. Typically you shouldn't use that
! 111: option, and nmake will default to the DLL CRT. RTLIBCFG is rarely used and
! 112: therefore rarely tested. When passing RTLIBCFG for a configuration that was
! 113: already built but not with that option, or if the option was specified
! 114: differently, you must destroy the build directory containing the configuration
! 115: so that nmake can build it from scratch.
! 116:
! 117: Building your own application with a static libcurl
! 118: ===================================================
! 119: When building an application that uses the static libcurl library on Windows,
! 120: you must define CURL_STATICLIB. Otherwise the linker will look for dynamic
! 121: import symbols.
! 122:
! 123: Legacy Windows and SSL
! 124: ======================
! 125: When you build curl using the build files in this directory the default SSL
! 126: backend will be WinSSL (Windows SSPI, more specifically Schannel), the native
! 127: SSL library that comes with the Windows OS. WinSSL in Windows <= XP is not able
! 128: to connect to servers that no longer support the legacy handshakes and
! 129: algorithms used by those versions. If you will be using curl in one of those
! 130: earlier versions of Windows you should choose another SSL backend like OpenSSL.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>