smtp: use the upload buffer size for scratch buffer malloc
[platform/upstream/curl.git] / docs / INSTALL
index 6b0fd03..ff260b1 100644 (file)
@@ -6,842 +6,4 @@
 
                                 How To Compile
 
-Installing Binary Packages
-==========================
-
-   Lots of people download binary distributions of curl and libcurl. This
-   document does not describe how to install curl or libcurl using such a
-   binary package. This document describes how to compile, build and install
-   curl and libcurl from source code.
-
-UNIX
-====
-   A normal unix installation is made in three or four steps (after you've
-   unpacked the source archive):
-
-        ./configure
-        make
-        make test (optional)
-        make install
-
-   You probably need to be root when doing the last command.
-
-   If you have checked out the sources from the CVS repository, read the
-   CVS-INFO on how to proceed.
-
-   Get a full listing of all available configure options by invoking it like:
-
-        ./configure --help
-
-   If you want to install curl in a different file hierarchy than /usr/local,
-   you need to specify that already when running configure:
-
-        ./configure --prefix=/path/to/curl/tree
-
-   If you happen to have write permission in that directory, you can do 'make
-   install' without being root. An example of this would be to make a local
-   install in your own home directory:
-
-        ./configure --prefix=$HOME
-        make
-        make install
-
-   The configure script always tries to find a working SSL library unless
-   explicitly told not to. If you have OpenSSL installed in the default search
-   path for your compiler/linker, you don't need to do anything special. If
-   you have OpenSSL installed in /usr/local/ssl, you can run configure like:
-
-        ./configure --with-ssl
-
-   If you have OpenSSL installed somewhere else (for example, /opt/OpenSSL,)
-   you can run configure like this:
-
-        ./configure --with-ssl=/opt/OpenSSL
-
-   If you insist on forcing a build without SSL support, even though you may
-   have OpenSSL installed in your system, you can run configure like this:
-
-        ./configure --without-ssl
-
-   If you have OpenSSL installed, but with the libraries in one place and the
-   header files somewhere else, you have to set the LDFLAGS and CPPFLAGS
-   environment variables prior to running configure.  Something like this
-   should work:
-
-     (with the Bourne shell and its clones):
-
-       CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \
-           ./configure
-
-     (with csh, tcsh and their clones):
-
-       env CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \
-       ./configure
-
-   If you have shared SSL libs installed in a directory where your run-time
-   linker doesn't find them (which usually causes configure failures), you can
-   provide the -R option to ld on some operating systems to set a hard-coded
-   path to the run-time linker:
-
-        LDFLAGS=-R/usr/local/ssl/lib ./configure --with-ssl
-
-   MORE OPTIONS
-
-     To force configure to use the standard cc compiler if both cc and gcc are
-     present, run configure like
-
-       CC=cc ./configure
-         or
-       env CC=cc ./configure
-
-     To force a static library compile, disable the shared library creation
-     by running configure like:
-
-       ./configure --disable-shared
-
-     To tell the configure script to skip searching for thread-safe functions,
-     add an option like:
-
-       ./configure --disable-thread
-
-     To build curl with kerberos4 support enabled, curl requires the krb4 libs
-     and headers installed. You can then use a set of options to tell
-     configure where those are:
-
-          --with-krb4-includes[=DIR]   Specify location of kerberos4 headers
-          --with-krb4-libs[=DIR]       Specify location of kerberos4 libs
-          --with-krb4[=DIR]            where to look for Kerberos4
-
-     In most cases, /usr/athena is the install prefix and then it works with
-
-       ./configure --with-krb4=/usr/athena
-
-     If you're a curl developer and use gcc, you might want to enable more
-     debug options with the --enable-debug option.
-
-     curl can be built to use a whole range of libraries to provide various
-     useful services, and configure will try to auto-detect a decent
-     default. But if you want to alter it, you can select how to deal with
-     each individual library.
-
-     To build with GnuTLS support instead of OpenSSL for SSL/TLS, note that
-     you need to use both --without-ssl and --with-gnutls.
-
-     To build with yassl support instead of OpenSSL or GunTLS, you must build
-     yassl with its OpenSSL emulation enabled and point to that directory root
-     with configure --with-ssl.
-
-     To build with NSS support instead of OpenSSL for SSL/TLS, note that
-     you need to use both --without-ssl and --with-nss.
-
-     To get GSSAPI support, build with --with-gssapi and have the MIT or
-     Heimdal Kerberos 5 packages installed.
-
-     To get support for SCP and SFTP, build with --with-libssh2 and have
-     libssh2 0.16 or later installed.
-     
-
-Win32
-=====
-
-   Building Windows DLLs and C run-time (CRT) linkage issues
-   ---------------------------------------------------------
-
-   As a general rule, building a DLL with static CRT linkage is highly
-   discouraged, and intermixing CRTs in the same app is something to
-   avoid at any cost.
-
-   Reading and comprehension of Microsoft Knowledge Base articles
-   KB94248 and KB140584 is a must for any Windows developer. Especially
-   important is full understanding if you are not going to follow the
-   advice given above.
-
-   KB94248  - How To Use the C Run-Time
-              http://support.microsoft.com/kb/94248/en-us
-
-   KB140584 - How to link with the correct C Run-Time (CRT) library
-              http://support.microsoft.com/kb/140584/en-us
-
-   If your app is misbehaving in some strange way, or it is suffering
-   from memory corruption, before asking for further help, please try
-   first to rebuild every single library your app uses as well as your
-   app using the debug multithreaded dynamic C runtime.
-
-   MingW32
-   -------
-
-   Make sure that MinGW32's bin dir is in the search path, for example:
-
-     set PATH=c:\mingw32\bin;%PATH%
-
-   then run 'mingw32-make mingw32' in the root dir. There are other
-   make targets available to build libcurl with more features, use:
-   'mingw32-make mingw32-zlib' to build with Zlib support;
-   'mingw32-make mingw32-ssl-zlib' to build with SSL and Zlib enabled;
-   'mingw32-make mingw32-ssh2-ssl-zlib' to build with SSH2, SSL, Zlib;
-   'mingw32-make mingw32-ssh2-ssl-sspi-zlib' to build with SSH2, SSL, Zlib
-   and SSPI support.
-
-   If you have any problems linking libraries or finding header files, be sure
-   to verify that the provided "Makefile.m32" files use the proper paths, and
-   adjust as necessary. It is also possible to override these paths with 
-   environment variables, for example:
-
-     set ZLIB_PATH=c:\zlib-1.2.3
-     set OPENSSL_PATH=c:\openssl-0.9.8g
-     set LIBSSH2_PATH=c:\libssh2-0.17
-
-   ATTENTION: if you want to build with libssh2 support you have to use latest
-   version 0.17 - previous versions will NOT work with 7.17.0 and later!
-   Use 'mingw32-make mingw32-ssh2-ssl-zlib' to build with SSH2 and SSL enabled.
-
-   It is now also possible to build with other LDAP SDKs than MS LDAP;
-   currently it is possible to build with native Win32 OpenLDAP, or with the
-   Novell CLDAP SDK. If you want to use these you need to set these vars:
-
-     set LDAP_SDK=c:\openldap
-     set USE_LDAP_OPENLDAP=1
-
-   or for using the Novell SDK:
-
-     set USE_LDAP_NOVELL=1
-
-   If you want to enable LDAPS support then set LDAPS=1.
-
-   - optional MingW32-built OpenlDAP SDK available from:
-     http://www.gknw.net/mirror/openldap/
-   - optional recent Novell CLDAP SDK available from:
-     http://developer.novell.com/ndk/cldap.htm
-
-
-   Cygwin
-   ------
-
-   Almost identical to the unix installation. Run the configure script in the
-   curl root with 'sh configure'. Make sure you have the sh executable in
-   /bin/ or you'll see the configure fail toward the end.
-
-   Run 'make'
-
-   Dev-Cpp
-   -------
-
-   See the separate INSTALL.devcpp file for details.
-
-   MSVC from command line
-   ----------------------
-
-   Run the 'vcvars32.bat' file to get a proper environment. The
-   vcvars32.bat file is part of the Microsoft development environment and
-   you may find it in 'C:\Program Files\Microsoft Visual Studio\vc98\bin'
-   provided that you installed Visual C/C++ 6 in the default directory.
-
-   Then run 'nmake vc' in curl's root directory.
-
-   If you want to compile with zlib support, you will need to build
-   zlib (http://www.gzip.org/zlib/) as well. Please read the zlib
-   documentation on how to compile zlib. Define the ZLIB_PATH environment
-   variable to the location of zlib.h and zlib.lib, for example:
-
-     set ZLIB_PATH=c:\zlib-1.2.3
-
-   Then run 'nmake vc-zlib' in curl's root directory.
-
-   If you want to compile with SSL support you need the OpenSSL package.
-   Please read the OpenSSL documentation on how to compile and install
-   the OpenSSL libraries.  The build process of OpenSSL generates the
-   libeay32.dll and ssleay32.dll files in the out32dll subdirectory in
-   the OpenSSL home directory.  OpenSSL static libraries (libeay32.lib,
-   ssleay32.lib, RSAglue.lib) are created in the out32 subdirectory.
-
-   Before running nmake define the OPENSSL_PATH environment variable with
-   the root/base directory of OpenSSL, for example:
-
-     set OPENSSL_PATH=c:\openssl-0.9.8g
-
-   Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in curl's root
-   directory.  'nmake vc-ssl' will create a libcurl static and dynamic
-   libraries in the lib subdirectory, as well as a statically linked
-   version of curl.exe in the src subdirectory.  This statically linked
-   version is a standalone executable not requiring any DLL at
-   runtime. This make method requires that you have the static OpenSSL
-   libraries available in OpenSSL's out32 subdirectory.
-   'nmake vc-ssl-dll' creates the libcurl dynamic library and
-   links curl.exe against libcurl and OpenSSL dynamically.
-   This executable requires libcurl.dll and the OpenSSL DLLs
-   at runtime.
-   Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support.
-
-   Borland C++ compiler
-   ---------------------
-
-   compile openssl
-
-   Make sure you include the paths to curl/include and openssl/inc32 in
-   your bcc32.cnf file
-
-   eg : -I"c:\Bcc55\include;c:\path_curl\include;c:\path_openssl\inc32"
-
-   Check to make sure that all of the sources listed in lib/Makefile.b32
-   are present in the /path_to_curl/lib directory. (Check the src
-   directory for missing ones.)
-
-   Make sure the environment variable "BCCDIR" is set to the install
-   location for the compiler eg : c:\Borland\BCC55
-
-   command line:
-   make -f /path_to_curl/lib/Makefile-ssl.b32
-
-   compile simplessl.c with appropriate links
-
-   c:\curl\docs\examples\> bcc32 -L c:\path_to_curl\lib\libcurl.lib
-                                 -L c:\borland\bcc55\lib\psdk\ws2_32.lib
-                                 -L c:\openssl\out32\libeay32.lib
-                                 -L c:\openssl\out32\ssleay32.lib
-                                 simplessl.c
-
-
-   MSVC IDE
-   --------
-
-   If you use VC++, Borland or similar compilers. Include all lib source
-   files in a static lib "project" (all .c and .h files that is).
-   (you should name it libcurl or similar)
-
-   Make the sources in the src/ drawer be a "win32 console application"
-   project. Name it curl.
-
-   For VC++ 6, there's an included Makefile.vc6 that should be possible
-   to use out-of-the-box.
-
-
-   Disabling Specific Protocols in Win32 builds
-   --------------------------------------------
-
-   The configure utility, unfortunately, is not available for the Windows
-   environment, therefore, you cannot use the various disable-protocol
-   options of the configure utility on this platform.
-
-   However, you can use the following defines to disable specific
-   protocols:
-
-   HTTP_ONLY             disables all protocols except HTTP
-   CURL_DISABLE_FTP      disables FTP
-   CURL_DISABLE_LDAP     disables LDAP
-   CURL_DISABLE_TELNET   disables TELNET
-   CURL_DISABLE_DICT     disables DICT
-   CURL_DISABLE_FILE     disables FILE
-   CURL_DISABLE_TFTP     disables TFTP
-   CURL_DISABLE_HTTP     disables HTTP
-
-   If you want to set any of these defines you have the following
-   possibilities:
-
-   - Modify lib/config-win32.h
-   - Modify lib/setup.h
-   - Modify lib/Makefile.vc6
-   - Add defines to Project/Settings/C/C++/General/Preprocessor Definitions
-     in the curllib.dsw/curllib.dsp Visual C++ 6 IDE project.
-
-
-   Important static libcurl usage note
-   -----------------------------------
-
-   When building an application that uses the static libcurl library, you must
-   add '-DCURL_STATICLIB' to your CFLAGS.  Otherwise the linker will look for
-   dynamic import symbols.
-
-
-IBM OS/2
-========
-   Building under OS/2 is not much different from building under unix.
-   You need:
-
-      - emx 0.9d
-      - GNU make
-      - GNU patch
-      - ksh
-      - GNU bison
-      - GNU file utilities
-      - GNU sed
-      - autoconf 2.13
-
-   If you want to build with OpenSSL or OpenLDAP support, you'll need to
-   download those libraries, too. Dirk Ohme has done some work to port SSL
-   libraries under OS/2, but it looks like he doesn't care about emx.  You'll
-   find his patches on: http://come.to/Dirk_Ohme
-
-   If during the linking you get an error about _errno being an undefined
-   symbol referenced from the text segment, you need to add -D__ST_MT_ERRNO__
-   in your definitions.
-
-   If everything seems to work fine but there's no curl.exe, you need to add
-   -Zexe to your linker flags.
-
-   If you're getting huge binaries, probably your makefiles have the -g in
-   CFLAGS.
-
-
-VMS
-===
-   (The VMS section is in whole contributed by the friendly Nico Baggus)
-
-   Curl seems to work with FTP & HTTP other protocols are not tested.  (the
-   perl http/ftp testing server supplied as testing too cannot work on VMS
-   because vms has no concept of fork(). [ I tried to give it a whack, but
-   thats of no use.
-
-   SSL stuff has not been ported.
-
-   Telnet has about the same issues as for Win32. When the changes for Win32
-   are clear maybe they'll work for VMS too. The basic problem is that select
-   ONLY works for sockets.
-
-   Marked instances of fopen/[f]stat that might become a problem, especially
-   for non stream files. In this regard, the files opened for writing will be
-   created stream/lf and will thus be safe. Just keep in mind that non-binary
-   read/wring from/to files will have a records size limit of 32767 bytes
-   imposed.
-
-   Stat to get the size of the files is again only safe for stream files &
-   fixed record files without implied CC.
-
-   -- My guess is that only allowing access to stream files is the quickest
-   way to get around the most issues. Therefore all files need to to be
-   checked to be sure they will be stream/lf before processing them.  This is
-   the easiest way out, I know. The reason for this is that code that needs to
-   report the filesize will become a pain in the ass otherwise.
-
-   Exit status.... Well we needed something done here,
-
-   VMS has a structured exist status:
-   | 3  |       2    |     1       |  0|
-   |1098|765432109876|5432109876543|210|
-   +----+------------+-------------+---+
-   |Ctrl|  Facility  | Error code  |sev|
-   +----+------------+-------------+---+
-
-   With the Ctrl-bits an application can tell if part or the whole message has
-   already been printed from the program, DCL doesn't need to print it again.
-
-   Facility - basically the program ID. A code assigned to the program
-   the name can be fetched from external or internal message libraries
-   Error code - the err codes assigned by the application
-   Sev. - severity: Even = error, off = non error
-      0 = Warning
-      1 = Success
-      2 = Error
-      3 = Information
-      4 = Fatal
-      <5-7> reserved.
-
-   This all presents itself with:
-   %<FACILITY>-<Sev>-<Errorname>, <Error message>
-
-   See also the src/curlmsg.msg file, it has the source for the messages In
-   src/main.c a section is devoted to message status values, the globalvalues
-   create symbols with certain values, referenced from a compiled message
-   file. Have all exit function use a exit status derived from a translation
-   table with the compiled message codes.
-
-   This was all compiled with:
-
-      Compaq C V6.2-003 on OpenVMS Alpha V7.1-1H2
-
-   So far for porting notes as of:
-   13-jul-2001
-   N. Baggus
-
-
-QNX
-===
-   (This section was graciously brought to us by David Bentham)
-
-   As QNX is targeted for resource constrained environments, the QNX headers
-   set conservative limits. This includes the FD_SETSIZE macro, set by default
-   to 32. Socket descriptors returned within the CURL library may exceed this,
-   resulting in memory faults/SIGSEGV crashes when passed into select(..)
-   calls using fd_set macros.
-
-   A good all-round solution to this is to override the default when building
-   libcurl, by overriding CFLAGS during configure, example
-   #  configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
-
-
-RISC OS
-=======
-   The library can be cross-compiled using gccsdk as follows:
-
-        CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \
-             --host=arm-riscos-aof --without-random --disable-shared
-        make
-
-   where riscos-gcc and riscos-ar are links to the gccsdk tools.
-   You can then link your program with curl/lib/.libs/libcurl.a
-
-
-AmigaOS
-=======
-   (This section was graciously brought to us by Diego Casorran)
-
-   To build cURL/libcurl on AmigaOS just type 'make amiga' ...
-
-   What you need is:    (not tested with others versions)
-
-        GeekGadgets / gcc 2.95.3 (http://www.geekgadgets.org/)
-
-        AmiTCP SDK v4.3 (http://www.aminet.net/comm/tcp/AmiTCP-SDK-4.3.lha)
-
-        Native Developer Kit (http://www.amiga.com/3.9/download/NDK3.9.lha)
-
-   As no ixemul.library is required you will be able to build it for
-   WarpOS/PowerPC (not tested by me), as well a MorphOS version should be
-   possible with no problems.
-
-   To enable SSL support, you need a OpenSSL native version (without ixemul),
-   you can find a precompiled package at http://amiga.sourceforge.net/OpenSSL/
-
-
-NetWare
-=======
-   To compile curl.nlm / libcurl.nlm you need:
-   - either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later.
-   - gnu make and awk running on the platform you compile on;
-     native Win32 versions can be downloaded from:
-     http://www.gknw.net/development/prgtools/
-   - recent Novell LibC SDK available from:
-     http://developer.novell.com/ndk/libc.htm
-   - or recent Novell CLib SDK available from:
-     http://developer.novell.com/ndk/clib.htm
-   - optional recent Novell CLDAP SDK available from:
-     http://developer.novell.com/ndk/cldap.htm
-   - optional zlib sources (static or dynamic linking with zlib.imp);
-     sources with NetWare Makefile can be obtained from:
-     http://www.gknw.net/mirror/zlib/
-   - optional OpenSSL sources (version 0.9.8 or later build with BSD sockets);
-     you can find precompiled packages at:
-     http://www.gknw.net/development/ossl/netware/
-     for CLIB-based builds OpenSSL needs to be patched to build with BSD
-     sockets (currently only a winsock-based CLIB build is supported):
-     http://www.gknw.net/development/ossl/netware/patches/v_0.9.8g/openssl-0.9.8g.diff
-   - optional SSH2 sources (version 0.17 or later);
-
-   Set a search path to your compiler, linker and tools; on Linux make
-   sure that the var OSTYPE contains the string 'linux'; set the var
-   NDKBASE to point to the base of your Novell NDK; and then type
-   'make netware' from the top source directory; other targets available
-   are 'netware-ssl', 'netware-ssl-zlib', 'netware-zlib' and 'netware-ares';
-   if you need other combinations you can control the build with the
-   environment variables WITH_SSL, WITH_ZLIB, WITH_ARES, WITH_SSH2, and
-   ENABLE_IPV6; you can set LINK_STATIC=1 to link curl.nlm statically.
-   By default LDAP support is enabled, however currently you will need a patch
-   in order to use the CLDAP NDK with BSD sockets (Novell Bug 300237):
-   http://www.gknw.net/test/curl/cldap_ndk/ldap_ndk.diff
-   I found on some Linux systems (RH9) that OS detection didn't work although
-   a 'set | grep OSTYPE' shows the var present and set; I simply overwrote it
-   with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked...
-   Any help in testing appreciated!
-   Builds automatically created 8 times a day from current CVS are here:
-   http://www.gknw.net/mirror/curl/autobuilds/
-   the status of these builds can be viewed at the autobuild table:
-   http://curl.haxx.se/auto/
-
-
-eCos
-====
-   curl does not use the eCos build system, so you must first build eCos
-   separately, then link curl to the resulting eCos library.  Here's a sample
-   configure line to do so on an x86 Linux box targeting x86:
-
-   GCCLIB=`gcc -print-libgcc-file-name` && \
-   CFLAGS="-D__ECOS=1 -nostdinc -I$ECOS_INSTALL/include \
-    -I`dirname $GCCLIB`/include" \
-   LDFLAGS="-nostdlib -Wl,--gc-sections -Wl,-static \
-    -L$ECOS_INSTALL/lib -Ttarget.ld -ltarget" \
-   ./configure --host=i386 --disable-shared \
-    --without-ssl --without-zlib --disable-manual --disable-ldap
-
-   In most cases, eCos users will be using libcurl from within a custom
-   embedded application.  Using the standard 'curl' executable from
-   within eCos means facing the limitation of the standard eCos C
-   startup code which does not allow passing arguments in main().  To
-   run 'curl' from eCos and have it do something useful, you will need
-   to either modify the eCos startup code to pass in some arguments, or
-   modify the curl application itself to retrieve its arguments from
-   some location set by the bootloader or hard-code them.
-
-   Something like the following patch could be used to hard-code some
-   arguments.  The MTAB_ENTRY line mounts a RAM disk as the root filesystem
-   (without mounting some kind of filesystem, eCos errors out all file
-   operations which curl does not take to well).  The next section synthesizes
-   some command-line arguments for curl to use, in this case to direct curl
-   to read further arguments from a file.  It then creates that file on the
-   RAM disk and places within it a URL to download: a file: URL that
-   just happens to point to the configuration file itself.  The results
-   of running curl in this way is the contents of the configuration file
-   printed to the console.
-
---- src/main.c 19 Jul 2006 19:09:56 -0000      1.363
-+++ src/main.c 24 Jul 2006 21:37:23 -0000
-@@ -4286,11 +4286,31 @@
- }
-+#ifdef __ECOS
-+#include <cyg/fileio/fileio.h>
-+MTAB_ENTRY( testfs_mte1,
-+                   "/",
-+                   "ramfs",
-+                   "",
-+                   0);
-+#endif
- int main(int argc, char *argv[])
- {
-   int res;
-   struct Configurable config;
-+#ifdef __ECOS
-+  char *args[] = {"ecos-curl", "-K", "curlconf.txt"};
-+  FILE *f;
-+  argc = sizeof(args)/sizeof(args[0]);
-+  argv = args;
-+
-+  f = fopen("curlconf.txt", "w");
-+  if (f) {
-+    fprintf(f, "--url file:curlconf.txt");
-+    fclose(f);
-+  }
-+#endif
-   memset(&config, 0, sizeof(struct Configurable));
-   config.errors = stderr; /* default errors to stderr */
-
-
-Minix
-=====
-   curl can be compiled on Minix 3 using gcc or ACK (starting with
-   ver. 3.1.3).  The default heap size allocated to several required
-   programs is inadequate for configuring and compiling curl and will
-   result in strange errors unless fixed (which only needs to be done
-   once).
-   
-   ACK
-   ---
-   Increase heap sizes with the commands:
-
-     chmem =1024000 /usr/lib/em_cemcom.ansi
-     chmem =512000 /usr/lib/i386/as
-
-   If you have bash installed:
-
-     chmem =2048000 /usr/local/bin/bash
-
-   Configure and compile with:
-
-     ./configure CC=cc LD=cc GREP=grep CPPFLAGS=-D_POSIX_SOURCE=1
-     make
-
-   GCC
-   ---
-   If you have bash installed:
-
-     chmem =2048000 /usr/local/bin/bash
-
-   Make sure gcc is in your PATH with the command:
-   
-     export PATH=/usr/gnu/bin:$PATH
-   
-   then configure and compile curl with:
-
-     ./configure CC=gcc GREP=grep AR=/usr/gnu/bin/gar
-     make
-
-
-Symbian OS
-==========
-   The Symbian OS port uses the Symbian build system to compile.  From the
-   packages/Symbian/group/ directory, run:
-
-      bldmake bldfiles
-      abld build
-
-   to compile and install curl and libcurl. If your Symbian SDK doesn't
-   include support for P.I.P.S., you will need to contact your SDK vendor
-   to obtain that first.
-
-
-CROSS COMPILE
-=============
-   (This section was graciously brought to us by Jim Duey, with additions by
-   Dan Fandrich)
-
-   Download and unpack the cURL package.  Version should be 7.9.1 or later.
-
-   'cd' to the new directory. (e.g. cd curl-7.12.3)
-
-   Set environment variables to point to the cross-compile toolchain and call
-   configure with any options you need.  Be sure and specify the '--host' and
-   '--build' parameters at configuration time.  The following script is an
-   example of cross-compiling for the IBM 405GP PowerPC processor using the
-   toolchain from MonteVista for Hardhat Linux.
-
-   (begin script)
-
-   #! /bin/sh
-
-   export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin
-   export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include"
-   export AR=ppc_405-ar
-   export AS=ppc_405-as
-   export LD=ppc_405-ld
-   export RANLIB=ppc_405-ranlib
-   export CC=ppc_405-gcc
-   export NM=ppc_405-nm
-
-   ./configure --target=powerpc-hardhat-linux \
-       --host=powerpc-hardhat-linux \
-       --build=i586-pc-linux-gnu \
-       --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \
-       --exec-prefix=/usr/local
-
-   (end script)
-
-   You may also need to provide a parameter like '--with-random=/dev/urandom'
-   to configure as it cannot detect the presence of a random number
-   generating device for a target system.  The '--prefix' parameter
-   specifies where cURL will be installed.  If 'configure' completes
-   successfully, do 'make' and 'make install' as usual.
-
-   In some cases, you may be able to simplify the above commands to as
-   little as:
-
-       ./configure --host=ARCH-OS
-
-
-REDUCING SIZE
-=============
-   There are a number of configure options that can be used to reduce the
-   size of libcurl for embedded applications where binary size is an
-   important factor.  First, be sure to set the CFLAGS variable when
-   configuring with any relevant compiler optimization flags to reduce the
-   size of the binary.  For gcc, this would mean at minimum the -Os option,
-   potentially the -march=X and -mdynamic-no-pic options as well, e.g.:
-
-      ./configure CFLAGS='-Os' ...
-
-   Note that newer compilers often produce smaller code than older versions
-   due to better optimization.
-
-   Be sure to specify as many --disable- and --without- flags on the configure
-   command-line as you can to disable all the libcurl features that you
-   know your application is not going to need.  Besides specifying the
-   --disable-PROTOCOL flags for all the types of URLs your application
-   will not use, here are some other flags that can reduce the size of the
-   library:
-
-     --disable-ares (disables support for the ARES DNS library)
-     --disable-cookies (disables support for HTTP cookies)
-     --disable-crypto-auth (disables HTTP cryptographic authentication)
-     --disable-ipv6 (disables support for IPv6)
-     --disable-verbose (eliminates debugging strings and error code strings)
-     --enable-hidden-symbols (eliminates unneeded symbols in the shared library)
-     --without-libidn (disables support for the libidn DNS library)
-     --without-ssl (disables support for SSL/TLS)
-     --without-zlib (disables support for on-the-fly decompression)
-
-   The GNU linker has a number of options to reduce the size of the libcurl
-   dynamic libraries on some platforms even further. Specify them by giving
-   the options -Wl,-Bsymbolic and -Wl,-s on the gcc command-line.  
-   Be sure also to strip debugging symbols from your binaries after
-   compiling using 'strip' (or the appropriate variant if cross-compiling).
-   If space is really tight, you may be able to remove some unneeded
-   sections of the shared library using the -R option to objcopy (e.g. the
-   .comment section).
-
-   Using these techniques it is possible to create an HTTP-only shared libcurl
-   library for i386 Linux platforms that is only 96 KiB in size (as of libcurl
-   version 7.17.1, using gcc 4.2.2).
-
-   You may find that statically linking libcurl to your application will
-   result in a lower total size.
-
-
-PORTS
-=====
-   This is a probably incomplete list of known hardware and operating systems
-   that curl has been compiled for. If you know a system curl compiles and
-   runs on, that isn't listed, please let us know!
-
-        - Alpha DEC OSF 4
-        - Alpha Digital UNIX v3.2
-        - Alpha FreeBSD 4.1, 4.5
-        - Alpha Linux 2.2, 2.4
-        - Alpha NetBSD 1.5.2
-        - Alpha OpenBSD 3.0
-        - Alpha OpenVMS V7.1-1H2
-        - Alpha Tru64 v5.0 5.1
-        - HP-PA HP-UX 9.X 10.X 11.X
-        - HP-PA Linux
-        - HP3000 MPE/iX
-        - MIPS IRIX 6.2, 6.5
-        - MIPS Linux
-        - OS/400
-        - Pocket PC/Win CE 3.0
-        - Power AIX 3.2.5, 4.2, 4.3.1, 4.3.2, 5.1, 5.2
-        - PowerPC Darwin 1.0
-        - PowerPC INTEGRITY
-        - PowerPC Linux
-        - PowerPC Mac OS 9
-        - PowerPC Mac OS X
-        - SH4 Linux 2.6.X
-        - SH4 OS21
-        - SINIX-Z v5
-        - Sparc Linux
-        - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8, 9, 10
-        - Sparc SunOS 4.1.X
-        - StrongARM (and other ARM) RISC OS 3.1, 4.02
-        - StrongARM/ARM7/ARM9 Linux 2.4, 2.6
-        - StrongARM NetBSD 1.4.1
-        - ARM INTEGRITY
-        - Symbian OS (P.I.P.S.)
-        - TPF
-        - Ultrix 4.3a
-        - UNICOS 9.0
-        - i386 BeOS
-        - i386 DOS
-        - i386 eCos 1.3.1
-        - i386 Esix 4.1
-        - i386 FreeBSD
-        - i386 HURD
-        - i386 Haiku OS
-        - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6
-        - i386 MINIX 3.1
-        - i386 NetBSD
-        - i386 Novell NetWare
-        - i386 OS/2
-        - i386 OpenBSD
-        - i386 QNX 6
-        - i386 SCO unix
-        - i386 Solaris 2.7
-        - i386 Windows 95, 98, ME, NT, 2000, XP, 2003
-        - i486 ncr-sysv4.3.03 (NCR MP-RAS)
-        - ia64 Linux 2.3.99
-        - m68k AmigaOS 3
-        - m68k Linux
-        - m68k uClinux
-        - m68k OpenBSD
-        - m88k dg-dgux5.4R3.00
-        - s390 Linux
-        - XScale/PXA250 Linux 2.4
-        - Nios II uClinux
-
-Useful URLs
-===========
-
-OpenSSL   http://www.openssl.org
-MingW     http://www.mingw.org
-OpenLDAP  http://www.openldap.org
-Zlib      http://www.gzip.org/zlib/
-libssh2   http://www.libssh2.org
-
-
+see INSTALL.md