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>