Annotation of embedaddon/curl/projects/README, revision 1.1

1.1     ! misho       1: Building via IDE Project Files
        !             2: ==============================
        !             3: 
        !             4:    This document describes how to compile, build and install curl and libcurl
        !             5:    from sources using an IDE based development tool such as Visual Studio.
        !             6: 
        !             7:    Project files are currently available for Visual C++ v6.0 to v15.0. The
        !             8:    following directory structure has been used to cater for this:
        !             9: 
        !            10:    somedirectory\
        !            11:     |_curl
        !            12:       |_projects
        !            13:         |_<platform>
        !            14:           |_<ide>
        !            15:             |_lib
        !            16:             |_src
        !            17: 
        !            18:    This structure allows for side-by-side compilation of curl on the same
        !            19:    machine using different versions of a given compiler (for example VC8, VC9
        !            20:    and VC10) and allows for your own application or product to be compiled
        !            21:    against those variants of libcurl for example.
        !            22: 
        !            23:    Note: Typically this side-by-side compilation is generally only required
        !            24:    when a library is being compiled against dynamic runtime libraries.
        !            25: 
        !            26: Dependencies
        !            27: ============
        !            28: 
        !            29:    The projects files also support build configurations that require third
        !            30:    party dependencies such as OpenSSL, wolfSSL and SSH2. If you wish to support
        !            31:    these, you will also need to download and compile those libraries as well.
        !            32: 
        !            33:    To support compilation of these libraries using different versions of
        !            34:    compilers, the following directory structure has been used for both the
        !            35:    output of curl and libcurl as well as these dependencies.
        !            36: 
        !            37:    somedirectory\
        !            38:     |_curl
        !            39:     | |_ build
        !            40:     |    |_<architecture>
        !            41:     |      |_<ide>
        !            42:     |        |_<configuration>
        !            43:     |          |_lib
        !            44:     |          |_src
        !            45:     |
        !            46:     |_openssl
        !            47:     | |_ build
        !            48:     |    |_<architecture>
        !            49:     |      |_VC <version>
        !            50:     |        |_<configuration>
        !            51:     |
        !            52:     |_libssh2
        !            53:       |_ build
        !            54:          |_<architecture>
        !            55:            |_VC <version>
        !            56:              |_<configuration>
        !            57: 
        !            58:    As OpenSSL and wolfSSL don't support side-by-side compilation when using
        !            59:    different versions of Visual Studio, build helper batch files have been
        !            60:    provided to assist with this. Please run "build-openssl -help" and/or
        !            61:    "build-wolfssl -help" for usage details.
        !            62: 
        !            63: Building with Visual C++
        !            64: ========================
        !            65: 
        !            66:    To build with VC++, you will of course have to first install VC++ which is
        !            67:    part of Visual Studio.
        !            68: 
        !            69:    If you are building with VC6 then you will also need the February 2003
        !            70:    Edition of the Windows Platform SDK which can be downloaded from:
        !            71: 
        !            72:     https://www.microsoft.com/en-us/download/details.aspx?id=12261
        !            73: 
        !            74:    If you require support for Internationalized Domain Names via Windows IDN
        !            75:    then you will need either:
        !            76: 
        !            77:     * Microsoft Windows SDK Update for Windows Vista:
        !            78:       https://www.microsoft.com/en-us/download/details.aspx?id=23719
        !            79: 
        !            80:     * Microsoft Visual Studio 2010 or above
        !            81: 
        !            82:    Once you have VC++ installed you should launch the application and open one
        !            83:    of the solution or workspace files.
        !            84: 
        !            85:    Whilst files are provided for both libcurl and the curl command line tool as
        !            86:    well as a configuration that includes both, it is recommend that you use the
        !            87:    all-in-one configuration.
        !            88: 
        !            89: Running DLL based configurations
        !            90: ================================
        !            91: 
        !            92:    If you are a developer and plan to run the curl tool from Visual Studio (eg
        !            93:    you are debugging) with any third-party libraries (such as OpenSSL, wolfSSL
        !            94:    or LibSSH2) then you will need to add the search path of these DLLs to the
        !            95:    configuration's PATH environment. To do that:
        !            96: 
        !            97:     * Open the 'curl-all.sln' or 'curl.sln' solutions
        !            98: 
        !            99:     * Right-click on the 'curl' project and select Properties
        !           100: 
        !           101:     * Navigate to 'Configuration Properties > Debugging > Environment'
        !           102: 
        !           103:     * Add PATH='Path to DLL';C:\Windows\system32;C:\Windows;
        !           104:                C:\Windows\System32\Wbem
        !           105: 
        !           106:    ... where 'Path to DLL` is the configuration specific path. For example the
        !           107:    following configurations in Visual Studio 2010 might be:
        !           108: 
        !           109:    DLL Debug - DLL OpenSSL (Win32):
        !           110:    PATH=..\..\..\..\..\openssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
        !           111:         C:\Windows;C:\Windows\System32\Wbem
        !           112: 
        !           113:    DLL Debug - DLL OpenSSL (x64):
        !           114:    PATH=..\..\..\..\..\openssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
        !           115:         C:\Windows;C:\Windows\System32\Wbem
        !           116: 
        !           117:    DLL Debug - DLL wolfSSL (Win32):
        !           118:    PATH=..\..\..\..\..\wolfssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
        !           119:         C:\Windows;C:\Windows\System32\Wbem
        !           120: 
        !           121:    DLL Debug - DLL wolfSSL (x64):
        !           122:    PATH=..\..\..\..\..\wolfssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
        !           123:         C:\Windows;C:\Windows\System32\Wbem
        !           124: 
        !           125:    If you are using a configuration that uses multiple third-party library DLLs
        !           126:    (such as DLL Debug - DLL OpenSSL - DLL LibSSH2) then 'Path to DLL' will need
        !           127:    to contain the path to both of these.
        !           128: 
        !           129: Notes
        !           130: =====
        !           131: 
        !           132:    The following keywords have been used in the directory hierarchy:
        !           133: 
        !           134:    <platform>      - The platform (For example: Windows)
        !           135:    <ide>           - The IDE (For example: VC6, VC10, BCC5)
        !           136:    <architecture>  - The platform architecture (For example: Win32, Win64)
        !           137:    <configuration> - The target configuration (For example: DLL Debug,
        !           138:                      LIB Release - LIB OpenSSL)
        !           139: 
        !           140:    If you are using the source code from the git repository, rather than a
        !           141:    release archive or nightly build, you will need to generate the project
        !           142:    files. Please run "generate -help" for usage details.
        !           143: 
        !           144:    Should you wish to help out with some of the items on the TODO list, or
        !           145:    find bugs in the project files that need correcting, and would like to
        !           146:    submit updated files back then please note that, whilst the solution files
        !           147:    can be edited directly, the templates for the project files (which are
        !           148:    stored in the git repositoty) will need to be modified rather than the
        !           149:    generated project files that Visual Studio uses.
        !           150: 
        !           151: Legacy Windows and SSL
        !           152: ======================
        !           153: 
        !           154:    Some of the project configurations allow the use of Schannel, the native
        !           155:    SSL library in Windows which forms part of Windows SSPI. However, Schannel
        !           156:    in Windows <= XP is unable to connect to servers that no longer support the
        !           157:    legacy handshakes and algorithms used by those versions. If you will be
        !           158:    using curl in one of those earlier versions of Windows you should choose
        !           159:    another SSL backend such as OpenSSL.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>