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>