                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

CVS-INFO

This file is only present in the CVS - never in release archives. It contains
information about other files and things that the CVS repository keeps in its
inner sanctum.

Compile and build instructions follow below.

  CHANGES.0     contains ancient changes.
  CHANGES.$year contains changes for the particular year.

  tests/memanalyze.pl
                is for analyzing the output generated by curl if -DCURLDEBUG
                is used when compiling (run configure with --enable-debug)

  buildconf     builds the makefiles and configure stuff

  Makefile.dist is included as the root Makefile in distribution archives

  perl/         is a subdirectory with various perl scripts

To build after having extracted everything from CVS, do this:

./buildconf
./configure
make

  Daniel uses a ./configure line similar to this for easier development:

  ./configure --disable-shared --enable-debug --enable-maintainer-mode


REQUIREMENTS

 You need the following software installed:

 o autoconf 2.57  (or later)
 o automake 1.7   (or later)
 o libtool  1.4.2 (or later)
 o GNU m4 (required by autoconf)

 o nroff + perl

   If you don't have nroff and perl and you for some reason don't want to
   install them, you can rename the source file src/hugehelp.c.cvs to
   src/hugehelp.c and avoid having to generate this file. This will of course
   give you an older version of the file that isn't up-to-date. That file was
   checked in once and won't be updated very regularly.

 o yacc/bison 

   If you don't have yacc or bison, you must rename the lib/getdate.c.cvs file
   to lib/getdate.c to be able to build libcurl. yacc/bison is normally used
   to generate the lib/getdate.c file from the lib/getdate.y source file.

MAC OS X

 With Mac OS X 10.2 and the associated Developer Tools, the installed versions
 of the build tools are adequate.  For Mac OS X 10.1 users, Guido Neitzer
 wrote the following step-by-step guide:

 1. Install fink (http://fink.sourceforge.net)
 2. Update fink to the newest version (with the installed fink)
 3. Install the latest version of autoconf, automake and m4 with fink
 4. Install version 1.4.1 of libtool - you find it in the "unstable" section
    (read the manual to see how to get unstable versions)
 5. Get cURL from the cvs
 6. Build cURL with "./buildconf", "./configure", "make", "sudo make install"
