diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-16 00:09:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-16 00:09:26 +0000 |
commit | 6c0eafbb1395d426a72a74538e0b2a95e8344ca6 (patch) | |
tree | 2a5f80b80fc76086a2602b812c2a182d00f961b7 /Build/source/libs/curl/docs/INSTALL | |
parent | 70f7efeb5c9965a63a4143ad1c1f473585dc364c (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/INSTALL | 466 |
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. |