From b6646310e875b63fb33b27e9035bf1fda15288a7 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Fri, 10 Dec 2004 21:55:05 +0000
Subject: [PATCH] Dan Fandrich extended the cross compile section and corrected
 spelling errors

---
 docs/INSTALL | 137 +++++++++++++++++++++++++++++++++------------------
 1 file changed, 88 insertions(+), 49 deletions(-)

diff --git a/docs/INSTALL b/docs/INSTALL
index 1d6386089c..c904fe6bd2 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -102,7 +102,7 @@ UNIX
 
        CC=cc ./configure
          or
-       env Cc=cc ./configure
+       env CC=cc ./configure
 
      To force a static library compile, disable the shared library creation
      by running configure like:
@@ -363,9 +363,9 @@ VMS
    +----+------------+-------------+---+
 
    With the Ctrl-bits an application can tell if part or the whole message has
-   allready been printed from the program, DCL doesn't need to print it again.
+   already been printed from the program, DCL doesn't need to print it again.
 
-   Facility - basicaly the program ID. A code assigned to the program
+   Facility - basically the program ID. A code assigned to the program
    the name can be fetched from external or internal message libraries
    Errorcode - the errodes assigned by the application
    Sev. - severity: Even = error, off = non error
@@ -397,7 +397,7 @@ QNX
 ===
    (This section was graciously brought to us by David Bentham)
 
-   As QNX is targetted for resource constrained environments, the QNX headers
+   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(..)
@@ -407,44 +407,6 @@ QNX
    libcurl, by overriding CFLAGS during configure, example
    #  configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
 
-CROSS COMPILE
-=============
-
-   (This section was graciously brought to us by Jim Duey, 23-oct-2001)
-
-   Download and unpack the cURL package.  Version should be 7.9.1 or later.
-
-   'cd' to the new directory. (ie. curl-7.9.1-pre4)
-
-   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)
-
-   The '--prefix' parameter specifies where cURL will be installed.  If
-   'configure' completes successfully, do 'make' and 'make install' as usual.
 
 RISC OS
 =======
@@ -488,31 +450,107 @@ NetWare
    - gnu make and awk running on the platform you compile on;
      native Win32 versions can be downloaded from:
      http://www.gknw.com/development/prgtools/ 
-   - recent Novell LibC SDK availabable from:
+   - recent Novell LibC SDK available from:
      http://developer.novell.com/ndk/libc.htm
    - optional zlib sources (at the moment only dynamic linking with zlib.imp); 
-     sources with NetWare Makefile can be optained from:
+     sources with NetWare Makefile can be obtained from:
      http://www.gknw.com/mirror/zlib/
 
    Set a search path to your compiler, linker and tools; if you want to have
    zlib support then set the environment var ZLIB_PATH pointing to your zlib
    sources, on Linux make sure the var OSTYPE contains the string 'linux';
    and finally type 'make netware' from the top source directory...
-   I found on some Linux systems (RH9) that OS detection didnt work although
+   I found on some Linux systems (RH9) that OS detection didnlt 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...;
    other options are currently not supported, although partly prepared.
    The Ares lib builds arlready fine, and both test tools work fine at least 
-   when build with CodeWarrior...; dont know yet why they fail when build with
+   when build with CodeWarrior...; don't know yet why they fail when build with
    gcc though; if you want to compile with Ares support then set an env var
-   WITH_ARES=1; I've not tested yet including libcares into curl.
+   WITH_ARES=1; I've not tested yet including libares into curl.
    Any help in testing appreciated!
-   Buils automatically created 4 times a day from current CVS are here:
+   Builds automatically created 4 times a day from current CVS are here:
    http://www.gknw.com/mirror/curl/autobuilds/
-   the status of these buids can be viewed at the autobuild table:
+   the status of these builds can be viewed at the autobuild table:
    http://curl.haxx.se/auto/
 
 
+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
+
+   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 environment variable
+   when configuring with any compiler optimization flags to reduce the
+   size of the binary.  For gcc, this would mean at minimum:
+
+      env CFLAGS='-Os' ./configure ...
+
+   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)
+     --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)
+
+   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
@@ -548,6 +586,7 @@ PORTS
         - Ultrix 4.3a
         - i386 BeOS
         - i386 DOS
+        - i386 Esix 4.1
         - i386 FreeBSD
         - i386 HURD
         - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
-- 
GitLab