File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / projects / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:14 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>