summaryrefslogtreecommitdiff
path: root/Build/source/libs/curl/docs/INSTALL
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-16 00:09:26 +0000
committerKarl Berry <karl@freefriends.org>2006-01-16 00:09:26 +0000
commit6c0eafbb1395d426a72a74538e0b2a95e8344ca6 (patch)
tree2a5f80b80fc76086a2602b812c2a182d00f961b7 /Build/source/libs/curl/docs/INSTALL
parent70f7efeb5c9965a63a4143ad1c1f473585dc364c (diff)
libs 1
git-svn-id: svn://tug.org/texlive/trunk@1483 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/curl/docs/INSTALL')
-rw-r--r--Build/source/libs/curl/docs/INSTALL466
1 files changed, 466 insertions, 0 deletions
diff --git a/Build/source/libs/curl/docs/INSTALL b/Build/source/libs/curl/docs/INSTALL
new file mode 100644
index 00000000000..7d8ce5c1489
--- /dev/null
+++ b/Build/source/libs/curl/docs/INSTALL
@@ -0,0 +1,466 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+ How To Compile
+
+Curl has been compiled and built on numerous different operating systems.
+
+Most systems build curl the same way (unix-style). Continue reading below for
+more details if you're one of them.
+
+If you're using Windows (95/98/NT/ME/2000/XP or similar), VMS, RISC OS or OS/2
+or cross-compile, you should continue reading from one the paragraphs further
+down.
+
+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 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
+
+ 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 your SSL library was compiled with rsaref (usually for use in the United
+ States), you may also need to set:
+
+ LIBS=-lRSAglue -lrsaref
+ (as suggested by Doug Kaufman)
+
+ KNOWN PROBLEMS (these ones should not happen anymore)
+
+ If you happen to have autoconf installed, but a version older than 2.12
+ you will get into trouble. Then you can still build curl by issuing these
+ commands (note that this requires curl to be built staticly): (from Ralph
+ Beckmann)
+
+ ./configure [...]
+ cd lib; make; cd ..
+ cd src; make; cd ..
+ cp src/curl elsewhere/bin/
+
+ As suggested by David West, you can make a faked version of autoconf and
+ autoheader:
+
+ ----start of autoconf----
+ #!/bin/bash
+ #fake autoconf for building curl
+ if [ "$1" = "--version" ] then
+ echo "Autoconf version 2.13"
+ fi
+ ----end of autoconf----
+
+ Then make autoheader a symbolic link to the same script and make sure
+ they're executable and set to appear in the path *BEFORE* the actual (but
+ obsolete) autoconf and autoheader scripts.
+
+ 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.
+
+Win32
+=====
+
+ Without SSL:
+
+ MingW32 (GCC-2.95) style
+ ------------------------
+ Run the 'mingw32.bat' file to get the proper environment variables
+ set, then run 'make mingw32' in the root dir.
+
+ 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.
+
+ Cygwin style
+ ------------
+ 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 towards the end.
+
+ Run 'make'
+
+ Microsoft command line style
+ ----------------------------
+ Run the 'vcvars32.bat' file to get the proper environment variables
+ set, then run 'nmake vc' in the root dir.
+
+ The vcvars32.bat file is part of the Microsoft development
+ environment.
+
+ IDE-style
+ -------------------------
+ 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.
+
+ With VC++, add 'ws2_32.lib' to the link libs when you build curl!
+ Borland seems to do that itself magically. Of course you have to make
+ sure it links with the libcurl too!
+
+ For VC++ 6, there's an included Makefile.vc6 that should be possible
+ to use out-of-the-box.
+
+ Microsoft note: add /Zm200 to the compiler options to increase the
+ compiler's memory allocation limit, as the hugehelp.c won't compile
+ due to "too long puts string".
+
+
+ With SSL:
+
+ MingW32 (GCC-2.95) style
+ ------------------------
+ Run the 'mingw32.bat' file to get the proper environment variables
+ set, then run 'make mingw32-ssl' in the root dir.
+
+ If you have any problems linking libraries or finding header files, be
+ sure to look at the provided "Makefile.m32" files for the proper
+ paths, and adjust as necessary.
+
+ Cygwin style
+ ------------
+ Haven't done, nor got any reports on how to do. It should although be
+ identical to the unix setup for the same purpose. See above.
+
+ Microsoft command line style
+ ----------------------------
+ Please read the OpenSSL documentation on how to compile and install
+ the OpenSSL library. This generates the libeay32.dll and ssleay32.dll
+ files in the out32dll subdirectory in the OpenSSL home directory. If
+ you compiled OpenSSL static libraries (libeay32.lib, ssleay32.lib,
+ RSAglue.lib) they are created in the out32 subdirectory.
+
+ Run the 'vcvars32.bat' file to get the proper environment variables
+ set. 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' if you installed Visual C/C++ 6 in the default
+ directory.
+
+ 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.6b
+
+ Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in the 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 scr subdirectory. This statically linked
+ version is a standalone executable not requiring any DLL at
+ runtime. This making method requires that you have build the static
+ libraries of OpenSSL 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 executables requires libcurl.dll and the OpenSSL DLLs
+ at runtime.
+
+ Microsoft / Borland style
+ -------------------------
+ If you have OpenSSL, and want curl to take advantage of it, edit your
+ project properties to use the SSL include path, link with the SSL libs
+ and define the USE_SSLEAY symbol.
+
+
+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)
+
+ This is the first attempt at porting cURL to VMS.
+
+ 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'l 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
+ allready been printed from the program, DCL doesn't need to print it again.
+
+ Facility - basicaly 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
+ 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 targetted 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'
+
+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.
+
+PORTS
+=====
+ This is a probably incomplete list of known hardware and operating systems
+ that curl has been compiled for. If you know one 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
+ - Alpha Linux 2.2.16
+ - Alpha OpenVMS V7.1-1H2
+ - Alpha Tru64 v5.0 5.1
+ - HP-PA HP-UX 9.X 10.X 11.X
+ - HP-PA Linux
+ - MIPS IRIX 6.2, 6.5
+ - MIPS Linux
+ - Pocket PC/Win CE 3.0
+ - Power AIX 4.2, 4.3.1, 4.3.2
+ - PowerPC Darwin 1.0
+ - PowerPC Linux
+ - PowerPC Mac OS 9
+ - PowerPC Mac OS X
+ - SINIX-Z v5
+ - Sparc Linux
+ - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8
+ - Sparc SunOS 4.1.X
+ - StrongARM (and other ARM) RISC OS 3.1, 4.02
+ - StrongARM Linux 2.4
+ - StrongARM NetBSD 1.4.1
+ - Ultrix 4.3a
+ - i386 BeOS
+ - i386 FreeBSD
+ - i386 HURD
+ - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
+ - i386 NetBSD
+ - i386 OS/2
+ - i386 OpenBSD
+ - i386 SCO unix
+ - i386 Solaris 2.7
+ - i386 Windows 95, 98, ME, NT, 2000
+ - ia64 Linux 2.3.99
+ - m68k AmigaOS 3
+ - m68k Linux
+ - m68k OpenBSD
+ - s390 Linux
+
+OpenSSL
+=======
+
+ You'll find OpenSSL information at:
+
+ http://www.openssl.org
+
+
+MingW32/Cygwin
+==============
+
+ You'll find MingW32 and Cygwin information at:
+
+ http://www.mingw.org
+
+OpenLDAP
+========
+
+ You'll find OpenLDAP information at:
+
+ http://www.openldap.org
+
+ You need to install it with shared libraries, which is enabled when running
+ the ldap configure script with "--enable-shared". With my linux 2.0.36
+ kernel I also had to disable using threads (with --without-threads),
+ because the configure script couldn't figure out my system.