| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| How To Compile |
| |
| Curl has been compiled and built on numerous different operating systems. The |
| way to proceed is mainly divided in two different ways: the unix way or the |
| windows way. |
| |
| If you're using Windows (95, 98, NT) or OS/2, you should continue reading from |
| the Win32 header below. All other systems should be capable of being installed |
| as described in the the UNIX header. |
| |
| PORTS |
| ===== |
| Just to show off, this is a probably incomplete list of known hardware and |
| operating systems that curl has been compiled for: |
| |
| - Ultrix |
| - SINIX-Z v5 |
| Alpha DEC OSF 4 |
| Alpha Digital UNIX V3.2D-1 (rev 41) |
| HP-PA HP-UX 10.X 11.X |
| MIPS IRIX 6.2, 6.5 |
| Power AIX 4.2, 4.3.1, 4.3.2 |
| PowerPC Darwin 1.0 |
| PowerPC Mac OS X |
| Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7 |
| Sparc SunOS 4.1.* |
| i386 BeOS |
| i386 FreeBSD |
| i386 Linux 1.3, 2.0, 2.2 |
| i386 NetBSD |
| i386 OS/2 |
| i386 OpenBSD |
| i386 Solaris 2.7 |
| i386 Windows 95, 98, NT |
| m68k AmigaOS 3 |
| m68k OpenBSD |
| |
| UNIX |
| ==== |
| |
| 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 it 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'll 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 |
| (from Doug Kaufman <dkaufman@rahul.net>) |
| |
| Without SSL support, just run: |
| |
| ./configure |
| |
| Then run: |
| |
| make |
| |
| Use the executable `curl` in src/ directory. |
| |
| 'make install' copies the curl file to /usr/local/bin/ (or $prefix/bin |
| if you used the --prefix option to configure) and copies the curl.1 |
| man page to a suitable place too. |
| |
| KNOWN PROBLEMS |
| |
| 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: (from Ralph Beckmann <rabe@uni-paderborn.de>) |
| |
| ./configure [...] |
| cd lib; make; cd .. |
| cd src; make; cd .. |
| cp src/curl elsewhere/bin/ |
| |
| OPTIONS |
| |
| Remember, 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 |
| |
| |
| Win32 |
| ===== |
| |
| Without SSL: |
| |
| MingW32 (GCC-2.95) style |
| ------------------------ |
| Run the 'mingw32.bat' file to get the proper environment variables |
| set, then run 'make -f Makefile.m32' in the lib/ dir and then |
| 'make -f Makefile.m32' in the src/ 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 |
| ------------ |
| 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 -f Makefile.vc6' in the lib/ dir and then |
| 'nmake -f Makefile.vc6' in the src/ dir. |
| |
| 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 'wsock32.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, as the hugehelp.c |
| won't compile otherwise due to "too long puts string" or something |
| like that! |
| |
| |
| With SSL: |
| |
| MingW32 (GCC-2.95) style |
| ------------------------ |
| Run the 'mingw32.bat' file to get the proper environment variables |
| set, then run 'make -f Makefile.m32 SSL=1' in the lib/ dir and then |
| 'make -f Makefile.m32 SSL=1' in the src/ 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 |
| ---------------------------- |
| Run the 'vcvars32.bat' file to get the proper environment variables |
| set, then run 'nmake -f Makefile.vc6 release-ssl' in the lib/ dir and |
| then 'nmake -f Makefile.vc6' in the src/ dir. |
| |
| 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. |
| |
| OpenSSL |
| ======= |
| |
| You'll find OpenSSL information at: |
| |
| http://www.openssl.org |
| |
| |
| MingW32/Cygwin |
| ============== |
| |
| You'll find MingW32 and Cygwin information at: |
| |
| http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html |
| |
| 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. |