diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2004-12-10 21:55:05 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2004-12-10 21:55:05 +0000 | 
| commit | b6646310e875b63fb33b27e9035bf1fda15288a7 (patch) | |
| tree | e6d674b02e48b87e9dc28a3e9c6e515ba0e36cf2 | |
| parent | 070da3c08f2018aa02f18605eb58fa020ddacdc9 (diff) | |
Dan Fandrich extended the cross compile section and corrected spelling errors
| -rw-r--r-- | docs/INSTALL | 137 | 
1 files changed, 88 insertions, 49 deletions
diff --git a/docs/INSTALL b/docs/INSTALL index 1d6386089..c904fe6bd 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  | 
