mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
Dan Fandrich extended the cross compile section and corrected spelling errors
This commit is contained in:
parent
070da3c08f
commit
b6646310e8
137
docs/INSTALL
137
docs/INSTALL
@ -102,7 +102,7 @@ UNIX
|
|||||||
|
|
||||||
CC=cc ./configure
|
CC=cc ./configure
|
||||||
or
|
or
|
||||||
env Cc=cc ./configure
|
env CC=cc ./configure
|
||||||
|
|
||||||
To force a static library compile, disable the shared library creation
|
To force a static library compile, disable the shared library creation
|
||||||
by running configure like:
|
by running configure like:
|
||||||
@ -363,9 +363,9 @@ VMS
|
|||||||
+----+------------+-------------+---+
|
+----+------------+-------------+---+
|
||||||
|
|
||||||
With the Ctrl-bits an application can tell if part or the whole message has
|
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
|
the name can be fetched from external or internal message libraries
|
||||||
Errorcode - the errodes assigned by the application
|
Errorcode - the errodes assigned by the application
|
||||||
Sev. - severity: Even = error, off = non error
|
Sev. - severity: Even = error, off = non error
|
||||||
@ -397,7 +397,7 @@ QNX
|
|||||||
===
|
===
|
||||||
(This section was graciously brought to us by David Bentham)
|
(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
|
set conservative limits. This includes the FD_SETSIZE macro, set by default
|
||||||
to 32. Socket descriptors returned within the CURL library may exceed this,
|
to 32. Socket descriptors returned within the CURL library may exceed this,
|
||||||
resulting in memory faults/SIGSEGV crashes when passed into select(..)
|
resulting in memory faults/SIGSEGV crashes when passed into select(..)
|
||||||
@ -407,44 +407,6 @@ QNX
|
|||||||
libcurl, by overriding CFLAGS during configure, example
|
libcurl, by overriding CFLAGS during configure, example
|
||||||
# configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
|
# 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
|
RISC OS
|
||||||
=======
|
=======
|
||||||
@ -488,31 +450,107 @@ NetWare
|
|||||||
- gnu make and awk running on the platform you compile on;
|
- gnu make and awk running on the platform you compile on;
|
||||||
native Win32 versions can be downloaded from:
|
native Win32 versions can be downloaded from:
|
||||||
http://www.gknw.com/development/prgtools/
|
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
|
http://developer.novell.com/ndk/libc.htm
|
||||||
- optional zlib sources (at the moment only dynamic linking with zlib.imp);
|
- 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/
|
http://www.gknw.com/mirror/zlib/
|
||||||
|
|
||||||
Set a search path to your compiler, linker and tools; if you want to have
|
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
|
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';
|
sources, on Linux make sure the var OSTYPE contains the string 'linux';
|
||||||
and finally type 'make netware' from the top source directory...
|
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
|
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...;
|
with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked...;
|
||||||
other options are currently not supported, although partly prepared.
|
other options are currently not supported, although partly prepared.
|
||||||
The Ares lib builds arlready fine, and both test tools work fine at least
|
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
|
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!
|
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/
|
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/
|
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
|
PORTS
|
||||||
=====
|
=====
|
||||||
This is a probably incomplete list of known hardware and operating systems
|
This is a probably incomplete list of known hardware and operating systems
|
||||||
@ -548,6 +586,7 @@ PORTS
|
|||||||
- Ultrix 4.3a
|
- Ultrix 4.3a
|
||||||
- i386 BeOS
|
- i386 BeOS
|
||||||
- i386 DOS
|
- i386 DOS
|
||||||
|
- i386 Esix 4.1
|
||||||
- i386 FreeBSD
|
- i386 FreeBSD
|
||||||
- i386 HURD
|
- i386 HURD
|
||||||
- i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
|
- i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
|
||||||
|
Loading…
Reference in New Issue
Block a user